RPM應用之安裝篇

2021-04-13 02:55:46 字數 3025 閱讀 5624

13.ignorearch:忽略體系與ignoreos :忽略作業系統

何謂體系?體系就是cpu的類別,有intel的x86(如i386,i486系列)體系,有sun的sparc體系等等。當乙個軟體包建立時,rpm就為其指定了所適用的cpu體系,也為其指定了所適用的作業系統。這樣做的好處就是,rpm容易知道為一台計算機所建立的軟體包是否適用於相容於另一台計算機。rpm的資源配置檔案(預設為/usr/lib/rpm/rpmrc)中,就定義了體系的相容關係(arch_compat表達)和作業系統的相容關係(os_compat表達)。rpm安裝乙個包裹檔案時,要做這樣乙個相容方面的檢查。如果使用者想忽略體系,不管其是否相容,請用--ignorearch選項安裝。如果也不管作業系統是否相容,可用--ignoreos選項。需要指出的是,若非知道自己這樣的目的,否則不要試圖這樣做。

14.ignoresize:不檢查空間大小

rpm安裝軟體包前,首先要檢查當前系統是否有足夠的剩餘空間,如果空間不足的話,安裝將無法完成。使用本選項的目的,在於指示rpm不做空間大小方面的檢查,意即不管系統是否有容納要安裝的軟體包的空間,照直安裝就行了。

15.relocate:重定位

rpm軟體包在製作過程中,可以定義乙個或多個重定位字首,以此方便軟體的重定位(即把軟體包中的檔案放到自定義的目錄下面),從而增加軟體包安裝的靈活性。

本選項用於更換指定的重定位目錄,如果乙個包有多個重定位字首,可以使用本選項多次。

# rpm -qpl file-3.26-6.i386.rpm

/usr/bin/file

/usr/man/man1/file.1

/usr/man/man4/magic.4

/usr/share/magic

# rpm -i --relocate /usr=/tmp file-3.26-6.i386.rpm

# rpm -ql file

/tmp/bin/file

/tmp/man/man1/file.1

/tmp/man/man4/magic.4

/tmp/share/magic

#

注:本例中先用rpm -qpl列出包裹檔案file-3.26-6.i386.rpm當中的檔案,可以看到其中的檔案均是以/usr開頭的。之後進行重定位安裝,將/usr換作/tmp。最後從列出已安裝的file包的檔案列表可以看出,原來的/usr目錄字首換作指定的字首/tmp了,這樣實現了軟體的重定位。(關於rpm查詢命令,詳見《精通rpm之五--查詢篇》)

16.badreloc:強制重定位

rpm軟體包的重定位,依賴於製作時重定位字首的定義。如果沒有定義重定位字首,或者使用者安裝時所指定的重定位字首不存在,則rpm會報錯退出,中斷安裝。此時,若用本選項,則rpm會不管這些錯誤,進行強制的重定位安裝。注:本選項和--relocate選項同時使用時才有意義。

如上例,採用並不存在的重定位字首/usr/man進行安裝:

# rpm -i --relocate /usr/man=/tmp file-3.26-6.i386.rpm

path /usr/man is not relocateable for package file-3.26-6

#

rpm提示了錯誤:/usr/man目錄在file-3.26-6包中是不可重定位的。

如加上--badreloc選項,結果怎麼樣:

# rpm -i --relocate /usr/man=/tmp --badreloc file-3.26-6.i386.rpm

# rpm -ql file

/usr/bin/file

/tmp/man1/file.1

/tmp/man4/magic.4

/usr/share/magic

#

由上可以看到,這樣的強制重定位獲得通過,之後再用查詢命令rpm -ql列一下file包的檔案,就會發現原來的/usr/man/man1/file.1定位成了/tmp/man1/file.1,而/usr/man/man4/magic.4則成了/tmp/man4/magic.4。怎麼樣?神奇吧!

17.excludepath:不安裝指定目錄下的檔案

利用此選項,可以禁止rpm安裝某些指定目錄下的檔案。如不想安裝file軟體包中的說明文件,除了可使用--excludedocs選項外,還可使用本選項。因為file的說明文件均在目錄/usr/man下面。

# rpm -i --excludepath /usr/man file-3.26-6.i386.rpm

# rpm -qls file

normal/usr/bin/file

not installed /usr/man/man1/file.1

not installed /usr/man/man4/magic.4

normal/usr/share/magic

#

注:例子中先安裝file軟體包,並用--excludepath禁止安裝/usr/man下的檔案,再用rpm查詢命令rpm -qls列出file包的檔案及狀態,可以看到:/usr/man下的兩個檔案均未安裝(not installed)。

18.justdb:僅更新資料庫

安裝軟體包使用此選項後,rpm將只更新其資料庫資料,檔案系統不更新,意即並不拷貝和建立包中的檔案。

# rpm -i --justdb file-3.26-6.i386.rpm

# rpm -qls file

normal/usr/bin/file

normal/usr/man/man1/file.1

normal/usr/man/man4/magic.4

normal/usr/share/magic

# ls -l /usr/bin/file

ls: /usr/bin/file: 檔案或目錄不存在

#

注:例子中安裝file包但指明只更新資料庫,結果是:雖然用查詢命令查到該軟體包中所有檔案狀態均正常(normal),但用ls命令行包中所含檔案/usr/bin/file,該檔案卻不存在。這表明包中檔案並未建立。 

App開發智慧型車載應用之概述篇

智慧型概念已經從手機領域擴充套件到其他很多領域,比如手錶,電視等。對於車載系統來說,他和智慧型 系統的發展週期存在一定的差異。從趨勢上來看window embedded automotive系統在走下坡路,標誌性事件是14年底,福特宣布放棄微軟,選擇qnx車載平台。linux和原生android車載...

Linux學習筆記 軟體安裝(rpm包篇)

優點 缺點 優點 缺點 httpd 2.2.15 15.el6.centos.1.i686.rpm httpd 軟體包名 2.2.15 軟體版本 15 軟體發布的次數 el6.centos 適合的linux平台 i686 適合的硬體平台 rpm rpm包副檔名 linux中是沒有副檔名的,這裡的副檔...

linux應用之mysql8安裝

在安裝前需要確定現在這個系統有沒有 mysql,如果有那麼必須解除安裝 在 centos7 自帶的是 mariadb 資料庫,所以第一步是解除安裝資料庫 檢視mariadb資料庫 rpm qa grep mariadb 解除安裝mariadb資料庫 rpm e nodeps mariadb檔名 檢視...