亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

RPM查詢篇

系統(tǒng) 2116 0

RPM不僅在安裝,升級(jí),卸載方面工作出色,而且在查詢方面比其它軟件包管理工具更勝一籌。這從以下幾種情況可以看出:

* 當(dāng)你在瀏覽系統(tǒng)文件時(shí),發(fā)現(xiàn)一個(gè)文件,想知道它來自哪個(gè)軟件包時(shí),可以用RPM來查詢得知;

* 當(dāng)你的朋友給你發(fā)送來一個(gè)軟件包,但你不知道這是個(gè)什么樣的軟件包,不知道它做些什么,安裝些什么,來源是哪里。這時(shí),你可以用RPM查詢搞定;

* 幾個(gè)月前你安裝了XFree86窗口軟件,但現(xiàn)在你忘了它的版本號(hào),也不知它的說明文檔在哪里。這時(shí),你可以用RPM查詢一下這個(gè)軟件包,得到這方面的信息。

RPM的查詢還有一個(gè)高級(jí)功能,即定制輸出功能。你可用--queryformat(或-qf)來定制一下輸出格式,這樣,RPM查詢得到的信息將以你定制的格式輸出,這樣很是方便,尤適合于程序的自動(dòng)處理。

命令格式

查詢RPM格式的軟件包,可使用如下命令格式:

rpm -q [查詢選項(xiàng)1 查詢選項(xiàng)2...]

注: 也可使用--query代替-q,效果相同。

選項(xiàng)列表

選項(xiàng)詳解

指定用選項(xiàng)中ftp與http相關(guān)的四個(gè)選項(xiàng)(--ftpproxy,--ftpport,--httpproxy,--httpport)和通用選項(xiàng)的解釋,請(qǐng)參見<<精通RPM之二--安裝篇>>,本文不再贅述。下面對(duì)指定用選項(xiàng)做些解釋:

指定用選項(xiàng)可分為如下幾類:

一、軟件包選擇類

此類選項(xiàng)在一次只能選擇一個(gè),選擇多個(gè)時(shí)RPM將提示錯(cuò)誤:

rpm: one type of query/verify may be performed at a time

從查詢方面看,一個(gè)是查詢那些已安裝的軟件包,一個(gè)是查詢未安裝的軟件包。

1. 查詢已安裝的軟件包,使用下列選項(xiàng):

(1) -a (或--all) : 查詢所有已安裝的軟件包

# rpm -q -a

setup-2.0.2-1

filesystem-1.3.4-5

basesystem-6.0-5

agrep-2.04-5

aktion-0.3.6-2

amor-0.5-1

dhcpcd-1.3.17pl2-1

ldconfig-1.9.5-15

glibc-2.1.2-12

chkconfig-1.0.6-2

......

#

注: 本例查找當(dāng)前系統(tǒng)中安裝的所有軟件包,輸出很多,僅列出幾個(gè),剩下的省略掉了(以......表示)。

(2) -g (或--group) : 查詢有哪些軟件包屬于指定類別

RPM根據(jù)軟件功用的不同,將軟件分為以下若干類:(括號(hào)內(nèi)為注釋)

Amusements/Games (娛樂/游戲)

Amusements/Graphics(娛樂/圖形)

Applications/Archiving (應(yīng)用/檔案)

Applications/Communications (應(yīng)用/通訊)

Applications/Databases (應(yīng)用/數(shù)據(jù)庫)

Applications/Editors (應(yīng)用/編輯器)

Applications/Emulators (應(yīng)用/仿真器)

Applications/Engineering (應(yīng)用/工程)

Applications/File (應(yīng)用/文件)

Applications/Internet (應(yīng)用/因特網(wǎng))

Applications/Multimedia (應(yīng)用/多媒體)

Applications/Productivity (應(yīng)用/產(chǎn)品)

Applications/Publishing (應(yīng)用/印刷)

Applications/System (應(yīng)用/系統(tǒng))

Applications/Text (應(yīng)用/文本)

Development/Debuggers (開發(fā)/調(diào)試器)

Development/Languages (開發(fā)/語言)

Development/Libraries (開發(fā)/函數(shù)庫)

Development/System (開發(fā)/系統(tǒng))

Development/Tools (開發(fā)/工具)

Documentation (說明文檔)

