rpm包管理

rpm包管理

由于 RPM 是透過預先編譯打包成為 RPM 文件格式后,再加以安裝的一種方式,還能夠進行數據庫的記載。 所以 RPM 有以下的優點:

  1. RPM 內含已經編譯過的程序與配置文件等數據,可以讓用戶免除重新編譯的困擾;

  2. RPM 在被安裝前,會先檢查系統的硬盤容量、操作系統版本等,可避免檔案被錯誤安裝;

  3. RPM 檔案本身提供軟件版本信息、相依屬性軟件名稱、軟件用途說明、軟件所含檔案等信息,便于了解軟件;

  4. RPM 管理的方式使用數據庫記錄 RPM 檔案的相關參數,便于升級、移除、查詢和驗證。

在CentOS系統上使用rpm命令管理程序包無外乎:安裝升級、卸載查詢、校驗、數據庫維護。

安裝

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

一般選項:

  • -i :install的意思

  • -v : verbose

  • -vv : 查看更完整的安裝信息畫面

  • -h : 以安裝信息欄顯示安裝進度,以#顯示程序包管理執行進度

常用:rpm  -ivh  包文件名(可以多個用空格分開,也可以直接從網絡上安裝)

普通用法
[root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm 
準備中...                          ################################# [100%]
正在升級/安裝...
   1:tree-1.6.0-10.el7                ################################# [100%]

從網上直接安裝
[root@www ~]# rpm -ivh http://website.name/path/pkgname.rpm

其它選項:

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

  • –nodeps:忽略依賴關系

  • –replacepkgs | replacefiles

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

  • –nodigest:不檢查包完整性

  • –noscripts:不執行程序包腳本

    • %pre: 安裝前腳本; –nopre

    • %post: 安裝后腳本; –nopost

    • %preun: 卸載前腳本; –nopreun

    • %postun: 卸載后腳本; –nopostun
      rpm包管理

升級

語法1:rpm {-U|–upgrade} [install-options] PACKAGE_FILE…

語法2:{-F|–freshen} [install-options] PACKAGE_FILE…

rpm包管理

**rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …

而外的選項:

  –oldpackage:降級
  –force: 強行升級

注意:

(1) 不要對內核做升級操作;Linux支持多內核版本并存,因此,對直接安裝新版本內核
(2) 如果原程序包的配置文件安裝后曾被修改,升級時,新版本的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

查詢

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

如果軟件包未安裝要查詢的話用 -qp選項

查詢已安裝軟件的信息參數:

  • -q  :僅查詢,后面接的軟件名稱是否有安裝;

  • -qa :列出所有的,已經安裝在本機 Linux 系統上面的所有軟件名稱;

  • -qi :列出該軟件的詳細信息 (information),包開發商、版本說明等;

  • -ql :列出該軟件所有的安裝后生成的文件所在完整文件名 (list);

  • -qc :列出該軟件的所有配置文件 (找出在 /etc/ 底下對應的文件名而已)

  • -qd :列出該軟件的所有說明文件文檔 (找出與 man 有關的檔案而已)

  • -qR :列出不該軟件有關的相依軟件所屬的檔案 (Required 的意思)

  • -qf :由后面接的文件名,查看指定的文件由哪個程序包安裝生成;

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

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

  • -q –changelog:查詢rpm包的changelog(更新日志)

  • –provides: 列出指定程序包所提供的CAPABILITY(功能);

查詢某個 RPM 檔案內含有的信息:

  • -qp [ icdlR ]:注意 -qp 后面接的所有參數以上面的說明一致。但用途僅在于找出某個 RPM 檔案內的信息,而非已安裝的軟件信息!注意!

rpm -qa |grep "" 用法

一般常用用法:

查看以tr開頭的已安裝文件

    [root@localhost Packages]# rpm -qa |grep "^tr"
    trousers-0.3.13-1.el7.x86_64
    tree-1.6.0-10.el7.x86_64
    tracker-1.2.6-3.el7.x86_64
    traceroute-2.0.19-5.el7.x86_64


查看是否安裝某個文件包

    [root@localhost Packages]# rpm -q gcc
    gcc-4.8.5-4.el7.x86_64

查看程序的配置文件

    [root@localhost Packages]# rpm -qc bash
    /etc/skel/.bash_logout
    /etc/skel/.bash_profile
    /etc/skel/.bashrc

若要成功安裝某程序包需要的文件

    [root@localhost Packages]# rpm -qR tree
    libc.so.6()(64bit)
    libc.so.6(GLIBC_2.14)(64bit)
    libc.so.6(GLIBC_2.2.5)(64bit)

查看某文件屬于哪個軟件

    [root@localhost Packages]# rpm -qf /etc/passwd
    setup-2.8.71-6.el7.noarch
方法適用于誤刪了某個文件恢復時用到

卸載:

語法:rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME ..

一般: 我們直接 rpm -e 包名  就可以卸載了

普通校驗

含義

作用的方式是『使用 /var/lib/rpm 底下的數據庫內容來比對目前Linux 系統的環境下的所有軟件檔案 』用這個簡單的方法來驗證一下原本的文件系統吧!好讓你了解這一陣子到底是修改到哪些檔案數據了!

選項:

  • -V  :后面加的是軟件名稱,若該軟件所噸的檔案被更改過,才會列出來;

  • -Va :列出目前系統上面所有可能被更改過的檔案;

  • -Vp :后面加的是文件名,列出該軟件內可能被更改過的檔案;

  • -Vf :列出某個檔案是否被更改過~

結果說明:

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) 檔案的建立時間已被改變

