欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

軟件包管理之rpm-創(chuàng)新互聯(lián)

一、前言

在沒(méi)有軟件包管理器前,用戶都是通過(guò)源代碼的方式來(lái)安裝軟件。但是我們很容易發(fā)現(xiàn),在每次安裝軟件時(shí)都必須對(duì)操作系統(tǒng)的境、編譯的參數(shù)進(jìn)行對(duì)應(yīng)的編譯,并且操作過(guò)程很是復(fù)雜,這對(duì)于不熟悉操作系統(tǒng)的朋友來(lái)說(shuō)真心困難,那么有沒(méi)有一款軟件能讓用戶能很簡(jiǎn)單的安裝所需的軟件呢?

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、濂溪網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為濂溪等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

隨著自由軟件蓬勃發(fā)展,Linux系統(tǒng)的飛快發(fā)展,很多軟件開(kāi)發(fā)者、企業(yè)和社區(qū)將這些軟件開(kāi)始通過(guò)收集、整理、編譯制作成distributions發(fā)布到常用的Linux操作系統(tǒng)上,但是后來(lái)發(fā)現(xiàn),這樣做在日后軟件更新、系統(tǒng)更新上面都需要做很多操作。為了解決這個(gè)問(wèn)題,一些社區(qū)和企業(yè)開(kāi)始思考關(guān)于Linux的軟件管理方式。

通過(guò)社區(qū)與企業(yè)的共同努力,Linux開(kāi)發(fā)商將固定的硬件平臺(tái)和操作系統(tǒng)需要安裝或升級(jí)的軟件編譯好,并且將這些軟件通過(guò)特定的打包方式將軟件打包成一個(gè)特殊格式的文件,這些軟件的文件含有能檢測(cè)操作系統(tǒng)環(huán)境和軟件依賴性的腳本,并提供記載該軟件提供的所有文件信息等,最后將這個(gè)軟件發(fā)布出去供用戶使用。那么用戶得到這個(gè)軟件包,通過(guò)特定的命令,就能執(zhí)行檢測(cè)系統(tǒng)環(huán)境,根據(jù)環(huán)境所需的要求,對(duì)軟件進(jìn)行安裝。這就是軟件管理器的誕生。

二、目前常見(jiàn)Linux軟件安裝方式有2種

2.1、dpkg

這個(gè)軟件安裝方法是通過(guò)Debian Linux社區(qū)開(kāi)發(fā)出來(lái)的,通過(guò)dpkg機(jī)制,Debian所提供的軟件就能通過(guò)很簡(jiǎn)單的方法安裝軟件,并且能記錄安裝后的軟件信息。只有是Debian的Linux distributions大多數(shù)都是使用這個(gè)方法管理軟件。例如B2D、Ubuntu

2.2、RPM

這個(gè)軟件安裝方法是由Red Hat公司開(kāi)發(fā)出來(lái)的,由于非常的簡(jiǎn)單實(shí)用,很多的distributions都使用這個(gè)機(jī)制來(lái)安裝和管理軟件。例如:CentOS、SuSe等

三、程序包管理器

功能:將編譯好的程序打包成一個(gè)文件或有限的幾個(gè)文件,可以用于實(shí)現(xiàn)安裝、卸載、升級(jí)、查詢等功能

包含:

1、數(shù)據(jù)庫(kù)

程序名及版本

依賴關(guān)系: X –> Y,Z

功能性說(shuō)明(rpm -qi bash)

安裝生成的各文件路徑及校驗(yàn)碼

2、程序的組成清單

文件清單

安裝卸載時(shí)運(yùn)行的腳本

四、RPM介紹

