rpm包管理

前言
    RPM(簡稱RPM,全稱為The RPM Package Manager)是在Linux下廣泛使用的軟件包管理器。RPM此名詞可能是指.rpm的文件格式的軟件包,也可能是指其本身的軟件包管理器(RPM Package Manager)。最早由Red Hat研制,現在也由開源社區開發。RPM通常隨附于Linux發行版,但也有單獨將RPM作為應用軟件發行的發行版(例如Gentoo)。RPM僅適用于安裝用RPM來打包的軟件,目前是GNU/Linux下軟件包資源最豐富的軟件包類型之一。

rpm的命名格式:
    name-version-release.arch.rpm
        version: major.minor.release,同源代碼
        release: rpm自身的發行號,與程序源碼的發行號無關,僅用于標識對rpm包不同制作的修訂;
        同時,release還包含此包適用的OS
            例如:bash-4.2.3-3.centos5
        arch: 適用于的硬件平臺,
             x86: i386, i486, i586, i686等;
             x86_64: x86_64
             powerpc: ppc
             noarch: 依賴于虛擬機
        示例:bash-4.2.3-3.centos5.x86_64.rpm

獲取rpm包的途徑:
    1、發行的光盤或站點服務器
       鏡像:
          http://mirrors.163.com
          http://mirrors.sohu.com
    2、項目的官網
       源代碼、rpm包
    3、很多第三方機構或個人制作并公開發布許多rpm包
       http://rpmfind.net
       http://rpm.pbone.net
       可靠的途徑:EPEL
                    

rpm的命令格式::
    rpm [option…] PACKAGE_FILE

rpm包管理器:
    1、打包
    2、安裝
    3、卸載
    4、升級
    5、信息查看
    6、校驗
    7、數據庫管理

1、打包

    略……

2、安裝

    -i:安裝指定包
    -{v|vv|vvv}:顯示詳細安裝信息,v字母越多顯示越詳細
    -h:顯示進度條
    --nodeps:忽略依賴關系
    --test:僅做測試,不執行安裝
    --replacepkgs:重新安裝

3、卸載

-e:卸載包
--nodeps:忽略依賴關系
    如果被其它包所依賴:
    1、將依賴于此包的所有包一并卸載
    2、忽略依賴關系;能卸載,但依賴于此包程序包可能會運行不正常;
    3、如果包的配置文件安裝后曾被改動過,卸載時,此文件將不會卸載,而是被重命名并保留

4、升級

    -U:升級或安裝
    -F:純升級,前提是得有老版本
    --force:強制升級

5、信息查看

    -q:查詢包是否已安裝
        常用查詢選項組合:
        -qa:列出所有已安裝的包
        -qi:列出某已安裝包的描述信息
        -ql:列出某已安裝包生成了哪些文件
        -qc:列出某已安裝包生成了哪些配置文件
        -qd:列出某已安裝包生成了哪些幫助文件
        -qf:/path/to/some_file:查詢某文件是由哪個包生成的
        -qs:查詢某已安裝包內文件的狀態,有三種:normal、not installed、replaced
        -qp:查詢某未安裝包的相關信息
            -qpi:列出某未安裝包的描述信息
            -qpl:列出某未安裝包生成了哪些文件
            -qpc:列出某未安裝包生成了哪些配置文件
            -qpd:列出某未安裝包生成了哪些幫助文件
        -q --scripts package_name:列出某已安裝包的相關腳本
            腳本有四類:
            preinstall:安裝前腳本
            postinstall: 安裝后腳本
            preuninstall: 卸載前腳本
            postuninstall: 卸載后腳本

6、校驗

    包制作者制作完成之后會附加數字簽名于包上;

    來源合法性,包的完整性

    包的制作者使用單向加密提取原始數據的特征碼,而后使用自己的私鑰加密這段特性碼,附加原始數據后面。
    驗正過程:
    前提:必須有可靠機制獲取到包制作者的公鑰;
    ① 使用制作者的公鑰解密加密的特征碼,能解密則意味著來源合法;
    ② 使用與制作者同樣的意向加密算法提取原始數據的特征碼,并與解密出來的特征作比對,相同,則意味著完整性沒問題;

