軟件包管理(rpm篇)

軟件包管理(rpm篇)
靜態和動態鏈接
    鏈接主要作用是把各個模塊之間相互引用的部分處理好,使得各個模塊之間能夠正確地銜接,分為靜態鏈接和動態鏈接
    靜態鏈接
        把程序對應的依賴庫復制一份到包
        libxxx.a
        嵌入程序包
        升級難,需重新編譯
        占用較多空間,遷移容易
    動態鏈接
        只把依賴加做一個動態鏈接
        libxxx.so
        “連接指向”
        占用較少空間,升級方便
包命名
源代碼:name-VERSION.tar.gz|bz2|xz
         VERSION: major.minor.release
    rpm包命名方式:
          name-VERSION-release.arch.rpm
   例:bash-4.2.46-19.el7.x86_64.rpm
       VERSION: major.minor.release
       release:release.OS
       常見的arch:
        x86: i386, i486, i586, i686
        x86_64: x64, x86_64, amd64powerpc: ppc
        跟平臺無關:noarch
包:分類和拆包
    Application-VERSION-ARCH.rpm: 主包
    Application-devel-VERSION-ARCH.rpm開發子包
    Application-utils-VERSION-ARHC.rpm其它子包
    Application-libs-VERSION-ARHC.rpm其它子包
包之間:可能存在依賴關系,甚至循環依賴
解決依賴包管理工具:
    yum:rpm包管理器的前端工具
    apt-get:deb包管理器前端工具
    zypper: suse上的rpm前端管理工具
    dnf: Fedora 18+ rpm包管理器前端管理工具        
庫文件
    查看二進制程序所依賴的庫文件
ldd/PATH/TO/BINARY_FILE
    管理及查看本機裝載的庫文件
ldconfig
/sbin/ldconfig-p: 顯示本機已經緩存的所有可用庫文件名及文件路徑映射關系
配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/.conf
緩存文件:/etc/ld.so.cache
包管理器
    程序包管理器:
    功能:將編譯好的應用程序的各組成文件打包一個或幾個程序包文件,從而方便快捷地實現程序包的安裝、卸載、查詢、升級和校驗等管理操作
    1、包文件組成(每個包獨有)
    RPM包內的文件
    RPM的元數據,如名稱,版本,依賴性,描述等
    安裝或卸載時運行的腳本
    2、數據庫(公共):/var/lib/rpm
    程序包名稱及版本
    依賴關系
    功能說明
包安裝后生成的各文件路徑及校驗碼信息
    管理程序包的方式:
    使用包管理器:rpm
    使用前端工具:yum, dnf
rpm包管理
  CentOS系統上使用rpm命令管理程序包:
  安裝、卸載、升級、查詢、校驗、數據庫維護
安裝:
    rpm {-i|–install} [install-options] PACKAGE_FILE…
    -v: verbose
    -vv:
    -h: 以#顯示程序包管理執行進度
    rpm -ivhPACKAGE_FILE …
    rpm包安裝
   [install-options]
    –test: 測試安裝,但不真正執行安裝,即dry run模式
    –nodeps:忽略依賴關系
    –replacepkgs| replacefiles
    –nosignature: 不檢查來源合法性
    –nodigest:不檢查包完整性
    –noscripts:不執行程序包腳本
    %pre: 安裝前腳本;–nopre
    %post: 安裝后腳本;–nopost
    %preun: 卸載前腳本;–nopreun
    %postun: 卸載后腳本;–nopostun
rpm包升級
升級:
    rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
    rpm {-F|–freshen} [install-options] PACKAGE_FILE…
    upgrade:安裝有舊版程序包,則“升級”
                  如果不存在舊版程序包,則“安裝”
    freshen:安裝有舊版程序包,則“升級”
                 如果不存在舊版程序包,則不執行升級操作
    rpm -UvhPACKAGE_FILE …
    rpm -FvhPACKAGE_FILE …
    –oldpackage:降級
    –force: 強制安裝
