Linux程序包管理rpm

CentOS系統上rpm命令管理程序包:

安裝、卸載、升級、查詢、校驗、數據庫維護

 安裝:

rpm {-i|–install} [install-options] PACKAGE_FILE …

-v: verbose

-vv:

-h: #顯示程序包管理執行進度;每個#表示2%的進度

 rpm -ivh PACKAGE_FILE …

例一:安裝程序包

[root@localhost Packages]# rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm
警告:zsh-5.0.2-25.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY
準備中...                          ################################# [100%]
正在升級/安裝...
   1:zsh-5.0.2-25.el7                 ################################# [100%]
[root@localhost Packages]#

[install-options]

–test: 測試安裝,但不真正執行安裝過程;dry run模式;

–nodeps:忽略依賴關系;

–replacepkgs: 重新安裝;

例一:重新安裝

[root@localhost Packages]# rpm -ivh --replacepkgs zsh-5.0.2-25.el7.x86_64.rpm
警告:zsh-5.0.2-25.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY
準備中...                          ################################# [100%]
正在升級/安裝...
   1:zsh-5.0.2-25.el7                 ################################# [100%]

–nosignature: 不檢查來源合法性;

–nodigest:不檢查包完整性;

例一:不檢查來源,不檢查完整性

[root@localhost Packages]# rpm -ivh --replacepkgs zsh-5.0.2-25.el7.x86_64.rpm --nosignature --nodigest
準備中...                          ################################# [100%]
正在升級/安裝...
   1:zsh-5.0.2-25.el7                 ################################# [100%]
 

–noscipts:不執行程序包腳本片斷;

%pre: 安裝前腳本; –nopre

%post: 安裝后腳本; –nopost

%preun: 卸載前腳本; –nopreun

%postun: 卸載后腳本;  –nopostun

 升級:

rpm {-U|–upgrade} [install-options] PACKAGE_FILE …

rpm {-F|–freshen} [install-options] PACKAGE_FILE …

 upgrage:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則“安裝”;

freeshen:安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則不執行升級操作;

 rpm -Uvh PACKAGE_FILE …

rpm -Fvh PACKAGE_FILE …

 –oldpackage:降級;

–force: 強行升級;

 注意:(1) 不要對內核做升級操作;Linux支持多內核版本并存,因此,對直接安裝新版本內核;

  (2) 如果原程序包的配置文件安裝后曾被修改,長級時,新版本的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留;

 查詢:

rpm {-q|–query} [select-options] [query-options]

 [select-options]

-a: 所有包

-f: 查看指定的文件由哪個程序包安裝生成

 -p /PATH/TO/PACKAGE_FILE:針對尚未安裝的程序包文件做查詢操作;

 –whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供;

–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴;

例一:查詢系統上所有已安裝的包

[root@localhost Packages]# rpm -qa
dracut-network-033-463.el7.x86_64

 [query-options]

–changelog:查詢rpm包的changlog

例一:查詢rpm包的bug

[root@localhost Packages]# rpm -q --changelog zsh
* 四 7月 14 2016 Kamil Dudka <kdudka@redhat.com> - 5.0.2-25
- improve use of new command substitution in completion (#1356388)

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

例一:查詢程序包的配置文件

[root@localhost Packages]# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc

 -d: 查詢程序的文檔

例一:查詢文檔

[root@localhost Packages]# rpm -qd zsh
/usr/share/doc/zsh-5.0.2/BUGS

 -i: information 信息

例一:查看程序包信息

[root@localhost Packages]# rpm -qi zsh

-l: 查看指定的程序包安裝后生成的所有文件;

例一:查看指定的程序包安裝后生成的所有文件;

[root@localhost Packages]# rpm -ql zsh

–scripts:程序包自帶的腳本片斷

例一:程序包自帶的腳本片斷

[root@localhost Packages]# rpm -q --scripts zsh
postinstall scriptlet (using /bin/sh):
if [ ! -f /etc/shells ] ; then
    echo "/bin/zsh" > /etc/shells
else
    grep -q "^/bin/zsh$" /etc/shells || echo "/bin/zsh" >> /etc/shells

 -R: 查詢指定的程序包所依賴的CAPABILITY

–provides: 列出指定程序包所提供的CAPABILITY

 用法:

-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE

-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, …

-qa

 卸載:

rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts]

           [–notriggers] [–test] PACKAGE_NAME …

            –nodeps忽略軟件包的依賴關系