System Environment/Base (系統(tǒng)環(huán)境/基礎(chǔ))

System Environment/Daemons (系統(tǒng)環(huán)境/守護(hù))

System Environment/Kernel (系統(tǒng)環(huán)境/內(nèi)核)

System Environment/Libraries (系統(tǒng)環(huán)境/函數(shù)庫)

System Environment/Shells (系統(tǒng)環(huán)境/接口)

User Interface/Desktops (用戶界面/桌面)

User Interface/X (用戶界面/X窗口)

User Interface/X Hardware Support (用戶界面/X硬件支持)

Other (其它)

注意: 類別是大小寫敏感的,這一點(diǎn)輸入時(shí)要小心。如果用戶想要查詢當(dāng)前系統(tǒng)安裝了哪些游戲類的軟件包,可這樣做:

# rpm -q -g Amusements/Games

clanbomber-1.01-1

kdegames-1.1.2-1

xbill-2.0-6

xboard-4.0.0-3

xboing-2.4-7

xgammon-0.98-14

xjewel-1.6-11

xpat2-1.04-10

xpilot-3.6.2-6

xpuzzles-5.4.1-7

xtrojka-1.2.3-6

#

如果用戶想查詢?nèi)舾深悇e的軟件包時(shí),可以把類別都列出來,一起查詢,如:

# rpm -q -g Applications/Editors Applications/File

emacs-20.3-15

emacs-nox-20.3-15

emacs-X11-20.3-15

vim-common-5.6-12

vim-minimal-5.6-12

vim-X11-5.6-12

fileutils-4.0-3

bzip2-0.9.5d-1

findutils-4.1-32

git-4.3.17-6

gzip-1.2.4-15

slocate-1.4-7

stat-1.5-12

file-3.26-6

#

注: 本例查詢結(jié)果中前6個(gè)為"應(yīng)用/編輯器"類別,后8個(gè)為"應(yīng)用/文件"類別。

(3) -f (或--file) : 查詢有哪些軟件包擁有指定文件這個(gè)選項(xiàng)非常有用。當(dāng)用戶不清楚某個(gè)文件屬于哪個(gè)軟件包時(shí),可試試這個(gè)選項(xiàng)。假如我記不清/usr/sbin/ftpd這個(gè)文件在哪個(gè)包中,現(xiàn)在用RPM查詢:

# rpm -qf /usr/sbin/ftpd

inet6-apps-0.36-3

#

現(xiàn)在知道了,它在inet6-apps-0.36-3包中。命令中-qf是-q -f的縮寫,當(dāng)選項(xiàng)僅帶一個(gè)減號(hào)時(shí),多個(gè)選項(xiàng)可以合并在一起,如-a -b -c三個(gè)選項(xiàng)可寫作-abc,執(zhí)行效果相同。

(4) --whatrequires : 查詢有哪些包需要指定功能

本選項(xiàng)指示RPM從所有已安裝的軟件包中,查詢有哪些軟件包提供了用戶指定的功能,命令行上可輸入一個(gè)或多個(gè)功能。

# rpm -q --whatrequires /bin/ps libc.so.6 | head

autofs-3.1.3-2

agrep-2.04-5

aktion-0.3.6-2

amor-0.5-1

chkconfig-1.0.6-2

libtermcap-2.0.8-16

bash-2.03-10

ncurses-4.2-18

info-3.12f-4

fileutils-4.0-3

#

注: 本例從系統(tǒng)中查詢哪些軟件包需要/bin/ps和libc.so.6功能,通過管道輸出前10行內(nèi)容。

(5) --whatprovides : 查詢有哪些包提供指定功能

本選項(xiàng)指示RPM從所有已安裝的軟件包中,查詢有哪些軟件包提供了用戶指定的功能。命令行上可輸入一個(gè)或多個(gè)功能。

# rpm -q --whatprovides libc.so.6 /bin/ps

glibc-2.1.2-12

no package provides /bin/ps

#

注: 本例從系統(tǒng)中查詢有哪些軟件包提供libc.so.6與/bin/ps功能,結(jié)果是glibc-2.1.2-12包提供了libc.so.6,而沒有包提供/bin/ps功能。

(6) --triggeredby : 查詢有哪些包被指定的包觸發(fā)本選項(xiàng)指示RPM從所有已安裝的軟件包中,查詢有哪些包可被用戶指定的包觸發(fā)。指定的包可輸入一個(gè)或多個(gè)。