RPM(RedHat Package Manager),RPM通過(guò)以一個(gè)數(shù)據(jù)庫(kù)記錄的方式來(lái)將你所需的軟件安裝到你的Linux系統(tǒng)上的。在你所安裝的軟件前先通過(guò)編譯完成,打包成RPM格式的文件,數(shù)據(jù)庫(kù)記錄的方式搜索對(duì)應(yīng)需要具備的依賴關(guān)系的軟件,那么當(dāng)你在安裝該軟件的時(shí)候,RPM會(huì)查看你系統(tǒng)環(huán)境和依賴性關(guān)系來(lái)判定你是否能安裝此軟件。若能滿足,則允許安裝。否則將不給予安裝。并且在安裝的時(shí)候?qū)⒃撥浖男畔?xiě)入RPM的數(shù)據(jù)庫(kù)中,以便日后查詢、檢驗(yàn)和升級(jí)。

五、RPM包的命名格式

格式:

name–version–release.arch.rpm

軟件包管理之rpm

例如:

bash-4.2.3-3.centos5.x86_64.rpm 
#表示bash-4.2.3,第三次發(fā)行,支持CentOS5系統(tǒng),支持硬件平臺(tái)x86_64位系統(tǒng)

獲取rpm包的途徑:

1、發(fā)行的光盤(pán)或站點(diǎn)服務(wù)器

鏡像:

  • http://mirrors.163.com

  • http://mirrors.sohu.com

  • http://mirros.aliyun.com

2、項(xiàng)目的官網(wǎng)

  • 源代碼

  • rpm包

3、很多第三方機(jī)構(gòu)或個(gè)人制作并公開(kāi)發(fā)布許多的rpm包

  • http://rpmfind.net

  • http://rpm.pbone.net/

六、打包工具的分包機(jī)制

假設(shè)一個(gè)程序有20個(gè)功能:常用功能有8個(gè),特殊功能A:3個(gè),特殊功能B:6個(gè),二次開(kāi)發(fā)相關(guān)功能:3個(gè)。那如果用戶只需要常用功能,可是必須要全部安裝,那么就會(huì)很占用空間,而且其他功能根本不會(huì)使用,這時(shí)就會(huì)分包機(jī)制了。

分包機(jī)制:

核心包(主包) + 子包(分包)組成

核心包:命令與源程序一致

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

子包:(安裝子包前必須安裝核心包)

例如: bash-a-4.2.3-3.centos7.x86_64.rpm

bash-devel-4.2.3-3.centos7.x86_64.rpm   #devel就表示開(kāi)發(fā)功能

七、RPM包的使用

7.1、安裝(組合選項(xiàng):-ivh)

rpm [option] Package_file

-i:install安裝操作

-v:安裝時(shí)顯示詳細(xì)信息

-vv:安裝時(shí)顯示更詳細(xì)信息

-h:hash碼,在安裝過(guò)程中使用#號(hào)來(lái)顯示安裝進(jìn)度

–-test:僅作測(cè)試,不做安裝操作

-–nodeps:忽略依賴關(guān)系,強(qiáng)制安裝如果某包依賴于其他包,要么解決所有的依賴關(guān)系,要么忽略依賴關(guān)系,強(qiáng)制安裝。但是如果強(qiáng)制安裝完成后,軟件未必能正常使用。

–-replacepkgs:重新安裝程序包
備注:如果原有配置文件作了修改,很有可能不執(zhí)行替換文件,而是將新生成的配置文件重命名后綴為 .rpmnew

例子:

#測(cè)試安裝RPM包
[root@localhost mnt]# mount /dev/cdrom /mnt                         #掛載光盤(pán)鏡像到/mnt目錄下
mount: block device /dev/sr0 is write-protected, mounting read-only 
[root@localhost mnt]# cd /mnt/Packages/                             #進(jìn)入光盤(pán)目錄
[root@localhost Packages]# rpm -ivh zsh-4.3.10-7.el6.x86_64.rpm     #安裝zsh-4.3.10-7.el6.x86_64.rpm包
warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 
#這里的是提示密鑰,無(wú)法校驗(yàn)包的合法性
Preparing...                ########################################### [100%] 
#使用#代表安裝進(jìn)度,一個(gè)#代表2%
   1:zsh                    ########################################### [100%]
