日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 软件包管理器的目的是什么,Linux软件包的管理--RPM包管理器

發布時間:2023/12/10 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 软件包管理器的目的是什么,Linux软件包的管理--RPM包管理器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Linux中如何安裝、升級、卸載軟件,是我們日常運維中重要的組成部分。接下來一CentOS6系統為例,講解如何使用 RPM 包管理器,yum包管理器以及源碼的方式來管理我們的軟件包。

一、相關的背景知識

許多程序的源程序,例如使用C語言編寫的源代碼,要經過預處理,編譯,匯編,鏈接才能生成真正的可執行程序(二進制),才可以使用。為了簡化這樣的過程,就出現了所謂的包管理器。它出現的目的是:將編譯好的程序打包成一個文件或有限的幾個文件,可用于實現安裝、卸載、升級、查詢等功能。

一個包管理器應該具有如下組成部分:

1、數據庫:這里面包括了 軟件名、版本、依賴關系、功能描述、安裝生成的各文件的路徑、和校驗軟件來源和數據完整性的校驗碼。

2、程序的組成清單:這里最主要的是軟件在安裝、卸載前后所運行的腳本。

安裝程序的時候為什么會出現依賴性?

由于Linux的程序或者說是工具都是由其他小程序或小工具組成,這是Linux的特性之一。正是由于這個特性決定了我們在安裝一個軟件包的時候,可能會依賴其他程序的庫文件和頭文件。#?在Linux中使用?ldd?命令來查看一個二進制程序(可執行文件)遵循EIF格式

[root@server?~]#?ldd?`which?pwd`

linux-vdso.so.1?=>??(0x00007fff62df0000)???#?指程序的起始入口

libc.so.6?=>?/lib64/libc.so.6?(0x0000003508400000)

/lib64/ld-linux-x86-64.so.2?(0x0000003507c00000)

程序包一般都包括:二進制程序,庫文件,配置文件,幫助文件這些信息。

二、RPM包管理器

在CentOS中的包管理器是RPM(RPM is Package Manager),具有上面包管理的組成和功能。

1、RPM包命名格式

所有的RPM包文件都是以.rpm結尾的。具體的命名格式:

name-version-relase.arch.rpm字段含義

name程序名

version程序源碼編號。分別代表主版本號,副版本號,發行號

releaserpm自身的發行號,與程序源碼的發行號無關,僅用于標識對 rpm包不同制作的修訂;同時,release還包含此包適用的OS

arch適用于的硬件平臺,主要有:i386, i486, i586, i686,x86_64,powerpc,noarch(依賴于虛擬機)

例如:bash-4.2.3-3.centos6.x86_64.rpm

2、rpm包的合法性驗正

包制作者制作完成之后會附加數字簽名于包上;驗證主要包括?來源合法性、包的完整性。

具體原理:

包的制作者使用單向加密提取原始數據的特征碼,而后使用自己的私鑰加密這段特性碼,附加原始數據后面。通過數字證書的方式驗證來源合法性,通過提取驗證碼是否正確來判斷完整性問題。

驗正過程:

前提:必須有可靠機制獲取到包制作者的公鑰;

1、使用制作者的公鑰解密加密的特征碼,能解密則意味著來源合法;

2、使用與制作者同樣的意向加密算法提取原始數據的特征碼,并與解密出來的特征作比對,相同,則意味著完整性沒問題;

3、RPM分包管理

試想一下,例如:一個程序總共有50個小功能,難道在打包的時候都打包到一個文件中去嗎? 如果是這樣,我們僅用到其中的5,6個功能,卻安裝了50個包,造成了空間浪費。所以,RPM包提供了分包的功能,從一定程度上解決了這個問題。

一般是有一個主包,提供基本功能;其他功能分別打包成不同的包文件來使用。

三、RPM包管理器的使用

RPM包管理器都是使用rpm命令(前端工具)來實現的,下面從不同角度介紹此命令的常用選項。

1、安裝程序包

