软件包管理:Tarball RPM YUM Script
Tarball安装的方式需要手动编译,卸载和升级都比较麻烦。Linux下提供类似windows的软件安装方式,主要有RPM和DPKG两种。
RPM(Redhat Package Manager):
最早由Red Hat开发,CentOS,SuSE,Fedora等都使用这种方式,后缀名为xxx.rpm使用YUM在线升级。
#SRPM是未经编译的RPM包,后缀名为xxx.src.rpm。因为RPM包对环境要求较高,如果不一致的话就不能成功安全,SRPM提供软件的源代码,可以使用tarball中的configure和makefile,我们可以手动编译然后生成RPM包。
RPM软件安装的位置:/var/lib/rpm。这个数据库很重要,下面有很多DB文件,未来软件升级时版本信息的比较都来自于这个数据库,RPM提供的签名信息也记录在这个数据库下。我们经常使用的rpm –q查询就是通过搜索这个数据库实现的。
DPKG:
最早有Debian开发,B2D,Ubuntu等使用这种方式,使用APT在线升级。
RPM
1. RPM常用安装命令:
rpm –ivh xxx.rpm
i:install的意思
v:view的意思,显示详细的安装信息
h:显示安装进度
rpm –ivh xxx.rpm –force
force:表示强制安全,安装过程中如果遇到某个档案已存在或者版本信息不符或者某个相依软件已安装的话,进行覆盖。这个命令尽量不要使用!
rpm -ivh --replacepkgs xxx 覆盖安装
rpm –ivh --replacefiles xxx覆盖文件
rpm –ivh xxx.rpm –test
test:测试安装,看看是否具有属性相依的问题
rpm –Uvh xxx.rpm
U:表示升级。后接软件如果已经安装的话就直接升级,如果为安装的话就直接安装。
rpm –Fvh xxx.rpm
F:表示升级。后接软件如果为安装到系统的话就不会被安装;如果已经安装了才会升级。
2. 软件安装查询
rpm –qa | grep xxx.rpm:查询系统当前安装的所有软件。注意尽量不要用rpm –q
rpm –qi xxx.rpm:查询某个已经安装的软件的详细信息,如开发商,作者等等,如果是一个还未安装的软件包,使用rpm –qip xxx.rpm查询。p表示package。
rpm –ql xxx.rpm:查询该软件在系统中安装了那些文件。
rpm –qc xxx.rpm:查询该软件的配置文件。加p表示查询未安装的软件。
rpm –qR xxx.rpm:查询该软件有关的相依软件所含的档案
rpm –qf xxx:查询某个档案属于哪个软件包
3. RPM验证与数字签名
rpm –Va:查询系统中更更改过的程序档案
#一般配置文件被修改很正常,如果二进制文件被修改的话就需要注意了!
如果要掠过签名的话就使用—nosignature
4. SRPM安装
rpmbuild --rebuild xxx.src.rpm:编译并打包成rpm文件,但是并没有安装,需要手动指定绝对路径安装。
rpmbuild --recompile xxx.src.rpm:编译,打包,并安装。
5. SRPM软件安装的相关路径
/usr/src/redhat 下面的几个目录:SPECS,SOURCES,BUILD,RPMS,SRPMS。
例如我们成功rebuild(只编译和打包,不安装)一个SRPM包,去/usr/src/redhat/RPMS下的对应i386或者其他的相应平台目录下,就可以看见刚刚编译打包出的RPM包了。
6. 软件升级 yum
yum list :列出yum所管理的所有软件
yum info xxx:查看原件的信息
yum list xxx:列出yum上相关的xxx软件,显示本地是否安装或者可否升级等相关信息
yum check-update xxx :检测xxx软件是否有升级
yum install xxx:从yum上下载安装xxx软件
yum update xxx:从yum上下载升级xxx软件,如果不跟xxx软件表示升级所有
yum list update:列出可从yum上升级的本地软件
yum –y update:软件升级时提示输入y和n时自动输入y
yum的配置文件:
/etc/yum.repos.d下的几个*.repo文件。他们定义了yum检索时的网站。我们可以手动配置这个文件,选择网速比较快的站点。
7. yum软件群组功能(所谓软件群组就是一套软件)
yum grouplist :列出所有可使用的套件组
yum groupinfo xxx:列出xxx软件组下的软件
yum groupinstall xxx:安装xxx套件组
yum groupremove xxx:移除某个套件组
8. 软件卸载
rpm –e xxx.rpm
如果卸载的时候提示软件依赖关系,强制卸载的话使用 --nodeps。但是不建议这么做。
yum remove xxx
软件卸载最麻烦的问题就是软件相依性。卸载后可能会导致RPM数据库/var/lib/rpm内的档案破损,那么可以使用—rebuilddb这个选项来重建数据库。
本文出自 “海阔天空” 博客,谢绝转载!