#僅作測(cè)試,不做安裝
[root@localhost Packages]# rpm -q zsh    
package zsh is not installed
[root@localhost Packages]# rpm --test -ivh zsh-4.3.10-7.el6.x86_64.rpm#僅作測(cè)試安裝,實(shí)際上未安裝
warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
[root@localhost Packages]# rpm -q zsh                                                              
package zsh is not installed

7.2、卸載

rpm [option] Package_name

     -e:erase 刪除

卸載的時(shí)候也會(huì)存在依賴關(guān)系的,如果被其他包所依賴:

  • 1、將依賴于此包的所有包一并卸載

  • 2、忽略依賴關(guān)系能卸載,但依賴于此包程序包可能會(huì)運(yùn)行不正常

    –nodeps 忽略依賴關(guān)系

練習(xí):

[root@localhost Packages]# rpm -q zsh  #查看軟件是否安裝,顯示出包的信息證明已經(jīng)安裝
zsh-4.3.10-7.el6.x86_64
[root@localhost Packages]# rpm -e zsh  #卸載zsh軟件
[root@localhost Packages]# rpm -q zsh
package zsh is not installed           #提示該軟件未安裝

注意:如果包的配置文件安裝后曾被改動(dòng)過(guò),卸載時(shí),此文件將不會(huì)卸載,而是重命名并保存,會(huì)出現(xiàn)下面的字段

            warning: /etc/zshrc saved as /etc/zshrc.rpmsave

例如:

[root@localhost Packages]# rpm -e zsh
warning: /etc/zshrc saved as /etc/zshrc.rpmsave
[root@localhost Packages]# ls /etc/ | grep "zsh*"
zshrc.rpmsave

7.3、升級(jí)(一般而言是新版本取代老版本)

rpm [option] Package_file

(1)、升級(jí)或安裝 (如果有老版本就升級(jí),如果沒(méi)有就安裝)

   組合 -Uvh

(2)、直接升級(jí) (如果有老版本就安裝新版本)

   組合 -Fvh

升級(jí)的時(shí)候也可能會(huì)出現(xiàn)版本沖突等問(wèn)題,所以如果想強(qiáng)制升級(jí)可以使用 --force

注意:不應(yīng)該對(duì)內(nèi)核執(zhí)行升級(jí)操作,而是安裝(因?yàn)長(zhǎng)inux系統(tǒng)允許多內(nèi)核并存)

7.4、查詢

(1)、查詢某包是否安裝

rpm -q package_name…..

(2)、查詢所有已經(jīng)安裝的包

rpm -qa           #a表示all

按條件過(guò)濾: rpm -qa | grep 'PATTERN'

(3)、查詢包的表述信息

rpm -qi package_name         (這里查詢僅查詢已安裝的包)

(4)、查詢某包生成了哪些文件

rpm -ql package_name

①查詢某包生成了哪些配置文件

rpm -qc package_name

②查詢某包生成了哪些幫助文件

rpm -qd package_name

③查詢程序包的相關(guān)腳本

rpm -q –scripts package_name

腳本有四類(lèi)

preinstall:安裝前腳本

postinstall:安裝后腳本

preuninstall:卸載前腳本

postuninstall:卸載后腳本

(5)、查詢某文件是由哪個(gè)包安裝生成的

rpm -qf /path/to/some_file

(6)查詢某包所提供的capabilities

rpm -q provides PACKAGE_NAME

(7)查詢某包所依賴的capabilities

rpm -q --requires PACKAGE_NAME

(8)、對(duì)尚未安裝的包執(zhí)行查詢

rpm [option] /path/to/package_file

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

-qpi:包的信息

-qpl:安裝以后會(huì)生成什么文件

-qpc:安裝以后會(huì)生成什么配置文件

-qpd:安裝以后會(huì)生成什么幫助文件

(9)查詢指定的CAPABILITY由哪個(gè)包所提供