數字簽名校驗

WHY:*rpm -V 驗證只能驗證軟件內的信息不 /var/lib/rpm/ 里面的數據庫信息而已,如果該軟件檔案所提供的數據本身就有問題,我們可以透過數字簽名來檢驗軟件的來源的!

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

完整性驗正:SHA256
來源合法性驗正:RSA

公鑰加密:

對稱加密:加密、解密使用同一密鑰;
非對稱加密:密鑰是成對兒的
public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開

安裝一個 RPM 檔案時*:

  1. 首先你必須要先安裝原廠釋出的公鑰檔案;

  2. 實際安裝原廠的 RPM 軟件時, rpm 指令會去讀取 RPM 檔案的簽章信息,與本機系統內的簽章信息比對,

  3. 若簽章相同則予以安裝,若找不到相關的簽章信息時,則給予警告并停止安裝喔。

CentOS 7 的數字簽名位于 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

(其他centos版本把最后數字改一下就是了)

由于不同版本 GPG 密鑰檔案放置的位置可能不同,不過檔名大多是以 GPG-KEY 來說明的, 因此你可以簡單的使用 locate 或 find、
來找尋,如以下的方式來搜尋即可:

[root@www ~]# locate GPG-KEY
[root@www ~]# find /etc -name 'GPG-KEY'

導入所需要公鑰:

rpm  -K |checksig rpmfile 檢查包的完整性和簽名

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7

密鑰的內容基本上都是使用 pubkey 作為軟件的名稱的,查看方法

[root@www ~]# rpm -qa | grep pubkey    —–先列出密鑰軟件名稱
gpg-pubkey-e8562897-459f07a4
[root@www ~]# rpm -qi gpg-pubkey-e8562897-459f07a4  ————-再以 -qi 的方式來查詢看看該軟件的信息

rpm數據庫 : /var/lib/rpm

數據庫重建:

語法: rpm {–initdb|–rebuilddb}

  • –initdb: 初始化
    如果事先不存在數據庫,則新建之,否則,不執行任何操作

  • –rebuilddb:重建已安裝的包頭的數據庫索引目錄(更少)

注意:破壞庫是不能恢復的雖然有命令可以重建但里面的數據就沒了!?。〔荒苓@么做?。。?/h3>

rpm包管理
雖然用 –initdb 能恢復目錄 但也丟失了數據,用 –rebuilddb 過恢復的更少! 所以不能刪庫??!

其他

rpm2cpio 包文件|cpio –itv 預覽包內文件

rpm2cpio 包文件|cpio –id  “ *.conf ” 釋放包內文件

如果rpm軟件被誤刪除,也可以這么安裝

rpm包管理

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

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

相關推薦

  • 軟鏈接和硬鏈接的區別

          什么是鏈接文件? 使用windows的朋友們應該會經常接觸到快捷方式吧!它也就是能讓我們快速的打開一個目標應用程序,文件,或者文件夾來使我們的操作更加快捷。那么下面我們就來簡單聊聊linux上的“鏈接文件”吧!            &n…

    Linux干貨 2016-10-19
  • grep與正則表達式

    一、grep        grep常用于文本搜索。通過自定義的模式(pattern),篩選出使用者需要的文本內容。除了有grep,還有egrep和fgrep。其中egrep = grep  –E,而fgrep則是不支持正則表達式。     &nbs…

    2017-07-29
  • keepalived+nginx 模型示例

    原理為: 調度器 利用 keepalived 保持高可用性,實現對系統的監控和VIP 的floating NGINX 利用upstream模塊進行調度 關鍵點: keepalived 對NGINX 狀態的監控: //利用配置文件中設定的腳本對調度器的nginx 進程的監控 實驗步驟: 基于上一篇LVS-DR架構來做,具體LVS-DR架構請參考上一篇 先設置主…

    2017-05-13
  • Linux哲學思想以及自己的理解

    Linux哲學思想: #1 一切接文件 #2  單一目的小程序 #3 組合小程序完成復雜任務 #4 文本文件保存配置信息 #5 盡量避免捕獲用戶接口 #6 提供機制,而非策略 自己的理解:(玩Linux時間比較短,沒什么太深刻的理解) #1 一切皆文件 我們說“Linux中一切皆文件”直觀地可以這樣理解:所有的東西,設備、內存都模擬成文件,我們可以…

    Linux干貨 2016-08-15
  • linux開機啟動流程

    linux開機啟動流程:   一、BIOS 加電自檢 當你按電源開關開機時,電腦會首先去啟動BIOS(基本輸入輸出系統),BIOS一般是集成在主板上的. BIOS 的工作 1.檢測連接硬件,比如顯卡,內存,磁盤等等,檢測的目的是以后把這些設備信息提供給操作系統 2.尋找啟動磁盤,每一種BIOS都會有開機啟動菜…

    Linux干貨 2016-09-14
  • 【N25第五周作業】find命令以及相關練習

    find: 實時查找工具,通過遍歷指定起始路徑下文件系統層級結構完成文件查找; 工作特性: 查找速度略慢; 精確查找; 實時查找; 用法: find [OPTIONS]  [查找起始路徑]  [查找條件]  [處理動作] 查找起始路徑:指定具體搜索目標起始路徑;默認為當前目錄; 查找條件:…

    Linux干貨 2016-12-27

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-22 09:12

    文章總結的很全面,rpm管理工具中的查詢語句是常用的操作需要重復練習,熟練掌握。

欧美性久久久久