Linux的軟件包管理(RPM)

軟件包管理(RPM)

 

本章節內容:

  軟件運行環境

  軟件包基礎

 Rpm包管理

 

一、軟件運行環境(了解APIABI

 API:應用程序開發接口,POSIX國際標準。

 程序源代碼–> 預處理–> 編譯–> 匯編–> 鏈接

 靜態編譯:.a

 共享編譯:.s

 ABI

    WindowsLinux不兼容

   庫級別的虛擬化:Linux: WINE  ;Windows: Cywin

二、包管理器:

二進制應用程序的組成部分:二進制文件、庫文件、配置文件、幫助文件

  程序包管理器:

debiandeb文件, dpkg包管理器

redhat: rpm文件, rpm包管理器

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

三、包:

1、包的命名:

源代碼:name-VERSION.tar.gz|bz2|xz

VERSION major.minor.release→如下面的5.6.22(主版本號、次版本號、release),RPM包的命名也是同樣的命名規則。

 blob.png

 blob.png

2、分類和拆包

 blob.png

3、包之間的依賴關系:

包之間:可能存在依賴關系,甚至循環依賴

 解決依賴包管理工具:

yumrpm包管理器的前端工具

apt-getdeb包管理器前端工具

zypper: suse上的rpm前端管理工具

dnf: Fedora 18+ rpm包管理器前端管理工具

4、庫文件:

查看二進制程序所依賴的庫文件:#ldd /PATH/TO/file

blob.png

管理及查看本機裝載的庫文件:

ldconfig

/sbin/ldconfig -p: 顯示本機已經緩存的所有可用庫文件名及文件路徑映射關系

blob.png

配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

緩存文件:/etc/ld.so.cache

blob.png

四、RPM包的安裝:

安裝:rpm {-i|–install} [install-options] PACKAGE_FILE…

-v: verbose

-vv:

-h: #顯示程序包管理執行進度

rpm -ivh filename

 blob.png

 

 使用選項:

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

 blob.png

   –nodeps:忽略依賴關系

 blob.png

  –replacepkgs(替換覆蓋包,相當于重裝)| replacefiles(覆蓋文件,即在兩個程序包安裝時,如果出現某個文件相同,則系統不讓安裝,此時可使用該選項)

 blob.png

  –nosignature: 不檢查來源合法性

  –nodigest:不檢查包完整性

  –noscipts:不執行程序包腳本片斷

%pre: 安裝前腳本;–nopre

%post: 安裝后腳本;–nopost

%preun: 卸載前腳本;–nopreun

%postun: 卸載后腳本;–nopostun

五、RPM包軟件升級、查詢:

   rpm -U安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則“安裝”

   rpm -F 安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則不執行升級操作

     –oldpackage:降級

     –force: 強行升級

   安裝格式:rpm –Uvh 或者rpm -Fvh  

六、系統RPM包的查詢、校驗:

1、格式:rpm {-q|–query} [select-options] [query-options]

blob.png

[select-options]選項:

-a: 所有包

blob.png

-f: 查看指定的文件由哪個程序包安裝生成

blob.png

-p rpmfile:針對尚未安裝的程序包文件做查詢操作;

blob.png

-p-l同時使用,可以查詢到該RPM在安裝后,會在磁盤上生成哪些文件?

blob.png

–whatprovides CAPABILITY:查詢指定的CAPABILITY(功能)由哪個包所提供

blob.png

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

blob.png

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

blob.png

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

blob.png

  [query-options]

  –changelog:查詢rpm包的changelog

  blob.png

  -c: 查詢程序的配置文件

  blob.png

  -d: 查詢程序的文檔

  blob.png

  -i: information 軟件的詳細信息

  blob.png

  -l: 查看指定的程序包安裝后生成的所有文件;

  blob.png

  –scripts:程序包自帶的腳本片斷

  blob.png

  -R: 查詢指定的程序包所依賴的CAPABILITY;

  blob.png

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

  blob.png

2、卸載:rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] filename …

   常用為:rpm -e 程序名

 

3、校驗:rpm {-V|–verify} [select-options] [verify-options];rpm -Va 將系統安裝的包全部校驗一次

file Size differs

Mode differs (includes permissions and file type)

5 digest (formerly MD5 sum) differs

D Device major/minor number mismatch

readLink(2) path mismatch

UUser ownership differs

G Group ownership differs

mTimediffers

capabilities differ

blob.png

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

完整性驗正: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 -qagpg-pubkey*

   下圖是RPM檢查合法性前以及破壞后的檢查:

   blob.png

   刪除導入的公鑰:

  blob.png

七、RPM的數據庫:

 blob.png

數據庫重建:/var/lib/rpm

  rpm {–initdb|–rebuilddb}

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

rebuilddb:重建;無論當前存在與否,直接重新創建數據庫(此操作需慎重,重建后將會查詢不到重建前所安裝的RPM包情況。)


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

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

相關推薦

  • Yacc 與 Lex 快速入門(詞法分析和語法分析)

    Lex 代表 Lexical Analyzar。Yacc 代表 Yet Another Compiler Compiler。 讓我們從 Lex 開始吧。 Lex Lex 是一種生成掃描器的工具。掃描器是一種識別文本中的詞匯模式的程序。 這些詞匯模式(或者常規表達式)在一種特殊的句子結構中定義,這個我們一會兒就要討論。 一種匹配的常規表達式可能會包含相關的動作…

    Linux干貨 2015-06-08
  • Linux基礎知識——文件查找

    Linux系統的核心思想之一就是一切皆文件,可想而知你要靠記憶去查找一個文件該是多么費勁;今天我們介紹幾個文件查找命令:whereis,locate,find whereis locate the binary, source, and manual page files for…

    Linux干貨 2016-10-11
  • 磁盤分區管理與文件系統的創建

    磁盤分區管理與文件系統的創建   不光是linux文件系統,所有的大結構,多數據湊到一塊的時候,單一的管理是沒有能力處理這樣龐大規模的存在的。所謂“君王不下縣”也就是這個道理。要系統的,規范的管理一個國家,存在著省、市這樣的層級結構。linux系統也是這樣,將整個系統劃分為若干個分區,實現不同功能,不同層級的規范管理,這就是創建磁盤分區的意義。既然…

    Linux干貨 2016-09-01
  • Linux 作業

    1.       描述計算機的組成及其功能。 答:CPU、I/O、存儲器; CPU:由運算器和控制器組成;運算器主要功能是對數據進行各種運算,除了進行常規計算外還能進行邏輯運算以及數據的比較、移位等操作??刂破魇钦麄€計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步…

    Linux干貨 2016-10-29
  • mariadb數據庫的主從復制

    mariadb的主從復制

    2018-02-27
  • 自制linux和內核編譯

    自制linux和內核編譯 1、分區并創建文件系統 fdisk /dev/sdb分兩個必要的分區/dev/sdb1對應/boot /dev/sdb2對應根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2、掛載boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3、安裝grub grub-i…

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