# rpm -q --triggeredby file

foo-8.0-1

#

注: 本例查詢后得知,安裝或卸載foo-8.0-1包,將會(huì)觸發(fā)與file包相關(guān)的腳本程序執(zhí)行。

2. 查詢未安裝的軟件包: (僅有一個(gè)選項(xiàng)可用)

(1) -p : 查詢指定包裹文件的信息

使用本選項(xiàng),通過指定一個(gè)或多個(gè)包裹文件名,RPM就可以獲取相應(yīng)包裹的有關(guān)信息。包裹文件可以是一般形式,也可是ftp/http形式。

# rpm -qp -l --ftpport 2121 ftp://zzz:pass@linux/zhsoft/file-3.26-6.i386.rpm

/usr/bin/file

/usr/man/man1/file.1

/usr/man/man4/magic.4

/usr/share/magic

#

注: 本例查詢ftp形式的包裹,顯示其文件列表(-l選項(xiàng)使然,下面要講到)。ftp用戶名zzz,密碼為pass,遠(yuǎn)程機(jī)為linux,文件名為/zhsoft/file-3.26-6.i386.rpm,ftp使用2121端口。

二、信息顯示類

本類選項(xiàng)可同時(shí)選擇多個(gè),以顯示多種信息。

1. -i : 顯示軟件包信息

當(dāng)用戶需要了解軟件包的頭部信息時(shí),要使用該選項(xiàng)。

# rpm -qi file

Name: file Relocations: /usr

Version : 3.26 Vendor: Red Hat Software

Release : 6 Build Date: 1999年03月23日 星期二 05時(shí)32分29秒

Install date: 2001年10月14日 星期日 21時(shí)18分25秒 Build Host: porky.devel.redhat.com

Group : Applications/File Source RPM: file-3.26-6.src.rpm

Size: 211946 License: distributable

Packager: Red Hat Software

Summary : A utility for determining file types.

Description :

The file command is used to identify a particular file according to the

type of data contained by the file. File can identify many different

file types, including ELF binaries, system libraries, RPM packages, and

different graphics formats.

You should install the file package, since the file command is such a

useful utility.

#

上述輸出中,包含多個(gè)域,各個(gè)域的含義為:

Name : 軟件名;Relocations : 重定位目錄前綴(一個(gè)或多個(gè));

Version : 版本號(hào);Vendor : 開發(fā)商;

Release : 釋出號(hào);Build Date : 包建立時(shí)間;

Install date : 安裝時(shí)間; Build host : 包建立主機(jī);

Group: 類別; Source RPM : 源代碼包;

Size : 大小; License : 許可證;

Packager : 打包者;

Summary : 軟件簡介;

Description : 詳細(xì)描述。

2. -l (或--list) : 顯示軟件包文件列表

當(dāng)用戶想知道軟件包包含哪些文件時(shí),要使用該選項(xiàng)。輸出時(shí),一行一個(gè)文件名,形成文

件列表。下例列出file包中文件:

# rpm -qlv file

-rwxr-xr-x root root23948 3月 23 1999 /usr/bin/file

-rwxr-xr-x root root12023 3月 23 1999 /usr/man/man1/file.1

-rwxr-xr-x root root 6625 3月 23 1999 /usr/man/man4/magic.4

-rwxr-xr-x root root 169350 3月 23 1999 /usr/share/magic

#

注: 本例列文件時(shí)選用了通用選項(xiàng)-v,這樣列出的格式同ls命令列出的格式,從中可以看到各個(gè)文件的權(quán)限,屬主,屬組,大小,最后修改時(shí)間及文件名等信息。

3. -d (或--docfiles) : 顯示軟件包說明文檔RPM將軟件包中的文件分為三類,一是配置文件,一是說明文檔,再一是其它文件(包括可執(zhí)行程序及數(shù)據(jù)文件等)。通過-d選項(xiàng),可列出包中所有說明文檔。下例列出file包中說明文檔:

# rpm -qd file

/usr/man/man1/file.1

/usr/man/man4/magic.4

#

4. -c (或--configfiles) : 顯示軟件包配置文件使用本選項(xiàng)可列出包中所有配置文件。下例列出lze包中的配置文件:

# rpm -qc lze

