Linux下软件的安装与卸载(命令行模式)

Linux下是除了二进制形式的软件分发外,还有源代码形式的软件包,讲一讲这些软件的安装与卸载: 

一、二进制分发软件包的安装与卸载 
Linux软件的二进制分发是指事先已经编译好二进制形式的软件包的发布形式,其优点是安装使用容易,缺点则是缺乏灵活性,如果该软件包是为特定的硬件/操作系统平台编译的,那它就不能在另外的平台或环境下正确执行。 
1、*.rpm形式的二进制软件包 
安装:rpm -ivh *.rpm 升级:rpm -Uvh *.rpm 卸载:rpm -e packgename 
说明:RPM(RedHat Packge Manager)是RedHat公司出的软件包管理器,使用它可以很容易地对rpm形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸载时也可以将软件安装在多处目录中的文件删除干净。rpm的参数中-i是安装,-v是校验,-h是用散列符显示安装进度,*.rpm是软件包的文件名(这里的*.rpm特指*.src.rpm以外的以rpm为后缀的文件);参数-e是删除软件包。 
2、*.tar.gz/*.tgz、*.bz2形式的二进制软件包 
安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2 
卸载:手动删除 
说明:*.tar.gz/*.bz2形式的二进制软件包是用tar工具来打包、用gzip/bzip2压缩的,安装时直接解包即可。对于解压后只有单一目录的软件,卸载时用命令“rm -rf 软件目录名”;如果解压后文件分散在多处目录中,则必须一一手动删除,想知道解压时向系统中安装了哪些文件,可以用命令“tar ztvf *.tar.gz”/“tar ytvf *.bz2”获取清单。tar的参数z是调用gzip解压,x是解包,v是校验,f是显示结果,y是调用bzip2解压,t是列出包的文件清单。 
3、提供安装程序的软件包 
这类软件包已经提供了安装脚本或二进制的安装向导程序(setup、install、install.sh等),只需运行它就可以完成软件的安装;而卸载时也相应地提供了反安装的脚本或程序。而且在软件安装后提供反安装的功能,目前这种类型的软件包还比较少。 

二、源代码分发软件包的安装与卸载 
Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。 
1、*.src.rpm形式的源代码软件包 
安装:rpm -rebuild *.src.rpm 
cd /usr/src/dist/RPMS 
rpm -ivh *.rpm 
卸载:rpm -e packgename 
说明:rpm --rebuild *.src.rpm命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。packgename如前所述。 
2、*.tar.gz/*.tgz、*.bz2形式的源代码软件包 
安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2 先解压然后进入解压后的目录: 
./configure 配置 
make 编译 
make install 安装 
卸载:make uninstall 或 手动删除 
说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。与其它安装方式相比,需要用户自己编译安装是最难的。 

导入非官方库地址方法
检查是否存在ls -l /etc/yum.repos.d/dag.repo
如果不存在就vi /etc/yum.repos.d/dag.repo
导入如下内容
[dag] 
name=Dag RPM Repository for Red Hat Enterprise Linux 
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag 
gpgcheck=1 
enabled=1
然后,要导入GPG的检查文件
wget  http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt
 
为CentOS/RHEL添加EPEL软件仓库(RPMForge,rpmfusion)
CentOS是RHEL编译过来的,去掉了所有关于版权问题的东西。因此,在没有使用第三方软件库的情况下,很多软件无法用yum install来直接安装。Redhat Fedora项目下有一个 EPEL(Extra Packages for Enterprise Linux),EPEL是RHEL和Fedora的第三方软件仓库.安装EPEL 非常简单.官方地址是 http://fedoraproject.org/wiki/EPEL/FAQ#howtouse
1.要安装yum-priorities插件,确保官方源首选。yum install yum-priorities
安装完后需要编辑/etc/yum.repos.d/ 目录下的.repo相关文件(如CentOS-Base.repo),在这些文件每小段末尾插入顺序指令:priority=N (N为1到99的正整数,数值越小越优先)
一般[base], [addons], [updates], [extras] 末尾加priority=1
[CentOSplus],[contrib]末尾加priority=2
其他第三的软件源末尾加priority=N (N>10)
2.下载与安装相应EPEL的rpm文件包
(1)下载与安装EPEL的rpm文件包
32位系统su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm'
64位系统 su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm'
(2)导入DAG的PGP Key
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
(3)设置/etc/yum.repos.d/epel.repo文件中源的级别,就是添加priority=11这句
编辑此文件在[epel]段最后加上priority=11
3.安装rpmforge的rpm文件包
RPMForge库现在已经拥有超过10000种的CentOS的软件包,被CentOS社区认为是最安全也是最稳定的一个第三方软件库。
(1)下载rpmforge的rpm文件包
32位系统wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
64位系统wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
(2)安装DAG的PGP Key
rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
(3)验证rpmforge的rpm文件包
rpm -K rpmforge-release-0.5.1-1.el5.rf.*.rpm
(4)安装rpmforge的rpm文件包
rpm -i rpmforge-release-0.5.1-1.el5.rf.*.rpm
(5)设置/etc/yum.repos.d/rpmforge.repo文件中源的级别,就是添加priority=12这句。
编辑此文件在[rpmforge]段最后加上priority=12
4.安装rpmfusion的rpm文件包(选装)
CentOS官方说这个软件库里面的软件稳定性不如rpmforge,这里仅供选用
在上面安装完epel后输入 su -c 'yum install foo'然后
CentOS 5输入如下命令
su -c 'rpm -Uvh http://download1.rpmfusion.org/free/el/updates/testing/5/i386/rpmfusion-free-release-5-0.1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/testing/5/i386/rpmfusion-nonfree-release-5-0.1.noarch.rpm'
CentOS 6输入如下命令
su -c 'rpm -Uvh http://download1.rpmfusion.org/free/el/updates/testing/6/i386/rpmfusion-free-release-6-0.1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/testing/6/i386/rpmfusion-nonfree-release-6-0.1.noarch.rpm'
卸载方法 rpm -e rpmfusion*

 如果遇到Header V3 DSA signature: NOKEY这是由于yum安装了旧版本的GPG keys造成的,解决办法就是
rpm --import /etc/pki/rpm-gpg/RPM*
-----------------------------------
关于文件系统格式的比较ext4 , ext3 , jfs , xfs , reiserfs
看了不少测试,都是大和小文件读写,感觉还缺少实际应用的测试,实际生产环境的测试才能说明问题。
在写入方面ext4>ext2>reiserfs>ext3>jfs>xfs
在读取方面ext2>ext3>ext4>jfs>xfs>reiserfs
实际应用方面jfs=ext4>xfs>reiserfs>ext3>ext2
-----------------------------------
Debian常用命令总结
安装Debian时需要镜像官方软件包,/etc/apt/sources.list文件可以得到相关站点 
每行的第一个单词deb或deb-src,描述了文件类型,目录中包含的是二进制软件包(deb),即我们通常使用的已编译好的软件包;或包含的是包源码(deb-src),源码包包含源程序编码、Debian管理文件(.dsc)和“Debian化”该程序所做更改的记录文件diff.gz。
如果安装个别软件包要用到apt和dpkg两个命令。 
apt 
APT(the Advanced Packaging Tool)是Debian软件包管理系统的高级界面,由几个名字以“apt-”打头的程序组成。apt-get、apt-cache、apt-cdrom ,apt-config是处理软件包的命令行工具,它们也是其它用户前台程序的后端,如dselect和aptitude。 
apt-get update   从 /etc/apt/source.list 中源的更新软件包列表 
apt-cache search search-string  描述如 search-string 的软件包 
apt-cache policy package-name  显示软件包的版本和优先级 
apt-cache show package-name   显示文件的描述信息 
apt-cache showpkg package-name  显示软件包的依赖关系 
apt-get install package-name 从源安装软件包及其所有依赖包 
apt-get upgrade  将当前安装的软件包更新到最新 
我们看到有些包被阻止更新(kept back) 
apt-get dist-upgrade 
如 apt-get upgrade, 会自动解决冲突 
apt-get remove package-names 删除软件包, 及其所有依赖它的 
apt-get --purge remove 彻底删除这些包及其配置文件 
apt-get --purge remove gnome-panel nautilus+ 
在删除软件包时,如果你在软件包名字后面紧跟一个“+”,那么该软件包就会被安装而不是删除。 
apt-cache depends package-names 列出指定包的所有依赖包 
apt-cache rdepends package-names列出依赖于给定包的所有软件包 
apt-file upgrade 从源更新内容列表 
apt-file search file-name  查找包含文件的软件包 
apt-file search package-name 列出软件包的内容 
auto-apt 
如果需要可以自动安装软件包, 可以替代 apt-file, 需要安装 auto-apt. 
aptitude  APT 的控制台接口, 需要安装 aptitude 
synaptic APT的GUI接口, 需要安装synaptic 
apt-get clean 
删除保存在缓存目录下(/var/cache/apt/archives)的被下载的软件包。 
将删除/var/cache/apt/archives目录和/var/cache/apt/archives/partial目录下的所有文件,除了被锁定的文件。再次安装某个软件包时,APT将重新下载它。 
apt-get autoclean 仅删除那些不需要再次下载的文件。 
在dselect中选好了软件包后,运行: 
apt-get -u dselect-upgrade 
比较同apt-get dist-upgrade时的情形 
可以看到在前例中许多软件包被安装是其它软件包“推荐”或“建议”的结果。另外一些软件包被安装或删除通过dselect工具作出的决定。由此可见dselect与APT结合起来将是一个功能强大的工具。 
apt-get --reinstall install gdm  软件包的修复 
apt-get check 从默认服务器下载软件包数据库 
apt-get upgrade package_name升级指定的软件包,并升级其依赖的软件包apt-cache showpkg package_name显示软件包的一些常规信息apt-cache stats显示相关的统计信息 
apt-cache dump 显示缓存中的每个软件包简要描述信息 
apt-cache unmet  显示不符合一致性的依赖关系。 
apt-cache show 显示指定软件包的记录信息,类似于rpm -qi 
apt-cache search 查找软件包 
apt-cache depends  显示软件包的依赖性关系。 
apt-cache pkgnames  列出所有的软件包 
apt-config  apt-config dump  显示目前的配置信息。 
apt-get install nessus-server 自动下载安装依赖包 
apt-get source package_name 下载软件包的source rpm 
dpkg 
它是操作软件包文件的主要工具; 
dpkg由几个原始的辅助程序演化而来。 
·dpkg-deb:操作.deb文件。dpkg-deb(1) 
·dpkg-ftp:一个旧的软件包获取命令。dpkg-ftp(1) 
·dpkg-mountable:一个旧的软件包获取命令。dpkg-mountable(1) 
·dpkg-split:将大软件包分割成小包。dpkg-split(1) 
dpkg -l [names]    列出软件包 
dpkg -I pkg.deb   显示软件包相关信息 
dpkg -c pkg.deb   列出软件包的内容 
dpkg -S filename     显示哪个包包含这个文件 
dpkg -i pkg.deb    安装软件包 
deborphan      显示没有被依赖(孤儿)的软件包, 需要安装deborphan 
debsums         审计安装的软件报, 需要安装debsums 
dpkg-divert [option] file 重写一个软件包的版本 
dpkg --compare-versions v1 gt v2 比较版本, 用 echo $? 检查 
dpkg-query -W --showformat=format    查询已安装软件包, 格式 例如'$ $ $ '. 
dpkg --get-selections    将选择的软件包写入一个文件 
dpkg --set-selection      从文件读取软件包选择
 
aptitude update 更新可用的包列表 
aptitude upgrade 升级可用的包 
aptitude dist-upgrade 将系统升级到新的发行版 
aptitude install pkgname 安装包 
aptitude remove pkgname 删除包 
aptitude purge pkgname 删除包及其配置文件 
aptitude search string 搜索包 
aptitude show pkgname 显示包的详细信息 
aptitude clean 删除下载的包文件 
aptitude autoclean 仅删除过期的包文件
升级指令aptitude update && aptitude upgrade
-----------------------------------
VI VIM的使用
vim有3种工作模式
Command(命令)模式,用于输入命令 (使用ESC键切换)
Insert(插入)模式,用于插入文本 
Visual(可视)模式,用于视化的的高亮并选定正文
保存及退出 
:w  保存 
:q! 不保存退出 
:w  filename 另存为filename 
:wq! 保存退出 
:wq! filename 注:以filename为文件名保存后退出 
:x 应该是保存并退出 ,功能和:wq!相同3.5 插入模式(文本的插入) 
进入插入模式 
i  在光标之前插入(这个最常用了) 
a  在光标之后插入; 
I 在光标所在行的行首插入 
A  在光标所在行的行末插入 
o  在光标所在的行的上面插入一行 
O  在光标所在的行的下面插入一行 
s  删除光标后的一个字符,然后进入插入模式 
S  删除光标所在的行,然后进入插入模式 
删除字符 
x 一个字符(这个最常用了) 
#x 删除几个字符,#表示数字,比如3x 
dw 删除一个单词 
dw 删除几个单词,#用数字表示,比如3dw表示删除三个单词 
dd 删除一行 
#dd 删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行 
d$ 删除光标到行尾的内容 
J 清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起 
撤销编辑 
u  撤消修改或删除操作 
:u 
搜索
/key  key及搜索关键字,支持正则
--------------------------------------------------------------
yum 不能用的解决方法
1.rpm数据库出错了
rm -f /var/lib/rpm/__db.*    将rpm所用的数据库删除
# rpm --rebuilddb   重建该数据库
# yum clean all
2.或者问题是快速搜寻源出错
yum --disableplugin=fastestmirror update
yum --disableplugin=fastestmirror -y install pam-devel
或者vi /etc/yum/pluginconf.d/fastestmirror.conf使得enabled=0
3.重装yum
显示卸载所有相关软件rpm -qa | grep yum再卸载
然后安装三个软件即可到这里下载http://centos.ustc.edu.cn/centos/5.4/os/i386/CentOS/
将yum,yum-fastestmirror,yum-metadata-parser下载到一个文件夹,然后执行rpm -ivh yum*.rpm

你可能感兴趣的:(Linux下软件的安装与卸载(命令行模式))