包查詢
    rpm {-q|–query} [select-options] [query-options]
    [select-options]
     -a: 所有包
     -f: 查看指定的文件由哪個程序包安裝生成
     -p rpmfile:針對尚未安裝的程序包文件做查詢操作
     –whatprovidesCAPABILITY:查詢指定的CAPABILITY由哪個包所提供
     –whatrequiresCAPABILITY:查詢指定的CAPABILITY被哪個包所依賴
    rpm2cpio 包文件|cpio–itv預覽包內文件
    rpm2cpio 包文件|cpio–id “
.conf”釋放包內文件
    [query-options]
     –changelog:查詢rpm包的changelog
  c卸載后腳本;–nopostun: 查詢程序的配置文件
     -d: 查詢程序的文檔
     -i: information
     -l: 查看指定的程序包安裝后生成的所有文件
     –scripts:程序包自帶的腳本
     –provides: 列出指定程序包所提供的CAPABILITY
     -R: 查詢指定的程序包所依賴的CAPABILITY
  常用查詢用法:
     -qi PACKAGE, -qfFILE, -qc PACKAGE, -qlPACKAGE, -qdPACKAGE
     -qpiPACKAGE_FILE, -qplPACKAGE_FILE, …
     -qa
包卸載:
      rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …
包校驗
    rpm {-V|–verify} [select-options] [verify-options]
    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 mTimediffers
    P capabilities differ     
包來源合法性驗正及完整性驗正
    完整性驗正:SHA256
    來源合法性驗正:RSA
公鑰加密
    對稱加密:加密、解密使用同一密鑰
    非對稱加密:密鑰是成對兒的
    public key: 公鑰,公開所有人
    secret key: 私鑰, 不能公開
導入所需要公鑰
    rpm -K|checksigrpmfile檢查包的完整性和簽名
    rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7
    rpm -qa“gpg-pubkey*”
    rpm數據庫
數據庫重建:
    /var/lib/rpm
    rpm {–initdb|–rebuilddb}
    initdb: 初始化
    (如果事先不存在數據庫,則新建之否則,不執行任何操作)
    rebuilddb:重建已安裝的包頭的數據庫索引目錄

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

(0)
木
上一篇 2017-04-24
下一篇 2017-04-24

相關推薦

  • N25-第17周博客作業

    1、結合圖形描述LVS的工作原理;     LVS (Linux Virtual Server)是一種集群(Cluster)技術,采用IP負載均衡技術和基于內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。整個服務器集群的結…

    Linux干貨 2017-05-21
  • lvs

    1、什么是LVS LVS是Linux Virtual Server的簡寫,以為Linux虛擬服務器,是一個虛擬服務器集群,其具有很好的可伸縮性、可靠性、可管理性。LVS集群采用IP負載均衡技術和基于內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務…

    Linux干貨 2016-10-29
  • 正則表達式及文本處理

    正則表達式及文本處理 通俗點說,正則表達式就是處理字符串的方法,更加快速簡潔的代表各個要求參數,一般用于描述字符排列和匹配模式的一種語法規則,通過正則表達式一些特殊符號的輔助,讓用戶輕易的查找、刪除、替換一些字符串的處理程序。( ps:正則表達式和通配符不一樣,通配符代表的是bash接口的一個功能,但正則表達式是一種字符串處理的表達方式,兩者一定要分清楚。)…

    2017-06-11
  • wed服務基礎·httpd基礎配置詳解

    一、 Web Service基礎: service:計算機后臺提供的功能或計算機可以提供的某一種功能 Web Service本質:通過網絡調用其它網站的資源 根據來源的不同,分為兩種服務: 本地服務:使用同一臺機器提供的服務,不需要網絡 網絡服務:使用另一臺機器提供的服務,需要網絡   IANA互聯網地址授權機構(Internet Assigned…

    2017-06-09
  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who user1    tty1         2016-12-27&nb…

    Linux干貨 2016-12-28
  • N25-第四周

    一、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。     [root@localhost ~]# cp -r /etc/skel /home/tuser1      [root@localhost ~]# chmo…

    Linux干貨 2017-01-09

評論列表(1條)

  • renjin
    renjin 2017-04-28 12:05

    詳細的介紹了rpm包的安裝使用,內容總結的很詳細,也可以適當的加入一些實驗流程進來,注意一下排版

欧美性久久久久