rpm程序包管理器使用詳解

rpm程序包管理器的使用詳解

  說到程序包管理器,就會想到基于CentOS系統上的rpm命令與其對應的前端處理器yum。所謂程序包,是將源代碼轉換為二進制格式,再組織成一個或者多個包文件供用戶安裝使用。rpm程序包的命名格式如下:

  name-VERSION-release.arch.rpm

  軟件名-版本號(分為主版本major和次版本minor)-發行版本號.架構型號.rpm后綴。比如:

lib-1.2.7-15.el7.i686.rpm
zlib-1.2.7-15.el7.x86_64.rpm
zlib-devel-1.2.7-15.el7.i686.rpm
zlib-devel-1.2.7-15.el7.x86_64.rpm
zlib-static-1.2.7-15.el7.i686.rpm
zlib-static-1.2.7-15.el7.x86_64.rpm
zsh-5.0.2-14.el7.x86_64.rpm
zsh-html-5.0.2-14.el7.x86_64.rpm
zziplib-0.13.62-5.el7.i686.rpm
zziplib-0.13.62-5.el7.x86_64.rpm
zziplib-devel-0.13.62-5.el7.i686.rpm
zziplib-devel-0.13.62-5.el7.x86_64.rpm
zziplib-utils-0.13.62-5.el7.x86_64.rpm

  其中對于一種軟件包分為主包和支包,支包的格式是在名字后面注明功能,比如:zziplib-0.13.62-5.el7.x86_64.rpm 是zziplib的主包

  zziplib-devel-0.13.62-5.el7.i686.rpm

  zziplib-devel-0.13.62-5.el7.x86_64.rpm

  zziplib-utils-0.13.62-5.el7.x86_64.rpm

  這三個為zziplib的支包,紅色字體分別代表支包的不同功能。

  當我們查找到合法來源程序包并驗證其安全信息后,使用rpm命令就可隨意對其裝、刪、查、改了,下面一一介紹rpm的使用。

    一.使用rpm安裝程序包

  rpm -ivh /PATH/TO/Package_FILE,是最常用的程序包安裝方法,-i表示install安裝,-v表示安裝的詳細信息,-h表示安裝進度。比如我們安裝光驅上的某個程序包:

[root@localhost ~]# rpm -ivh /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm 
warning: /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zsh-5.0.2-14.el7                 ################################# [100%]

  安裝zsh5.0.2版本成功。

  除此之外還有:

  –test:測試安裝,顯示安裝過程,并不真正安裝

  –repalcepkgs:重新安裝,重裝。

    二.使用rpm升級程序包

  升級程序包的安裝使用-U或者-F選項。同樣后面要接新版程序包的完整路徑:

  rpm -U或-F /PATH/TO/Package_FILE。其中-U與-F是有區別的。

  -U:如果之前沒有這個程序包,那么直接安裝新版程序包,如果有,就更新。所以安裝程序包也可以使用-Uvh。

  -F:只有升級的功能,如果之前沒有此程序包,會提醒錯誤信息。

  –oldpackage:降級程序包,也就是還原之前版本,當新版本不好用bug多時需要進行還原操作恢復生產。

  –force:強制安裝。因為rpm安裝程序包之間有互相依存關系,有時安裝a需要若干b c d程序包,這個選項就將其完全忽略,就是安裝,用不了也裝。

[root@localhost ~]# rpm -Uvh /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm 
warning: /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
	package zsh-5.0.2-14.el7.x86_64 is already installed

  使用-U選項,這里提示已經安裝過了。

    三.使用rpm卸載程序包

  這個很好理解,就是卸載,不同的是安裝和升級都要提供完整路徑,而卸載只需要提供程序包名稱即可。使用-e選項:

[root@localhost ~]# rpm -e zsh 
[root@localhost ~]# rpm -q zsh 
package zsh is not installed

  將剛才安裝的zsh程序包卸載,-q選項是查詢,下面會講。

    四.使用rpm進行程序包查詢

  這個是很重要的命令選項,今后會常常使用,為-q選項。其后面可以跟上其他的查詢選項,所以完整格式為:rpm -q [select-options] [query-options]。

  select-options:

  -a:查詢所有安裝的包 rpm -qa,查找一系列的包文件常常使用rpm -qa | grep “###”的格式。比如:

[root@localhost ~]# rpm -qa | grep "^bash"
bash-4.2.46-19.el7.x86_64
bash-completion-2.1-6.el7.noarch

  查找安裝的bash程序包。

  -f file:查詢指定的文件由那個程序包生成。這個太有用了,用來查找文件來源:

[root@localhost ~]# rpm -qf /etc/passwd
setup-2.8.71-6.el7.noarch

 由此可見/etc/passwd文件由setup-2.8.71-6.e17.noarch這個程序包生成。

  -p Package_file:用于對未安裝的程序包執行查詢操作。比如:

