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 20:45
下一篇 2016-08-21 20:45

相關推薦

  • Linux網絡管理命令的使用

    網絡管理命令 ip命令 配置Linux網絡屬性:ip命令,不過該命令的操作只是臨時操作,重啟以后配置丟失 ip-show / manipulate routing, devices, policy routing and tunnels ip [ OPTIONS ] OBJECT { COMMAND | help }    &n…

    Linux干貨 2016-09-11
  • Linux入門之常見文本處理工具

    Linux入門之常見文本處理工具 文本內容查看命令 cat   tac    rev  more  less   head   tail 普通文本查看 cat  tac  rev cat 命令 cat  [option]…

    Linux干貨 2016-08-08
  • 學習學習,復習復習,linux基礎中的基礎

    計算機的組成及其功能          根據馮諾依曼體系結構構成的計算機,應該具備以下幾點功能: l  具有把程序、數據輸入到計算機的能力 l  具有長期記憶程序、數據、中間結果以及最終結果的能力 l  能夠完成各種算術運算、邏輯運算和數據傳輸的數據…

    Linux干貨 2016-09-25
  • rpm軟件管理工具詳解

    1 Linux軟件安裝概述 安裝程序的方式: 軟件包概述 RPM RPM的缺點 RPM包 RPM分包 RPM命令的使用 rpm 包管理 升級注意項 如何安裝rpm軟件包 如何卸載rpm軟件包 如何升級rpm軟件包 如何查詢rpm軟件包 如何查看與rpm包相關的文件和其他信息 如何校驗rpm包 RPM的數據庫 1 Linux軟件安裝概述 安裝程序的方式: 通用…

    Linux干貨 2016-09-06
  • rpm包管理

    rpm包管理 由于 RPM 是透過預先編譯打包成為 RPM 文件格式后,再加以安裝的一種方式,還能夠進行數據庫的記載。 所以 RPM 有以下的優點: RPM 內含已經編譯過的程序與配置文件等數據,可以讓用戶免除重新編譯的困擾; RPM 在被安裝前,會先檢查系統的硬盤容量、操作系統版本等,可避免檔案被錯誤安裝; RPM 檔案本身提供軟件版本信息、相依屬性軟件名…

    Linux干貨 2016-08-21
  • 8.10 shell scripts 作業

    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 [root@CentOs6 bin]# systeminfo.sh        Hostname:&n…

    Linux干貨 2016-08-12

評論列表(1條)

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

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

欧美性久久久久