rpm  -q --whatprovides CAPABILITY

(10)查詢指定的CAPABILITY被哪個(gè)包所依賴

rpm  -q --whatrequires CAPABILITY

(11)查詢某包制作時(shí)隨版本變化的changelog信息

rpm -q --changelog PACKAGE_NAME

(12)預(yù)覽包內(nèi)文件

rpm2cpio 包文件|cpio –itv   #需要制定包的路徑

(13)釋放包內(nèi)文件

rpm2cpio 包文件|cpio –id “ *.conf” #需要制定包的路徑

練習(xí):

[root@localhost Packages]# rpm -q zsh             #查看zsh軟件是否安裝                    
zsh-4.3.10-7.el6.x86_64
[root@localhost Packages]# rpm -qa | grep zsh     #查看zsh軟件是否安裝  
zsh-4.3.10-7.el6.x86_64
[root@localhost Packages]# rpm -qd zsh            #查詢zsh包生成了哪些幫助文件
[root@localhost Packages]# rpm -qpl httpd-2.2.15-29.el6.centos.x86_64.rpm  #在未安裝httpd時(shí),查詢安裝httpd會(huì)生成什么文件
[root@localhost Packages]# rpm -qf /etc/bashrc    #查詢bashrc這個(gè)文件是通過(guò)什么程序包安裝生成的
setup-2.8.14-20.el6_4.1.noarch

7.5、校驗(yàn)(用于檢查包裝后文件屬性是否發(fā)生變化)

rpm -V Package_name

    S file Size differs   大小

    M Mode differs (includes permissions and file type)   權(quán)限,文件類(lèi)型改變

    5 digest (formerly MD5 sum) differs    md5校驗(yàn)碼發(fā)生改變

    D Device major/minor number mismatch   如果是設(shè)備文件,則主設(shè)備號(hào)和次設(shè)備號(hào)發(fā)生改變

    L readLink(2) path mismatch     路徑發(fā)生改變

    U User ownership differs        屬主發(fā)生改變

    G Group ownership differs     屬組發(fā)生改變       

    T mTime differs        修改時(shí)間發(fā)生變化

    P caPabilities differ    能力發(fā)生變化(可以理解為功能)

某屬性無(wú)改變,則顯示為:

[root@localhost Packages]# tail -5 /etc/zshrc 
}
_src_etc_profile_d
unset -f _src_etc_profile_d
#test file                               #在 /etc/zshrc文件中最后一行添加了最后一段
[root@localhost Packages]# rpm -V zsh    #查詢?cè)搝sh軟件的配置文件是否更改
S.5....T.  c /etc/zshrc                  #看出文件大小,MD5校驗(yàn),修改時(shí)間都發(fā)生了變化

7.6、RPM數(shù)據(jù)庫(kù)重建

rpm 的數(shù)據(jù)庫(kù)目錄: /var/lib/rpm

rpm –-initdb:初始化如果事先沒(méi)有庫(kù),會(huì)新建一個(gè);如果有,則不覆蓋

rpm –-rebuilddb:重建直接重建,覆蓋原有的數(shù)據(jù)庫(kù)

7.7、校驗(yàn)RPM包來(lái)源合法性及完整性

前言:包制作者制作完成之后會(huì)附加數(shù)字簽名于包上;包的制作者使用單向加密提取原始數(shù)據(jù)的特征碼,而后使用自己的私鑰加密這段特征碼,附加原始數(shù)據(jù)后面。

驗(yàn)證包來(lái)源合法性和完整性的過(guò)程:

前提:必須有可靠機(jī)制獲取到包制作者的公鑰

  • 1、使用制作者的公鑰解密加密的特征碼,能解密則意味著來(lái)源合法

  • 2、使用與制作者同樣的一樣加密算法提取原始數(shù)據(jù)的特征碼,并與解密出來(lái)的特征碼比對(duì),相同,則意味著完整性沒(méi)問(wèn)題,所以我們必須在當(dāng)前系統(tǒng)上導(dǎo)入包的制作者的公鑰