[root@localhost ~]# rpm -qp /media/Packages/lohit-tamil-fonts-2.5.3-2.el7.noarch.rpm 
warning: /media/Packages/lohit-tamil-fonts-2.5.3-2.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
lohit-tamil-fonts-2.5.3-2.el7.noarch

  查到了未安裝的程序包信息。

  query-options:

  –changelog:查詢rpm包的歷史。后接程序包名稱。舉例:

[root@localhost ~]# rpm -q --changelog tree
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.6.0-10
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.6.0-9
- Mass rebuild 2013-12-27

...
...

* Mon Oct 20 1997 Otto Hammersmith <otto@redhat.com>
- updated version
- fixed src url

* Fri Jul 18 1997 Erik Troan <ewt@redhat.com>
- built against glibc

  顯示的是此程序包的歷史發展。

  -l:列出程序包生成的所有文件。這個也非常有用。就不舉例了

  -i:程序包的相關信息,包括版本號,發行號,大小,安裝日期..等等一堆

  -c:查詢程序包的所有配置文件

  -d:查詢程序包提供的文檔

    五.使用rpm校驗程序包

  我們可以使用rpm -V命令校驗程序包,舉例:

[root@localhost media]# rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
[root@localhost media]# vim /etc/skel/.bash
.bash_logout   .bash_profile  .bashrc        
[root@localhost media]# vim /etc/skel/.bashrc 
[root@localhost media]# rpm -V bash
S.5....T.  c /etc/skel/.bashrc

  這里我查找了bash的配置文件并對/etc/skel/.bashrc修改多加了一個空行,這時校驗bash就如上所示得到結果。

  如果校驗的文件有變動,結果一共有9項校驗項目,使用8個字母來表示,從前往后依次含義為:

  S:文件大小更改了

  M:表示權限更改了

  5:表示MD5檢查和    ?????

  D:表示主從設備號更改

  L:表示符號鏈接文件更改

  U:文件屬主更改

  G:文件屬組更改

  T:文件最后修改時間更改

  所以上例結果表示為:/etc/skel/.bashrc 文件大小、MD5檢查和、最后修改時間被更改。

原創文章,作者:mcgeewang,如若轉載,請注明出處:http://www.www58058.com/38426

(0)
mcgeewangmcgeewang
上一篇 2016-08-21
下一篇 2016-08-21

相關推薦

  • N25-第六周作業

    第六周 請詳細總結vim編輯器的使用并完成以下練習題 文本編輯器: vim:     模式化的編輯器         基本模式:          &…

    Linux干貨 2016-12-28
  • 磁盤和文件系統創建

    磁盤結構:主要是由盤體、控制電路、接口部件等組成。盤體里面封裝了多個盤片的腔體;控制電路包含硬盤BIOS、主控芯片和硬件緩存等單元;接口部件包含電源、數據接口主從跳線等。讀取硬盤數據時,主軸電機帶動盤片旋轉,副軸電機帶動磁頭臂將磁頭放到相應的數據存放的柱面和磁道上,再由磁頭讀出相應扇區中的數據。(圖1-1) 磁道(track):每個盤面被劃分成了多個同心圓環…

    Linux干貨 2016-02-14
  • 第二周作業

    一Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 which命令:顯示(shell)命令全部的路徑 which [option] programmame […] –skip-alias:忽略別名   whereis命令:搜索二進制程序,源碼,和幫助手冊頁的命令 whereis [option] na…

    Linux干貨 2017-02-18
  • 馬哥教育網絡班22期+第5周課程練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell;cat /etc/passwd | grep "^\<root\>"cat /etc/passwd | grep "^\<fedora\>"cat /etc/passwd | grep "^\<user1\…

    Linux干貨 2016-09-19
  • linux之netfilter與 iptables學習

    Linux之netfilter與iptables學習 一、為什么我們的主機需要防火墻 二、Linux下防火墻如何實現 三、四表五鏈學習 四、主機防火墻 五、網絡防火墻 六、iptables命令學習 七、主機防火墻規則備份與恢復 ====================================== 一、為什么我們的主機需要防火墻?  &nbs…

    Linux干貨 2016-06-23
  • Linux發展史

    摘要:Linux無處不在的存在于我們的周圍,家庭、公司、學校等等?,F在的Linux已經從最初示很少的一段代碼,發展成全世界應用范圍最廣的操作系統。本文將為大家展現Linux的發展史。 一、Linux的是什么       Linux是一套可以免費使用和自由傳播的類Unix操作系統操作系統,是一個基于POSIX和UNIX的多用戶、多…

    Linux干貨 2016-10-18

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-21 20:54

    rpm包管理器對的選項是比較多的,我們只需要對rpm包的查詢語句熟練掌握就很好了。希望下來多加練習

欧美性久久久久