rpm包管理

linux程序包管理

RPM ==================================================================

#ldd 查看二進制程序調用的動態鏈接庫

#ldconfig  -p  顯示本機已緩存的所有可用庫文件

    dll: Dynamic link library

    so : Shared Object

    API: Application Program Interface 應用編程接口

    ABI: Application Binary INterface 應用二進制接口

    Unix-like   ELF

    C/C++程序格式:

    源代碼:文本格式的程序代碼

        編譯開發環境:編譯器,頭文件,開發庫

    二進制格式:文本格式的程序代碼-編譯器-二進制格式(二進制程序,庫文件,配置文件)

    java/pathon程序格式:

    源代碼:編異成能夠在其虛擬機(jvm/pvm)運行的格式

        開發環境:編譯器,開發庫

    項目構建工具:

    c/c++:make

    java:maven

  程序包管理器:

源代碼 – 目標二進制格式 – 組織成幾個包文件;完成安裝、升級、查詢、卸載、效驗等操作

     debian:dpt,dpkg  ".deb"

     redhat:rpm        ".rpm"

     S.u.S.E:rpm   ".rpm"

          rpm:Redhat Package Manage

            RPM Package Manage

  rpm包命名格式:


     name-VERSION-rpmrelease.arch.gz archetecture 架構

     VERSION:major.minor.release

    

     yum-3.2.29-73.el6.centos.noarch.rpm

     yum-3.2.29版本 73次修改 Redhat Enterprise 6

  changelog

  拆包:選擇完整程序包中需要的功能

  前端工具:自動解決依賴關系

     yum: rhel

     apt-get(apt-cache): deb

     zypper: suse

     dnf: fedora 22+

 程序包管理器:

    功能:將編譯好的應用程序的各組成文件打包成一個或幾個程序包文件,

    從而方便的實現程序包的安裝,卸載,升級等操作

      debian:dpt,dpkg   ".deb"

     redhat:rpm       ".rpm"

     S.u.S.E:rpm      ".rpm"

    /var/lib/rpm/    rpm數據庫

 獲取程序包途徑:

    1.系統發行版的光盤或官方的文件服務器(或鏡像站點)

          mirrors.aliyun.com

          mirrors.sohu.com

          mirrors.163.com

     2.項目的官方站點

     3.第三方組織

          pkgs.org

          rpmfind.net

          rpm.pbone.net

     4.自己制作

 檢查其合法性:

    來源合法性

    程序包完整性

#rpm [OPTIONS] [PACKAGE_FILE]

     -i 安裝  –install

     rpm -ivh packagefile  -v 顯示詳細信息  -h  以#號表示進度

    

    

     -U 升級或安裝  –update

     -F  僅可升級

         –oldpackage 降級

         –force 強制升級

    

     -e  卸載  –erase    rpm -e http(包名)

         –allmatchs 刪除指定名稱軟件包所有版本

         –nodeps 忽略依賴關系

         –test 測試卸載

    

     -q  查詢  –query

      [select-options]

     -a –all 查詢所有已裝包;可配合grep

]#rpm -qa | grep httpd

    -f FILE 查詢指定文件由哪個軟件包安裝生成

]#rpm -qf /etc/named

     -p –package PACKAGE_FILE  對未安裝的程序包執行查詢 -qpc -qpl -qpi

          –whatprovides CAPABILITY  查詢指定能力由哪個程序提供

          –whatrequires CAPABILITY  查詢指定能力被哪個包依賴

    

      [query-options]

     –changelog 查詢rpm包的changelog

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

     -R –requires查詢指定程序包的依賴關系(CAPABILITY)

     -l –list 列出程序安裝生成的所有文件

     -qpl 查詢未安裝的程序包安裝后會生成哪些文件

     -i –info 程序包相關信息

     -c –configfiles 查詢指定程序提供的配置文件

     -d –docfiles 查詢指定程序包提供的幫助文檔

     –scripts 查看程序包自帶的腳本

    

     -V  校驗  –verify   可指定檢查哪些

]#rpm -V bash
]#S.5....T

      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

 通用選項:

     –nodeps  忽略依賴關系

     –replacepkgd 重新安裝     刪除某個配置文件后可重新安裝

     –replacefiles  替換不同程序包中可能出現的相同的文件

     –test  測試安裝  僅測試能否安裝  不真正安裝

     –nosignature 不檢查包簽名信息,不檢查來源合法性

     –nodigest 不檢查包完整性

數據庫重建:     默認位置:/var/lib/rpm

     rpmdb

     –initdb 初始化數據庫。當前無數據庫可初始化創建新的數據庫;如果存在則不作操作

     –rebuilddb 重新創建數據庫

     –dbpath 指定創建數據庫文件存放路徑

    

     –builddb,initdb  數據庫維護

  包來源和發行、完整性驗證:

 包制作者:

     提取程序包的特征碼

     使用自己的私鑰對特征碼加密(簽名)

     將簽名加入包放到互聯網

 使用者:

    使用公鑰驗證包來源合法性、完整性

 驗證:

    安裝時自動驗證

    手動驗證:rpm -K PACHAGE-FILE

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

(0)
JasperJasper
上一篇 2016-08-18 10:10
下一篇 2016-08-18 10:10

相關推薦

  • 二叉樹迭代器算法

    二叉樹(Binary Tree)的前序、中序和后續遍歷是算法和數據結構中的基本問題,基于遞歸的二叉樹遍歷算法更是遞歸的經典應用。 假設二叉樹結點定義如下: // C++ struct Node {     int value;     No…

    Linux干貨 2016-08-15
  • lvs 基本概念

    LVS(linux virtual machine) 的簡寫,是一個虛擬的服務器集群系統,主要用于4層負載均衡。 宗旨: 使用集群技術和Linux操作系統實現一個高性能、高可用的服務器. 很好的可伸縮性(Scalability) 很好的可靠性(Reliability),應該還是高可用吧 很好的可管理性(Manageability…

    Linux干貨 2015-09-14
  • 文本處理、正則表達式、cut、grep、egrep、fgrep

    文本處理、正則表達式、cut、grep、egrep、fgrep Linux中文本處理工具最常用的就是文本處理三劍客grep、sed、awk再配合正則表達式,可以實現足夠多的文本處理功能。工具的強大之處是因為使用它的人,如何才能發揮文本處理工具的作用呢?答案就是正則表達式,其實正則表達式,只是一種思想,一種表示方法,只要我們使用的工具支持表示這種思想那么這個工…

    Linux干貨 2016-08-07
  • 復習-RAID原理詳解

    一、RAID RAID:冗余磁盤陣列,將多個磁盤不同的方式組成陣列,作為單一磁盤使用;通過RAID,大幅提高了I/O能力、容錯性。 二、RAID級別 不同的磁盤陣列組成模式,稱為磁盤級別,不同的RAID級別可提供不同的I/O能力提升、磁盤可用率和容錯性 1、RAID 0 條帶卷 strip  用兩塊和兩塊以上磁盤組成,RAID控制器將數據平均切割成…

    Linux干貨 2016-07-04
  • Linux系統的軟硬連接的區別

    Linux系統的軟硬連接的區別 M21-陸東貴 CentOS 7.2 Linux鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬鏈接。 一、  硬鏈接: 硬連接是指通過索引節點來進行連接Linux鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接…

    Linux干貨 2016-10-19
  • grep、find練習

    1.顯示當前系統上root,fedora或user1用戶的默認shell [root@study ~]# cat /etc/passwd|grep -E "^(root|fedora|user1)"|cut -d: -f7 /bin/bash /bin/bash /bi…

    Linux干貨 2016-11-27
欧美性久久久久