導(dǎo)入公鑰:

 rpm –-import /path/to/key_file

小貼士:centos6的密鑰是在光盤(pán)里的“RPM-GPG-KEY-CentOS-6 ”文件

顯示所有已導(dǎo)入的gpg格式的公鑰:

rpm -qa gpg-pubkey*

顯示公鑰的詳細(xì)信息:

rpm -qi gpg-pubkey-name

檢查包安裝過(guò)程中會(huì)自動(dòng)執(zhí)行,若要手動(dòng)檢測(cè)請(qǐng)如下操作:

手動(dòng)檢查:

rpm -K /path/to/package_file

rpm –-checksig /path/to/package_file

不檢查包完整性:

rpm -K –-nodigest

不檢查來(lái)源合法性:

rpm -K –-nosignature

實(shí)驗(yàn):

誤刪除rpm修復(fù)方法:

1.進(jìn)入救援模式

2.創(chuàng)建掛載目錄:

mkdir /mnt/cdrom

3.掛載光盤(pán)鏡像:

mount -r /dev/sr0 /mnt/cdrom

4.進(jìn)入軟件包目錄:

cd /mnt/cdrom/Packages/

5.安裝rpm:

rpm -ivh rpm-4.11.3-17.el6.x86_64- --root=/mnt/sysp_w_picpath/

練習(xí):

[root@localhost Packages]# rpm -ivh zsh-4.3.10-7.el6.x86_64.rpm                              
#安裝時(shí)會(huì)提示你沒(méi)有公鑰,無(wú)法校驗(yàn)包的完整性與合法性
warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
[root@localhost Packages]# rpm --import /mnt/RPM-GPG-KEY-CentOS-6                            
#導(dǎo)入密鑰
[root@localhost Packages]# rpm -qa gpg-pubkey*                                               
#查看所以已導(dǎo)入的gpg格式的密鑰
gpg-pubkey-c105b9de-4e0fd3a3
[root@localhost Packages]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3                              
#查看密鑰詳細(xì)信息
[root@localhost Packages]# rpm -ivh --replacepkgs zsh-4.3.10-7.el6.x86_64.rpm                
#可以導(dǎo)入密鑰后安裝軟件會(huì)自動(dòng)執(zhí)行檢查,通過(guò)后直接安裝      
Preparing...                ########################################### [100%]    
   1:zsh                    ########################################### [100%]
[root@localhost Packages]# rpm -K zsh-4.3.10-7.el6.x86_64.rpm                                
#手動(dòng)檢查包的完整性與合法性
zsh-4.3.10-7.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

八、知識(shí)要點(diǎn)總結(jié)

  • 8.1、了解軟件包管理器的來(lái)源與使用

  • 8.2、熟悉RPM包的命名格式 name-version-release.arch.rpm

  • 8.3、熟悉打包和分包機(jī)制

  • 8.4、熟悉RPM命令的使用 ,包括 安裝、卸載、查詢、升級(jí)、校驗(yàn)、公鑰導(dǎo)入、合法性的檢驗(yàn)、RPM數(shù)據(jù)庫(kù)重建

雖然在安裝軟件時(shí)還有其他更好的命名,比如yum(日后再介紹),但是yum也是基于RPM而衍生出來(lái)的,而且在查詢軟件包很有用,日后也會(huì)經(jīng)常使用這個(gè)命令,所以必須要對(duì)RPM命令非常熟悉,尤其是查詢命令,對(duì)日后維護(hù)Linux系統(tǒng)幫助很大。建議多加練習(xí)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前標(biāo)題:軟件包管理之rpm-創(chuàng)新互聯(lián)
文章URL:http://www.chinadenli.net/article38/cccgsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站App開(kāi)發(fā)建站公司定制網(wǎng)站品牌網(wǎng)站建設(shè)電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站