Linux源程序包管理器之RPM

一、 RPM功能描述

打包

安裝

卸載

升級

校驗

數據庫管理

二、 RPM包命名格式

1.       命名格式舉例

name-version-relase.arch.rpm

例如:bash-4.2.3-3.centos5.x86_64.rpm

2.       分段描述

包名

版本號

RPM發行號

系統信息

平臺信息

后綴

bash

4.2.3(同打包的源代碼一致)

3(rpm自身的發行號,與程序源碼的發行號無關,僅用于標識對rpm包不同制作的修訂)

    Centos5(此包適用的OS)         

X86_64( 適用于的硬件平臺)

舉例:                                 x86:   i386, i486, i586, i686等;

                                     x86_64:   x86_64

                                     powerpc:   ppc

                                     noarch:   依賴于虛擬機

.rpm

三、 RPM分包機制

RPM包管理器在對源碼包編譯時根據功能性差異,對要編譯的程序包進行了分包處理。

常見分包形式

主包

bash-4.2.3-3.centos7.x86_64.rpm

命名與源程序一致

子包

bash-a-4.2.3-3.centos7.x86_64.rpm               

bash-b-4.2.3-3.centos7.x86_64.rpm

bash-devel-4.2.3-3.centos7.x86_64.rpm

例如:開發包

三、 RPM包獲取途徑

1、發行的光盤或站點服務器

            鏡像:

                       http://mirrors.163.com

                            http://mirrors.sohu.com

2、項目的官網

            源代碼

            rpm

3、很多第三方機構或個人制作并公開發布許多rpm

http://rpmfind.net

           http://rpm.pbone.net

4、可靠的途徑:EPEL

            Fedora-EPEL

四、 rpm包的合法性驗證

linux源程序包制作者制作完成之后會附加數字簽名于包上,保證了包的來源合法性和完整性。

加密過程

          包的制作者使用單向加密提取原始數據的特征碼,而后使用自己的私鑰加密這段特性碼,附加原始數據后面。

驗證過程

前提:必須有可靠機制獲取到包制作者的公鑰;

         1、使用制作者的公鑰解密加密的特征碼,能解密則意味著來源合法;

         2、使用與制作者同樣的意向加密算法提取原始數據的特征碼,并與解密出來的特征作比對,相同,則意味著完整性沒問題;

五、 RPM包管理器使用

1.       安裝程序包

命令

選項參數

文件名

Rpm

-ivh:常用組合

/path/to/package_file

Rpm

-vvv:安裝時顯示更詳細信息

/path/to/package_file

Rpm

–test:測試是否可正常安裝

/path/to/package_file

Rpm

–nodeps:忽略依賴關系安裝,安裝后可能無法正常運行

/path/to/package_file

Rpm

–replacepkgs:重新安裝(如果原有配置文件作了修改,很有可能不執行替換,而是將應該安裝生成的配置文件重命名為 .rpmnew

/path/to/package_file

 

2.       卸載程序包

命令

選項參數

文件名

Rpm

-e:卸載程序包

package-_name

Rpm

–nodeps:忽略依賴關系將依賴于此包的所有包一并卸載,但依賴于此包的程序包可能會運行不正常。

package-_name

Rpm

–replacepkgs:重新安裝(如果原有配置文件作了修改,很有可能不執行替換,而是將應該安裝生成的配置文件重命名為 .rpmnew

package-_name

注意:如果包的配置文件安裝后曾被改動過,卸載時,此文件將不會卸載,而是被重命名并保留,例如:warning: /etc/zprofile saved as /etc/zprofile.rpmsave

3.       升級程序包

命令

選項參數

文件名

Rpm

-Uvh:升級或安裝

/path/to/package_file

Rpm

-Fvh:純升級(若升級的程序包與其他程序包存在依賴關系,升級后其他程序包會運行異常,存在版本沖突問題;)  

/path/to/package_file

Rpm

–force:強制升級

/path/to/package_file

注意:不應該對內核執行升級操作,而是安裝。系統允許多內核并存。

4.       查詢操作

1、查詢某包是否安裝

rpm -q package_name…

2、查詢所有已經安裝的包

         rpm -qa

                   按條件過濾:rpm -qa | grep 'PATTERN'

3、查詢包的描述信息

         rpm -qi package_name

4、查詢某包安裝生成了哪些文件

rpm -ql package_name

         (1) 查詢某包安裝生成了哪些配置文件

                   rpm -qc package_name

         (2) 查詢某包安裝生成了哪些幫助文件

                   rpm -qd package_name

         (3) 查詢程序包的相關腳本

                   rpm -q –scripts package_name

                            腳本有四類:

                                     preinstall:安裝前腳本

                                     postinstall: 安裝后腳本

                                     preuninstall: 卸載前腳本

                                     postuninstall: 年前后腳本

5、查詢某文件是由哪個包安裝生成的

         rpm -qf /path/to/some_file

6、對尚未安裝的包執行查詢

         rpm [option] /path/to/package_file

                   -qpi:查詢包的描述信息

                   -qpl:查詢某包安裝會生成哪些文件

                   -qpc:查詢某包安裝會生成哪些配置文件

                   -qpd:查詢某包安裝會生成哪些幫助文件

六、 幾種常見使用場景

 1.       Rpm包安裝后生成的文件屬性是否發生改變,是否被惡意更改?

標準語句:rpm -V package_name

舉例:以zsh程序包為例

1)修改其配置文件,新增“#NEWLINE”行;

Linux源程序包管理器之RPM

2rpm –V zsh 檢測;

Linux源程序包管理器之RPM

3S代表文件大小,新增5字節且修改時間有改變;

注意:某屬性無變化,顯示為 .

各字符代表的意義:

                          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

 

 2.       包來源合法性及完整性檢驗

此處以檢測光盤程序包檢測為例;

1)導入前,安裝程序包時提示無密鑰

