centos的软件管理工具RPM和yum

rpm

RPM 默认安装的路径:




RPM 安装 (install)



注:也可以通过网络安装:rpm -ivh http://website.name/path/pkgname.rpm


『强制』安装:



RPM 升级与更新 (upgrade/freshen):(后面也可以接上面的--nodeps/--force 等等的参数)




RPM 查询 (query)

注:RPM 在查询的时候,其实查询的地方是在 /var/lib/rpm/ 这个目录下的数据库档案





RPM 验证与数字签名 (Verify/signature):




如:


   最前面的八个信息是:
 S :(file Size differs) 档案的容量大小是否被改变
 M :(Mode differs) 档案的类型戒档案的属性 (rwx) 是否被改变?如是否可执行等参数已被改变
 5 :(MD5 sum differs) MD5 这一种挃纹码的内容已经丌同
 D :(Device major/minor number mis-match) 装置的主/次代码已经改变
 L :(readLink(2) path mis-match) Link 路径已被改变
 U :(User ownership differs) 档案的所属人已被改变
 G :(Group ownership differs) 档案的所属群组已被改变
 T :(mTime differs) 档案的建立时间已被改变

    第二排的意思是:
 c :配置文件 (config file)
 d :文件数据文件 (documentation)
 g :鬼档案~通常是该档案丌被某个软件所包吨,较少发生!(ghost file)
 l :许可证文件 (license file)
 r :自述文件 (read me)

数字签名 (digital signature):

    防止:验证只能验证软件内的信息与 /var/lib/rpm/ 里面的数据库信息而已,如果该软件档案所提供的数据本身就有问题,那你使用验证的手段也无法确定该软件的正确性。
    解决:
1. 首先你必须要先安装原厂释出的公钥档案;
2. 实际安装原厂的 RPM 软件时, rpm 指令会去读取 RPM 档案的签章信息,与本机系统内的签章信息比对,
3. 若签章相同则予以安装,若找不到相关的签章信息时,则给予警告并且停止安装。





RPM反安装与重建数据库

注:卸载一个软件需要考虑到依赖性问题,如:软件B依赖于A提供的函数库,但我要卸载A,会报错且不会卸载,因为卸载了,B就不能使用。不过可以加 --nodeps 来强制移除,只是依赖其函数库的软件都不能使用了(不建议强制卸载)。



而可以删除的,这不会出现任何信息:



因为某些动作,可能导致RPM 数据库 /var/lib/rpm/ 内的档案破损,则需要重建RPM数据库



yum

查询功能:yum [list|info|search|provides|whatprovides] 参数






安装/升级功能:yum [install|update] 软件:





移除功能:yum [remove] 软件:

会自动帮我们解决依赖性问题



yum 的配置文件:

其中的一个容器文件:



 [base]:代表容器的名字!中刮号一定要存在,里面的名称则可以随意取。但是不能有两个相同的容器名称, 否则 yum 会不晓得该到哪里去找容器相关软件列表档案。

 name:只是说明一下这个容器的意思而已,重要性不高!

 mirrorlist=:列出这个容器可以使用的映射站台,如果不想使用,可以批注到这行;

 baseurl=:这个最重要,因为后面接的就是容器的实际网址! mirrorlist 是由 yum 程序自行去捉映像站台, baseurl 则是指定固定的一个容器网址!

 enable=1:就是让这个容器被启劢。如果不想启劢可以使用 enable=0 喔!

 gpgcheck=1:还记得 RPM 的数字签名吗?这就是指定是否需要查阅 RPM 档案内的数字签名!

 gpgkey=:就是数字签名的公钥文件所在位置!使用默认值即可


如果有些软件,系统默认容器没有提供,可以使用软件提供的容器:在 /etc/yum.repos.d/ 底下新建一个档案, 该扩展名必须是 .repo 才行(一般使用安装RPM的方式安装容器,无需自己新建档案,更多请参考笔者另一篇博文《 centos7通过yum安装mysql》)。

如mysql的容器:


查看目前yum所使用的容器有哪些:




yum 会先下载容器的清单到本机的 /var/cache/yum 里面去,如果我们在一个容器里面修改了网址,却没有修改容器名称(中括号里面的文字),可能就会造成本机的列表与yum 服务器的列表不同步,此时就会出现无法更新的问题了。

所以需要清理一下:



yum 的软件群组功能:







全系统自动升级:




    参考相关资料:《鸟哥的私房菜》

    转载请标明原文出处:http://blog.csdn.net/u012367513/article/details/40681551

猜你喜欢

转载自blog.csdn.net/u012367513/article/details/40681551