/etc/funkey.def

/etc/inputme.def

#

5. -s (或--state) : 顯示軟件包文件狀態(tài)RPM已安裝的軟件包中各個(gè)文件可擁有如下4種狀態(tài):

* normal(正常): 這表明文件未被其它軟件包修改過。

* replaced(已替換): 這表明文件已被其它軟件包修改替換過了,不再是原先的文件了。* not installed(未安裝): 這表明文件未安裝。有一種原因可導(dǎo)致這種情況發(fā)生,這就是當(dāng)安裝軟件包時(shí)使用了--excludedocs選項(xiàng)(或是通過設(shè)置%_excludedocs 宏為1),說明文檔未被安裝到系統(tǒng)中。當(dāng)用RPM查詢此軟件包狀態(tài)時(shí),所有說明文檔均顯示此狀態(tài)。

* net shared(網(wǎng)絡(luò)共享): 這表明文件處于網(wǎng)絡(luò)共享狀態(tài)。這一狀態(tài)是RPM用來支持NFS(網(wǎng)絡(luò)文件系統(tǒng))的,用于避免一個(gè)NFS客戶端系統(tǒng)刪除一個(gè)正在共享的文件時(shí),另一NFS客戶端系統(tǒng)無法正常使用含此文件的軟件包。有兩種情況可使文件在此狀態(tài),一是文件安裝在真實(shí)網(wǎng)絡(luò)共享的目錄里,二是文件安裝在RPM資源配置文件中% _netsharedpath宏所確定的目錄里。

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

# rpm -qs file

normal/usr/bin/file

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

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

normal/usr/share/magic

#

注: 本例先安裝file包裹文件,選用--excludedocs表明不安裝說明文檔。而后再查詢file包文件的狀態(tài),可以看到其說明文檔均為not installed(未安裝),其它文件為normal(正常)狀態(tài)。

6. -R (或--requires) : 顯示軟件包所需的功能

所謂功能,可以是軟件包標(biāo)識(shí),可以是文件(如共享庫libc.so.6等),也可以是虛擬的名字。軟件包的依賴關(guān)系,就是依靠功能來實(shí)現(xiàn)的。RPM安裝軟件包時(shí),如果所需功能不存在,則其依賴關(guān)系不滿足,RPM將中斷安裝過程。

# rpm -q -R lze

/bin/sh

ld-linux.so.2

libc.so.6

libc.so.6(GLIBC_2.0)

libc.so.6(GLIBC_2.1)

#

注: 本例查詢lze包所需的功能。

7. --provides : 顯示軟件包提供的功能

一個(gè)軟件包,可以提供若干功能,這些功能可以是動(dòng)態(tài)鏈接庫等實(shí)際的文件,也可以是虛擬的名字(只要其它軟件包可以用就行了)。如果想查詢某個(gè)包提供了哪些功能,要用--provides

選項(xiàng)。

下面的例子查詢一個(gè)包裹文件所提供的功能:

# rpm -qp --provides zlib-1.1.3-6.i386.rpm

libz.so.1

libz.so.1(GCC.INTERNAL)

#

注: 本包裹文件提供的功能是libz.so.1動(dòng)態(tài)鏈接庫。

8. --conflicts : 顯示軟件包沖突的功能

何謂沖突?沖突就是不同軟件包之間不能共存的現(xiàn)象。RPM制作軟件包時(shí),可以記錄下與本軟件包不能共存的功能,這樣安裝該包時(shí),若沖突的功能已然存在,則RPM將中止安裝。

下面的例子查詢at-3.1.7-8包是否有與其沖突的功能:

# rpm -q --conflicts at-3.1.7-8

crontabs <= 1.5

#

注: 本例顯示at包與版本號(hào)小于1.5的crontabs包有沖突存在。

9. --scripts : 顯示軟件包內(nèi)置的腳本程序

scripts即腳本,指的是用SHELL語言編寫的程序。選用本選項(xiàng)時(shí),RPM將輸出軟件包所含的各類腳本程序的內(nèi)容。總共有5類這樣的腳本程序,即安裝前腳本程序(preinstall),安裝后腳本程序(postinstall),卸載前腳本程序(preuninstall),卸載后腳本程序 (postuninstall)和校驗(yàn)?zāi)_本程序(verify)。

下面的例子列出zsh包的腳本程序:

