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 20:46
下一篇 2016-08-21 20:46

相關推薦

  • 第四周

    第四周 1.復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。 [root@node1 ~]# cp -r /etc/skel/ /home/tuser1 [root@node1 ~]# chmod -R go= /home/tuser1 [root@node1 ~]# ls -…

    Linux干貨 2017-07-26
  • Linux小工具之cheat

    隨著linux學習的深入,接觸到的命令越來越多,此時,考驗腦力的時候就到了,除非你是”腦王”,否則面對多如牛毛的linux命令,真的會崩潰!linux前輩們貌似也被同樣的問題所困擾,所以,他們發明了cheat。cheat是在GNU通用公共許可證下,為Linux命令行用戶發行的交互式備忘單應用程序。它提供顯示Linux命令使用案例,包括該命令所有的選項和簡短但…

    2017-08-10
  • 用戶 組

    用戶 組    在linux系統中,用戶管理是基于用戶名和密碼的方式進行資源的分配,linux上用戶Username/UID分為以下類別:    管理員: root,0    普通用戶: 1-65535 普通用戶分為:系統用戶和登錄用戶兩種 系統用戶:1-499(cen…

    系統運維 2016-08-04
  • N26 第一周博客作業

    1、描述計算機的組成及其功能。 現代的計算機大多遵循的是 馮·諾依曼 計算機體系,主要有如下幾個組成部分: 運算器      :也被稱為算術邏輯單元(ALU),可視為計算機的大腦,它主要進行算術運算和邏輯運算; 邏輯控制器  :則負責將計算機的其他部件聯系起來,其功能是從存儲設備和輸入輸出設備中讀取指令和數據,對指令進…

    Linux干貨 2017-01-08
  • 實驗:配置靜態路由1

    實驗:配置靜態路由1 IP地址規劃如下: 注意,環境準備: 1、MAC地址不要有沖突,如果是復制的虛擬機,對于centos6需刪除網卡定義文件rm -f /etc/udev/rules.d/70-persistent-net.rules 2、清空防火墻iptables -F(查看:iptables -vnL) 3、啟用IP轉發功能:echo 1 > /…

    2017-03-26
  • Linux系統下的翻譯神器——Goldendict

    Linux系統下的翻譯神器——Goldendict 學習Linux時明顯感受到學習英文的重要性。絕大多數Linux的發行版英文版的功能要遠強于中文。因此一款好的翻譯軟件是了解熟悉Linux系統的必需品。在Windows系統下有各種好用的詞典程序,包括有道詞典、bing詞典、金山詞霸等等,而這些軟件都不能在linux下使用,即使能夠使用也只是測試版,功能太少?!?/p>

    Linux干貨 2017-04-24
欧美性久久久久