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
下一篇 2015-06-21

相關推薦

  • 加密通訊過程

    一次加密通訊的過程 1、client_hello   客戶端發起請求,以明文傳輸請求信息,包含版本信息,加密套件候選列表,壓縮算法候選列表,隨機數,擴展字段等信息,相關信息如下: 支持的最高TSL協議版本version,從低到高依次 SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2,當前基本不再使用低于 TLSv1 的版本 客戶端支持的加密…

    Linux干貨 2017-02-07
  • 22期網絡班+第一周作業+深圳+王金寶

    1、描述計算機的組成及其功能? 答: 顯示器和主機,顯示器就不說了 主機里又有,主板,又叫主機板(mainboard)、系統板(systembourd)和母板(motherboard);它安裝在機箱內,是微機最基本的也是最重要的部件之一。主板一般為矩形電路板,上面安裝了組成計算機的主要電路系統,一般有BIOS芯片、I/O控制芯片、鍵盤和面板控制開關 接口、指…

    Linux干貨 2016-08-13
  • web服務介紹(三)

    狀態碼分類:1xx:100-101  額外信息提示2xx:200-206  表示成功類響應3xx:300-305  重定向4xx:400-415  錯誤類響應碼,由于客戶端發送錯誤,如客戶端請求一個根本不存在的資源5xx:500-505  錯誤類信息,服務器端錯誤,服務器本身一些問題導致請求無法成功 常用狀態…

    Linux干貨 2017-04-22
  • rpm包管理與yum簡要用法

    linux程序包管理 程序包:源代碼 –> 目標二進制格式(二進制程序、庫文件、配置文件、幫助文件)–> 組織成一個或有限的幾個包文件 程序包管理器:        debian –> dpkg   以“.deb”結尾 &nb…

    Linux干貨 2016-08-22
  • 馬哥教育網絡班21期-第六周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; #cp /etc/rc.d/rc.sysinit /tmp #vim /tmp/rc.sysinit :%s/^[[:space:]]/#…

    Linux干貨 2016-08-15
  • Centos7 PHP-FPM源碼安裝

    PHP-FPM源碼安裝 安裝必要組件 yum install -y openssl-devel traceroute libtool unzip gcc gcc-c++ autoconf net-snmp-devel vim wget sysstat lrzsz  man tree mysql-devel ntpdate rsync libxml2…

    系統運維 2016-09-06
欧美性久久久久