# rpm -q --scripts zsh-3.0.7-4 | nl

1 postinstall script (through /bin/sh):

2 if [ ! -f /etc/shells ] ; then

3 echo "/bin/zsh" > /etc/shells

4 else

5 echo "/bin/zsh" >> /etc/shells

6 fi

7 /sbin/install-info /usr/info/zsh.info.gz /usr/info/dir \

8 --entry="* zsh: (zsh). An enhanced bourne shell."

9 preuninstall script (through /bin/sh):

10 if [ "$1" = 0 ] ; then

11 /sbin/install-info --delete /usr/info/zsh.info.gz /usr/info/dir \

12 --entry="* zsh: (zsh). An enhanced bourne shell."

13 fi

14 postuninstall script (through /bin/sh):

15 if [ "$1" = 0 ] ; then

16 if [ -f /etc/shells ] ; then

17 TmpFile=`/bin/mktemp /tmp/.zshrpmXXXXXX`

18 grep -v '^/bin/zsh$' /etc/shells > $TmpFile

19 cp -f $TmpFile /etc/shells

20 rm -f $TmpFile

21 chmod 644 /etc/shells

22 fi

23 fi

#

注: 本例利用管道技術(shù)給查詢的每行輸出加上了行號(hào),便于觀察解釋。

第2-8行: 為安裝后腳本程序(postinstall)的源代碼;

第10-13行: 為卸載前腳本程序(preuninstall)的源代碼;

第15-23行: 為卸載后腳本程序(postuninstall)的源代碼。

例中所有腳本程序均通過/bin/sh解釋執(zhí)行,本例沒有安裝前腳本程序(preinstall)和

校驗(yàn)?zāi)_本程序(verify)。

10. --triggers : 顯示軟件包內(nèi)置的觸發(fā)腳本程序

觸發(fā)腳本程序是scripts類腳本程序的擴(kuò)展,它用于軟件包之間的交互控制。觸發(fā)腳本

程序有安裝時(shí)觸發(fā)腳本程序(triggerin),卸載前觸發(fā)腳本程序(triggerun)和卸載后觸發(fā)腳

本程序(triggerpostun)三種。

下面的例子列出zsh包中的觸發(fā)腳本程序:

# rpm -q --triggers zsh-3.0.7-4

triggerpostun script (through /bin/sh) -- zsh <= 3.0.7-2

if [ ! -f /etc/shells ] ; then

echo "/bin/zsh" > /etc/shells

else

echo "/bin/zsh" >> /etc/shells

fi

#

注: 輸出的第1行說明腳本程序的類別(為卸載后觸發(fā)腳本程序triggerpostun),用什么程序解釋(一般為/bin/sh),和觸發(fā)的條件(在--之后描述)。本例的觸發(fā)條件為zsh的版本小于或等于3.0.7-2。如果條件成立,則此腳本程序?qū)?huì)執(zhí)行。輸出的第2-6行為卸載后觸發(fā)腳本程序的源代碼。

11. --changelog : 顯示軟件維護(hù)記錄

changelog即軟件維護(hù)記錄,用它來記錄什么人,什么時(shí)間,改動(dòng)了軟件的什么地方。通

過查看維護(hù)記錄,開發(fā)者或用戶可以了解軟件的開發(fā)進(jìn)展情況。

下面的例子查詢lze包的維護(hù)情況:

# rpm -q --changelog lze-6.0-2

* 五 5月 01 1998 雨亦奇

- 增加多窗口操作

* 一 3月 24 1997 雨亦奇

- 增加塊操作命令

#

注: 從本例中就可以看出來,維護(hù)記錄的書寫有一定的規(guī)范:以星號(hào)(*)開頭的行記錄維護(hù)時(shí)間,維護(hù)人及其電子郵箱,而以減號(hào)(-)開頭的行則記錄維護(hù)的具體內(nèi)容。

12. --dump : 顯示軟件包中所有文件的屬性信息

如果用戶想查看某個(gè)軟件包內(nèi)文件的屬性信息,請(qǐng)用--dump選項(xiàng)。

# rpm -q --dump file

/usr/bin/file 23948 922138347 abaf6cfd51588ac7c484526fbdb84e5b 0100755 root root 0 0 0 X