Linux源程序包管理器之RPM

2)導入包的制作者的公鑰

         rpm –import /media/CentOS/RPM-GPG-KEY-CentOS-6

3) 顯示所有已經導入的gpg格式的公鑰

Linux源程序包管理器之RPM                              

4)顯示密鑰的詳細信息

Linux源程序包管理器之RPM

Linux源程序包管理器之RPM

5)再次安裝zsh程序包,無提示信息(檢查包:安裝過程中會自動執行)

Linux源程序包管理器之RPM

6)手動檢查操作,兩種辦法如圖(來源合法性和完整性)

Linux源程序包管理器之RPM

Linux源程序包管理器之RPM

7)手動檢查操作(來源合法性)

Linux源程序包管理器之RPM

8)手動檢查操作(包完整性)

Linux源程序包管理器之RPM

9)其他命令

清除已導入的密鑰:rpm -e gpg-pubkey-NAME

 3.       Rpm程序管理器數據庫重建

rpm數據庫目錄:/var/lib/rpm

rpm數據庫重建操作:

         rpm –initdb 初始化(如果事先沒有庫,會新建一個;如果有,則不新建;)

         rpm –rebuilddb: 重建(直接重建,覆蓋原有的數據庫)

原創文章,作者:晚明傷哥,如若轉載,請注明出處:http://www.www58058.com/8425

(0)
晚明傷哥晚明傷哥
上一篇 2015-09-24 17:05
下一篇 2015-09-26 15:29

相關推薦

  • 編程能力與編程年齡

    程序員這個職業究竟可以干多少年,在中國這片神奇的土地上,很多人都說只能干到30歲,然后就需要轉型,就像《程序員技術練級攻略》這篇文章很多人回復到這種玩法會玩死人的一樣。我在很多面試中,問到應聘者未來的規劃都能聽到好些應聘都說程序員是個青春飯。因為,大多數程序員都認為,編程這個事只能干到30歲,最多35歲吧。每每我聽到這樣的言論,都讓我感到相當的無語,大家都?!?/p>

    Linux干貨 2016-08-15
  • 概述Windows2003的卷影副本

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/157940      卷影副本,也就是Volume Shadow Server簡單來講,卷影副本(或稱為VSS)可以簡單…

    Linux干貨 2015-03-25
  • 細述LVM

     前言:     LVM(Logical Volume Manager)是基于內核的一種邏輯卷管理器,LVM適合于管理大存儲設備,并允許用戶動態調整文件系統大小。此外,LVM的快照功能可以幫助我們快速備份數據。LVM為我們提供了邏輯概念上的磁盤,使得文件系統不再關心底層物理磁盤的概念。 看圖識LVM &nbs…

    Linux干貨 2015-06-15
  • Linux磁盤管理實操

    Linux磁盤管理實操 1、創建一個10G分區,并格式為ext4文件系統。 先使用fdisk工具創建一個10G的新分區。使用fdisk打開要創建磁盤分區的物理設備fdisk /dev/sdb,然后使用n指令創建新的分區,分區類型選此處選擇為主分區,第一個柱面使用默認的1,最后的柱面,使用+10G這種表示方式,表示創建的分區大小為10G。 創建后可以使用p指令…

    系統運維 2016-12-13
  • MySQL高級特性-合并表

    1. Merge Tables         如果愿意的話,可以把合并表看成一種較老的、有更多限制的分區表,但是它們也有自己的用處,并且能提供一些分區表不能提供的功能。 合并表實際是容納真正的表的容器。可以使用特殊的UNION語法來CREATE TABLE。下面是一個合并表的例子: mysql> &n…

    Linux干貨 2015-04-13
  • RHCE系列之磁盤加密—-LUKS加密

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1436460        LUKS (Linux Unified Key Setup)為 Linux 硬盤…

    Linux干貨 2016-08-15
欧美性久久久久