例一:卸載軟件

[root@localhost Packages]# rpm -e zsh
[root@localhost Packages]# rpm -q zsh
未安裝軟件包 zsh

  校驗:

 rpm {-V|–verify} [select-options] [verify-options]

例一:核驗文件是否有改動

[root@localhost Packages]# rpm -V zsh
S.5....T.    /usr/share/zsh/5.0.2/functions/tcp_read

        S file Size differs

       M Mode differs (includes permissions and file type)

       5 digest (formerly MD5 sum) differs

       D Device major/minor number mismatch

       L readLink(2) path mismatch

       U User ownership differs

       G Group ownership differs

       T mTime differs

       P caPabilities differ

包來源合法性驗正及完整性驗正:

完整性驗正:SHA256

來源合法性驗正:RSA

公鑰加密:

對稱加密:加密、解密使用同一密鑰;

非對稱加密:密鑰是成對兒的,

public key: 公鑰,公開所有人

secret key: 私鑰, 不能公開

導入所需要公鑰:

rpm –import /PATH/FROM/GPG-PUBKEY-FILE

[root@localhost cdrom]# rpm --import RPM-GPG-KEY-CentOS-7

CentOS 7發行版光盤提供的密鑰文件:RPM-GPG-KEY-CentOS-7

 數據庫重建:

rpm {–initdb|–rebuilddb}

initdb: 初始化

如果事先不存在數據庫,則新建之;否則,不執行任何操作;

 rebuilddb:重建

無論當前存在與否,直接重新創建數據庫;

 回顧:Linux程序包管理的實現、rpm包管理器

 rpm命令實現程序管理:

安裝:-ivh, –nodeps, –replacepkgs

卸載:-e, –nodeps

升級:-Uvh, -Fvh, –nodeps, –oldpackage

查詢:-q, -qa, -qf, -qi, -qd, -qc, -q –scripts, -q –changlog, -q –provides, -q –requires

校驗:-V

 導入GPG密鑰:–import, -K, –nodigest, –nosignature

數據庫重建:–initdb, –rebuilddb

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

(0)
kangkang
上一篇 2015-06-18 11:04
下一篇 2015-06-21 18:50

相關推薦

  • Linux 目錄配置

    Linux 目錄配置 Linux目錄配置標準:FHS 因為利用Linux來開發產品或distributions的團隊/公司與個人實在太多了,如果每個人都用自己的想法來配置文件放置的目錄,那么將可能造成很多管理上的困擾。所以/后來就有所謂的Filesystem Hierarchy Standard (FHS)標準出爐了。 根據FHS(http://www.pa…

    Linux干貨 2017-03-26
  • 文本三劍客grep爵士與手下的血淚奮戰

    文件查看命令: cat, tac,revcat [OPTION]… [FILE]…  -E: 顯示行結束符$ -n: 對顯示出的每一行進行編號 -A:顯示所有控制符 -b: 非空行編號 -s:壓縮連續的空行成一行 文件查看 分頁查看文件內容more: 分頁查看文件more [OPTIONS…] FILE…-d: 顯示翻頁及退出提示less:一頁一頁…

    Linux干貨 2016-08-07
  • TCP 的那些事兒(下)

    這篇文章是下篇,所以如果你對TCP不熟悉的話,還請你先看看上篇《TCP的那些事兒(上)》 上篇中,我們介紹了TCP的協議頭、狀態機、數據重傳中的東西。但是TCP要解決一個很大的事,那就是要在一個網絡根據不同的情況來動態調整自己的發包的速度,小則讓自己的連接更穩定,大則讓整個網絡更穩定。在你閱讀下篇之前,你需要做好準備,本篇文章有好些算法和策略,可能會引發你的…

    Linux干貨 2016-08-15
  • Linux軟件包管理之程序包編譯安裝

    程序包編譯 程序包編譯安裝: Application-VERSION-release.src.rpm–>      安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝 源代碼–>預處理–>編譯(gcc)–>匯編&#82…

    Linux干貨 2016-08-25
  • N25_第二周博客作業:

    N25_第二周博客作業: 1、linux上的文件管理命令都有哪些,其常用的使用方法及其相關示例演示。 Linux上常見的文件管理類命令有mkdir、touch、cp、mv、rm、stat。 mkdir:創建新目錄 SYNOPSIS   mkdir [OPTION]… DIRECTORY… 常用: 1、直接建目錄 [root@…

    Linux干貨 2016-12-09
欧美性久久久久