/usr/man/man1/file.1 12023 922138346 76d9ff6567ab64a53eab50911272f5c1 0100755 root root 0 1 0 X

/usr/man/man4/magic.4 6625 922138346 b8d126803709f0da7f39f5125a132cd3 0100755root root 0 1 0 X

/usr/share/magic 169350 922138346 3bd2eaf3c5e0e84153ba7df38b7561fc 0100755 root root 0 0 0 X

#

現(xiàn)在根據(jù)例子的輸出,解釋一下RPM包中各個(gè)文件所擁有的屬性信息:(以第1行為例)

/usr/bin/file : 為文件名;

23948 : 指文件大小(字節(jié)數(shù));

922138347 : 指文件最后修改時(shí)間(秒數(shù));

abaf6cfd51588ac7c484526fbdb84e5b : 指根據(jù)文件內(nèi)容計(jì)算出的MD5檢查和;

0100755 : 指文件存取權(quán)限;

root : 指文件屬主;

root : 指文件屬組;

0 : 配置文件標(biāo)志,為0表示該文件非配置文件,為1表明該文件是配置文件;

0 : 說明文檔標(biāo)志,為0表示該文件非說明文檔,為1表明該文件是說明文檔;

0 : 指文件類型,為0表示普通文件,非0表示設(shè)備文件,包含主從設(shè)備號(hào);

X : 符號(hào)連接內(nèi)容,如果文件不是符號(hào)連接,則此值為X。

三、定制輸出類

定制輸出是RPM一項(xiàng)強(qiáng)有力的功能,當(dāng)用戶想要RPM按自己的格式輸出軟件包信息時(shí),可以通過使用--qf(或--queryformat)選項(xiàng)來實(shí)現(xiàn)定制。

定制輸出要指定格式化的字符串(類似printf的格式串),該字符串以單引號(hào)'或雙引號(hào)"引住。格式串中可包括普通文本,含轉(zhuǎn)義符的文本,功能標(biāo)簽和數(shù)組循環(huán)三種不同的組件。

* 普通文本

格式串中的普通文本將按原樣輸出。

* 含轉(zhuǎn)義符的文本

RPM定義的轉(zhuǎn)義符為\,稱作反斜杠。當(dāng)RPM遇到此字符時(shí),會(huì)根據(jù)預(yù)先定義的轉(zhuǎn)義序列,把后面的字符解釋后輸出。

轉(zhuǎn)義序列如下:

\a : 輸出響鈴字符(值為7),效果是喇叭鳴叫一聲。

\b : 輸出退格符(值為8),效果是刪除光標(biāo)前面一個(gè)字符,且光標(biāo)后退一個(gè)字符位置。

\f : 輸出換頁符(值為12),根據(jù)終端解釋的不同,效果也不相同,有的是實(shí)現(xiàn)清屏操作,有的則是換一行。

\n : 輸出換行符(值為10),效果是光標(biāo)移到下一行。

\r : 輸出回車符(值為13),效果是光標(biāo)回到行首。

\t : 輸出跳格(值為9),根據(jù)終端解釋的不同,效果也不同,有的是輸出一個(gè)空格,有的 則輸出最多8個(gè)空格。

\v : 輸出垂直方向的跳格(值為11),用處不大。

\\ : 輸出反斜杠(\)這個(gè)字符。

* 功能標(biāo)簽

RPM內(nèi)置了很多功能標(biāo)簽,如NAME表示軟件名,VERSION表示版本號(hào),RELEASE表示釋出號(hào)等。輸出功能標(biāo)簽所表示的內(nèi)容時(shí),需用這樣一種格式:

%[輸出寬度]{功能標(biāo)簽}

注:輸出寬度可選,正值表示右對(duì)齊輸出,負(fù)值表示左對(duì)齊輸出。

如格式串中使用%{NAME}時(shí)將輸出軟件名,使用%20{NAME}時(shí)則右對(duì)齊輸出軟件名,寬度為20,而使用%-20{NAME}時(shí)則按寬度為20左對(duì)齊輸出軟件名。看看下面的實(shí)際例子就會(huì)明白:

# rpm -q --qf "%{NAME}:%20{NAME}:%-20{NAME}:\n" file

file:file:file:

#