rpm --import:導入公鑰,導入后即可自動檢查
rpm -qa gpg-pubkey:查看所有已導入的公鑰
rpm -qi gpg-pubkey-NAME:顯示密鑰的詳細信息
rpm --checksig package:手動檢測包的合法性及完整性
rpm -K package:手動檢測包的合法性及完整性
    rpm -K --nodigest:不檢查包完整性
    rpm -K --nosignature:不檢查來源合法性
rpm -V package_name
    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
    某屬性無變化,顯示為.

7、數據庫管理:

    路徑:/var/lib/rpm,保存所有包相關信息,如:包名、包組、依賴關系、公鑰文件等

    rpm –initdb:初始化,如果沒有庫,會新建一個,如果有則不重建

    rpm –rebuiddb:重建

    

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

(0)
秦
上一篇 2015-05-13
下一篇 2015-05-13

相關推薦

  • 計算機;GPL等開源協議;Linux 哲學思想的煉成;MBR & GPT—fazion in magedu 20.July

    入門Linux的基礎知識 fazionlan blog in 178Linux.July 22nd. 第一臺計算機 1946第一臺計算機ENIAC(electronic numerical integrator and calculator)在美國濱州大學誕生,是美國奧伯丁武器試驗場為了滿足計算彈道而研制的 馮諾依曼體系結構:1946年數學家提出運算器、控制…

    Linux干貨 2016-07-29
  • 8-12 文件查找

    8-12 文件查找   8–1該節主要分為三部分,分別是作業,自己對德·摩根定律的了解及find常用選項   一、作業 1、查找/var目錄下屬主為root,且屬組為mail的所有文件 2、查找/var目錄下不屬于root、lp、gdm的所有文件 3、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是pos…

    Linux干貨 2016-08-15
  • Linux文件系統

    Linux文件系統 根目錄下的文件 / ├── bin 存放用戶使用的基本命令(可執行程序,二進制文件) 不能單獨分區的 ├── boot 跟內核有關的文件 grub 內核和BootLoader ├── cgroup 用來資源限制資源隔離 docker 容器化 ├── dev device 設備文件 b block device 塊設備 硬盤或者CD-rom…

    Linux干貨 2017-04-01
  • Linux硬鏈接、軟鏈接的介紹及兩者的區別

    一、硬鏈接 鏈接數就是名字的數量: ln(link) 硬鏈接,多個相同的inode文件(同分區),多個硬鏈接文件的存在在硬盤上只占用一個文件的容量 創建的硬鏈接是平等的,inode相同,刪除某一個互不影響,其他文件仍然可以使用 硬鏈接的本質:給一個文件創建多個名字   創建多個硬鏈接,觀察鏈接數的變化(+1),鏈接數是幾就是有幾個文件名 同一分區中…

    Linux干貨 2016-08-04
  • 博客作業網絡班22期+第5周(9.5-9.11)

    1、顯示當前系統上root、fedora或user1用戶的默認shell [root@MyCloudServer wjb]# egrep '^(root|fedora|user1)\>' /etc/passwd | cut -d: -f7/bin/bash 2、找出/etc/rc.d/init.d/functions文件中某單詞后面…

    Linux干貨 2016-09-15
  • Linux磁盤管理(分區,格式化,文件系統、VFS、mount、fstab)

    Linux系統中數據存儲在磁盤中,磁盤在馮諾依曼體系中屬于輸入輸出外部存儲對象,保存著重要的企業數據,對Linux系統中的磁盤管理尤其需要熟練掌握,由于企業目前使用的主流存儲設備還是硬盤,所以這里只敘述硬盤的組織結構; 1.分區:    (1)低級格式化:       硬盤在出廠的時候廠家會做一次分區格式化,…

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