以安裝 lftp 來示例。

當然在安裝過程中沒有出現依賴關系,如果出現依賴關系,則需要安裝依賴軟件包。

--test:此時軟件是否可以安裝

重新安裝:--replacepkgs?如果原有配置文件作了修改,很有可能不執行替換,而是將應該安裝生成的配置文件重命名為 .rpmnew

如果依賴于其它包:1、解決依賴關系;2、忽略依賴關系能安裝上,但有可能無法運行;使用--nodeps 參數。rpm -ivh --nodeps 軟件包文件名

2、卸載程序包

常用用法:rpm -e package_name

如果被其它包所依賴:1、將依賴于此包的所有包一并卸載;2、忽略依賴關系能卸載,但依賴于此包程序包可能會運行不正常,使用?--nodeps 參數。

如果包的配置文件安裝后曾被改動過,卸載時,此文件將不會卸載,而是被重命名并保留

3、升級軟件包

用法:rpm -Uvh | -Fvh /path/to/package_file

1、升級或安裝

-Uvh:如果軟件包不存在則安裝,如果存在則升級。

2、純升級

-Fvh:如果軟件包不存在則什么都不干,如果存在則升級。

如果有時候升級有問題,則可以使用?--force: 強制升級。

注意:不應該對內核執行升級操作,而是安裝。因為系統允許多內核并存,所以萬一升級失敗,還可保證系統不出現問題。

4、查詢功能

rpm的查詢功能可能是我們在軟件包管理方面使用最多的。

1)對已安裝的軟件

-q:查詢軟件包是否安裝

-qa:查詢系統已安裝的包

-qi:查詢包的描述信息

-ql:列出軟件包所安裝的所有文件

-qc:列出軟件包所安裝的配置文件

-qd:列出軟件包所安裝的幫助文檔

-q --scripts:查詢軟件安裝時所執行的腳本

-qf:查詢某文件是由哪個包安裝生成的

2)對未安裝的軟件

查詢功能和已安裝的一樣,只是加入-p選項。

-pq -pqi -pql -pqd -pqc 等參數,同上述功能。

5、校驗

用于檢查包安裝生成的文件屬性是否發生變化

rpm -V package_name[root@server?Packages]#?rpm?-V?lftp

S.5....T.??c?/etc/lftp.conf

#?常見屬性如下:如果某屬性無變化,則顯示為.

#?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

6、rpm包來源合法性及完整性檢驗:

前提:在當前系統上導入包的制作者的公鑰

導入:rpm --import /path/to/key_file

# rpm -qa gpg-pubkey*

顯示所有已經導入的gpg格式的公鑰

# rpm -qi gpg-pubkey-NAME

顯示公鑰的詳細信息

檢查包:安裝過程中會自動執行

手動檢查:#?完整性和合法性檢查

[root@server?Packages]#?rpm?-K?lftp-4.0.9-1.el6.x86_64.rpm

lftp-4.0.9-1.el6.x86_64.rpm:?rsa?sha1?(md5)?pgp?md5?OK

#?不檢查來源合法性:

[root@server?Packages]#?rpm?-K?--nosignature?lftp-4.0.9-1.el6.x86_64.rpm

lftp-4.0.9-1.el6.x86_64.rpm:?sha1?md5?OK

#?不檢查包完整性

[root@server?Packages]#?rpm?-K?--nodigest?lftp-4.0.9-1.el6.x86_64.rpm

lftp-4.0.9-1.el6.x86_64.rpm:?rsa?(md5)?pgp?OK

7、數據庫重建

數據庫目錄:/var/lib/rpm

rpm --initdb:初始化,如果事先沒有庫,會新建一個;如果有,則不新建;

rpm --rebuilddb: 直接重建,覆蓋原有的數據庫

總結:個人感覺RPM在安裝軟件包是使用不多,一般使用查詢功能居多。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Linux 软件包管理器的目的是什么,Linux软件包的管理--RPM包管理器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。