功能標(biāo)簽書寫不區(qū)分大小寫,即NAME也可輸作name,Name等等。功能標(biāo)簽還可以帶有選項(xiàng),選項(xiàng)用":選項(xiàng)名"表示,選項(xiàng)名有大小寫之分。如% {FILEMODES}默認(rèn)以數(shù)字形式輸出,如采用perms選項(xiàng),即%{FILEMODES:perms},輸出結(jié)果將采用rwx的形式。請(qǐng)看下面的例子:

# rpm -q --qf "%{filenames} %{FILEMODES:perms}\n" file

/usr/bin/file -rwxr-xr-x-

#

注: %{filenames}表示包中的文件名。

RPM常用功能標(biāo)簽表

注: 可用rpm --querytags命令查到RPM內(nèi)置的所有功能標(biāo)簽。

* 數(shù)組循環(huán)

對(duì)于功能標(biāo)簽是數(shù)組的,可以用數(shù)組循環(huán)(用[與]括住的部分)來輸出數(shù)組的全部內(nèi)容。數(shù)組循環(huán)內(nèi)部可包含功能標(biāo)簽,普通文本和含轉(zhuǎn)義符的文本。RPM將根據(jù)循環(huán)內(nèi)部一個(gè)或多個(gè)數(shù)組類型的功能標(biāo)簽所擁有的單元個(gè)數(shù),取其最小值,循環(huán)同樣次數(shù),輸出解釋或轉(zhuǎn)義后的數(shù)據(jù)。對(duì)于功能標(biāo)簽僅含一個(gè)單元的,若想輸出多次,則需要在功能標(biāo)簽前面加個(gè)等號(hào)(=)。

下面的例子以數(shù)組循環(huán)的方式,輸出file包所含的各個(gè)文件的文件名及權(quán)限,同時(shí)輸出每一個(gè)文件時(shí)都要先輸出軟件包標(biāo)識(shí)。

# rpm -q --qf "[%{=NAME}-%{=VERSION}-%{=RELEASE} : %-20{FILENAMES} : %{FILEMODES:perms}\n]" file

file-3.26-6 : /usr/bin/file : -rwxr-xr-x-

file-3.26-6 : /usr/man/man1/file.1 : -rwxr-xr-x-

file-3.26-6 : /usr/man/man4/magic.4 : -rwxr-xr-x-

file-3.26-6 : /usr/share/magic : -rwxr-xr-x-

#

通過使用定制輸出,我們可以很方便地查找出系統(tǒng)中占用空間最大的軟件包。

# rpm -q -a --qf "%{NAME} %{SIZE}\n" | sort -nr +1 | head -1

kernel-source 65824967

#

注: -a項(xiàng)選擇所有已安裝的軟件包,--qf項(xiàng)定制查詢格式, 格式串中用功能標(biāo)簽NAME輸出軟件名,用SIZE輸出軟件大小,查詢得到的數(shù)據(jù)通過管道送sort命令,對(duì)第2列降序排序后由head命令取第1行內(nèi)容,這即是占用空間最大的軟件包。 ?

RPM查詢篇


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 天天操婷婷| 久久黄色网址 | 狠狠色丁婷婷综合久久 | 一级午夜| 国产一区二区在线免费观看 | 亚洲另类伦春色综合妖色成人网 | 国产 欧美 在线 | 国产福利在线观看精品 | 成人欧美一区二区三区在线观看 | 久久久久久久久网站 | 精品一区二区三 | 米奇精品一区二区三区 | 四虎网址最新 | 免费观看四虎精品国产永久 | 亚洲一级理论片 | 色偷偷亚洲第一综合 | 国产主播在线播放 | 久久99热精品 | 99热精品国产三级在线观看 | 国产一级免费 | 91免费网站在线看入口黄 | 亚洲欧美日韩不卡一区二区三区 | 奇米影视在线视频 | 欧美一级毛片在线一看 | 精品久久久一二三区 | 欧美性天天影院 | 国产午夜精品久久久久 | 精品无人区乱码一区2区3区 | 国产亚洲精品一区二区久久 | 91精品自在拍精选久久 | 99视屏| 久久国产99 | sihu国产精品永久免费 | 国产精品原创永久在线观看 | 美女视频黄a视频免费全过程在线 | 日本一视频一区视频二区 | 久久精品视 | 欧美性一区二区三区五区 | 日韩不卡在线观看 | 久久不卡一区 | 久久青草免费91线频观看不卡 |