日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

RPM的使用--詳細(xì)演示安裝,刪除和查詢

系統(tǒng) 2471 0

作者:張子堅(jiān)

說明:本文所涉及示例均在fedora core3下得到。所使用RPM包為:lynx-2.8.5-11.i386.rpm和lynx-2.8.5-18.i386.rpm。

--------------------------------------------------------------------------------

Red Hat包管理器(即RPM:Red Hat Package Manager)是一種打包系統(tǒng),用于軟件的發(fā)布和安裝。其他Linux發(fā)布商,如SuSE等也使用RPM。

安裝與升級(jí)是管理RPM包的根本。安裝RPM包時(shí),就是在系統(tǒng)中增加新軟件。升級(jí)RPM包時(shí),就是在相關(guān)軟件中更新最新的特性。

一個(gè)包就是一個(gè)文件,其中包含了安裝一個(gè)應(yīng)用所需的多個(gè)文件。盡管包中包含了安裝時(shí)所需的文件,但是應(yīng)用程序?yàn)榱四苓\(yùn)行可能還需要其他文件的存在或其他未包含包的存在,如特定的庫。這樣的需求就是包的依賴性(dependency)。如,內(nèi)核源代碼RPM包要有GNU C語言編譯器。由于內(nèi)核源代碼具有依賴性,因此要先安裝GNU C語言編譯器,再安裝內(nèi)核源代碼。

任何用戶都可以列出或查詢包。但是,安裝,升級(jí)或刪除包通常需要超級(jí)用戶的特權(quán)。這是因?yàn)榘ǔ0惭b在系統(tǒng)級(jí)目錄下,該目錄只對root(超級(jí)用戶)是可寫的。有時(shí),也可以指定一個(gè)目錄。把把安裝在你的主目錄或者你擁有寫權(quán)限的目錄下。

--------------------------------------------------------------------------------

以下簡要介紹RPM包的安裝,刪除和查詢

RPM包的建立,安裝和查詢是用rpm命令進(jìn)行的。RPM包的名字通常以.rpm擴(kuò)展名結(jié)束。rpm有一組模式,每種模式都有自己的選項(xiàng)。

rpm命令的格式為:

rpm [options] [packages]

第一個(gè)選項(xiàng)指定rpm模式(安裝,查詢,更新),其他選項(xiàng)影響模式。

對包的選項(xiàng)描述中,有時(shí)把包指定為package-name,而有時(shí)指定為package-file。包的名字是程序名或應(yīng)用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。

--------------------------------------------------------------------------------

RPM為指定常用的選項(xiàng)提供了配置文件。系統(tǒng)配置文件通常是/etc/rpmrc,而用戶可以建立他們自己的$HOME/.rpmrc文件。你可以用--showrc選項(xiàng)為在rpmrc文件中設(shè)置的所有選項(xiàng)顯示RPM會(huì)使用的值。

以下為rpm --showrc命令顯示的節(jié)選:

示例:

此為部分顯示結(jié)果

[root@localhost ~]# rpm --showrc

ARCHITECTURE AND OS:

build arch : i386

compatible build archs: athlon i686 i586 i486 i386 noarch

build os : Linux

compatible build os's : linux

install arch : athlon

install os : Linux

compatible archs : athlon i686 i586 i486 i386 noarch

compatible os's : linux

RPMRC VALUES:

macrofiles : /usr/lib/rpm/macros:/usr/lib/rpm/i386-linux/macros:/usr/lib/rpm/redhat/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/i386-linux/macros:~/.rpmmacros

optflags : %{__global_cflags} -m32 -march=athlon

Features supported by rpmlib:

rpmlib(VersionedDependencies) = 3.0.3-1

PreReq:, Provides:, and Obsoletes: dependencies support versions.

rpmlib(CompressedFileNames) = 3.0.4-1

file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.

rpmlib(PayloadIsBzip2) = 3.0.5-1

package payload can be compressed using bzip2.

--------------------------------------------------------------------------------

rpm命令包括FTP和HTTP客戶端,因此可以指定ftp://或http://URL來通過Internet安裝或查詢一個(gè)包。只要這里給出的命令中指定了package-file,你就可以使用FTP或HTTP URL。

示例:

[root@localhost ~]# rpm -ivh ftp://fr.rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/lynx-*

Retrieving ftp://fr.rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/lynx-2.8.5-18.i386.rpm

Preparing... ########################################### [100%]

1:lynx ########################################### [100%]

--------------------------------------------------------------------------------

以下列出一些通用選項(xiàng)(可以用于所有模式):

--dbpath path

用path作為RPM數(shù)據(jù)庫的路徑。

--ftpport prot

用port作為FTP端口。

--ftpproxy host

用host作為所有傳輸?shù)拇矸?wù)器。如果你通過使用代理的防火墻系統(tǒng)連到FTP,就要指定該選項(xiàng)。

--help

輸出一個(gè)長的使用信息(如果運(yùn)行rpm時(shí)沒有選項(xiàng),則給出短的使用信息)。

--justdb

只更新數(shù)據(jù)庫;不改變?nèi)魏挝募?

--pipe command

用管道把rpm輸出到commond。

--quiet

僅顯示錯(cuò)誤信息。

--rcfile filename

用filename作為配置文件,而不用系統(tǒng)配置文件/etc/rpmrc或$HOME/.rpmrc。

--root dir

在dir目錄內(nèi)執(zhí)行所有操作。

--version

輸出rpm版本號(hào)。

-vv

輸出調(diào)試信息。

--------------------------------------------------------------------------------

安裝升級(jí)和刷新

安裝或升級(jí)一個(gè)RPM包,install命令的語法為:

rpm -i [install-options] package_file

rpm --install [install-options] package_file

示例:

[root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm

package lynx-2.8.5-18 is already installed

[root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm

--------------------------------------------------------------------------------

為了安裝一個(gè)包的新版本,同時(shí)刪除現(xiàn)有版本,使用upgrade命令:

rpm -U [install-options] package_file

rpm --upgrade [install-options] package_file

示例:

先安裝舊版

[root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm

再安裝新版

[root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm

顯示出新版本信息

[root@localhost ~]# rpm -q lynx

lynx-2.8.5-18

說明:

-U的一個(gè)特點(diǎn)是如果包在系統(tǒng)上不存在,其作用就與-i選項(xiàng)一樣,即安裝包。

與-U的特點(diǎn)不一樣,刷新(freshen)一個(gè)包,是指在已經(jīng)安裝了舊有版本時(shí)rpm才升級(jí)包。

--------------------------------------------------------------------------------

刷新的語法是:

rpm -F [install-options] package_file

rpm --freshen [install-options] package_file

示例:

從未安裝過lynx包,使用-F選項(xiàng),將無法升級(jí)。

[root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm

[root@localhost ~]# rpm -q lynx

package lynx is not installed

--------------------------------------------------------------------------------

安裝和更新選項(xiàng)為:

--allfiles

安裝或更新所有文件。

--badreloc

與--relocate一起使用,強(qiáng)制重新定位,即使包不是可重定位的。

--excludedocs

不安裝任何文檔文件。

--excludepath path

不安裝文件名以path開始的任何文件。

--force

強(qiáng)制安裝。等價(jià)于使用--replacepkgs,--replacefiles和--oldpackage。

-h,--hash

當(dāng)包檔案被解包時(shí)打印50個(gè)散列標(biāo)記。使用--version選項(xiàng)以進(jìn)行更好的顯示。

--ignorearch

即使二進(jìn)制包用于不同的體系結(jié)果也進(jìn)行安裝。

--ignoreos

即使操作系統(tǒng)不匹配也安裝二進(jìn)制包。

--ignoresize

安裝前不檢查磁盤的可用空間。

--includedocs

安裝文檔文件。只有在rpmrc文件中指定了excludedocs:1時(shí),才需要這個(gè)選項(xiàng)。

--nodeps

不檢查這個(gè)包是否依賴于其他包的存在。

--noorder

安裝之前,不為了滿足依賴關(guān)系而對包進(jìn)行重新排序。

--noscripts

不執(zhí)行任何預(yù)安裝或后安裝腳本。

--notriggers

不執(zhí)行任何由包安裝觸發(fā)的腳本。

--oldpackage

允許升級(jí)以用舊包替換新包。

--percent

當(dāng)文件被解壓時(shí)輸出完成百分比的信息。

--prefix path

把可重定位包的安裝前綴設(shè)置為path。

--replacefiles

即使包替換了來自其他安裝包的文件,也安裝這些包。

--replacepkgs

即使某些包已經(jīng)被安裝,也安裝他們。

--test

檢查安裝過程,看整個(gè)過程都做了些什么,但并不真正安裝包。

--------------------------------------------------------------------------------

查詢

query命令的語法為:

rpm -q[information-options] [package-options]

rpm --query[information-options] [package-options]

查詢選項(xiàng)有兩個(gè)子集:包選擇選項(xiàng)決定查詢什么包,信息選擇選項(xiàng)決定提供什么信息。

--------------------------------------------------------------------------------

以下簡單示演示一下包查詢:

簡單查詢:

最簡單的形式是rpm -q packagename查詢。可以用這個(gè)命令尋找以安裝包的版本。

示例:

[root@localhost ~]# rpm -q lynx

lynx-2.8.5-18

--------------------------------------------------------------------------------

信息查詢:

rpm -qi packagename命令可以得到安裝包的匯總信息。

示例:

[root@localhost ~]# rpm -qi lynx

Name : lynx Relocations: (not relocatable)

Version : 2.8.5 Vendor: Red Hat, Inc.

Release : 18 Build Date: 2004年07月08日 星期四 18時(shí)52分16秒

Install Date: 2006年05月30日 星期二 13時(shí)27分21秒 Build Host: tweety.build.redhat.com

Group : 應(yīng)用程序/互聯(lián)網(wǎng) Source RPM: lynx-2.8.5-18.src.rpm

Size : 4837340 License: GPL

Signature : DSA/SHA1, 2004年10月21日 星期四 01時(shí)14分03秒, Key ID b44269d04f2a6fd2

Packager : Red Hat, Inc.

URL : http://lynx.isc.org/

Summary : 一個(gè)基于文本的網(wǎng)頁瀏覽器。

Description :

Lynx 是一個(gè)基于文本的 萬維網(wǎng) 瀏覽器。Lynx不顯示任何

圖像,但是它支持框架、表格、以及多數(shù)其它 HTML

標(biāo)簽。Lynx 優(yōu)于圖形化瀏覽器的地方是它的速度――

Links 能夠快速啟動(dòng)、退出、及顯示網(wǎng)頁。

標(biāo)識(shí)擁有者

--------------------------------------------------------------------------------

找出什么包擁有文件file:

示例:

[root@localhost ~]# rpm -qf /etc/lynx-site.cfg

lynx-2.8.5-18

--------------------------------------------------------------------------------

列表包中的文件:

如果對一個(gè)包不夠了解,則可以用rpm -ql packagename命令列出包中的文件。這個(gè)表中確認(rèn)某個(gè)配置文件或命令是否在這個(gè)包中。如果要升級(jí),這個(gè)信息有助于了解升級(jí)有什么風(fēng)險(xiǎn)。

示例:

此為部分顯示結(jié)果

[root@localhost ~]# rpm -ql lynx

/etc/lynx-site.cfg

/etc/lynx.cfg

/etc/lynx.cfg.cs

/etc/lynx.cfg.ja

/etc/lynx.cfg.sk

/usr/bin/lynx

/usr/share/doc/lynx-2.8.5

/usr/share/doc/lynx-2.8.5/INSTALLATION

/usr/share/doc/lynx-2.8.5/README

/usr/share/doc/lynx-2.8.5/docs

/usr/share/doc/lynx-2.8.5/docs/CHANGES2.3

/usr/share/doc/lynx-2.8.5/docs/CHANGES2.4

/usr/share/doc/lynx-2.8.5/docs/CHANGES2.5

/usr/share/doc/lynx-2.8.5/docs/CHANGES2.6

/usr/share/doc/lynx-2.8.5/docs/CHANGES2.7

/usr/share/doc/lynx-2.8.5/docs/CHANGES2.8

/usr/share/doc/lynx-2.8.5/docs/CMU.announce

/usr/share/doc/lynx-2.8.5/docs/CRAWL.announce

/usr/share/doc/lynx-2.8.5/docs/FM.announce

/usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce

/usr/share/doc/lynx-2.8.5/docs/OS-390.announce

/usr/share/doc/lynx-2.8.5/docs/README.TRST

/usr/share/doc/lynx-2.8.5/docs/README.chartrans

--------------------------------------------------------------------------------

列出包所提供的實(shí)際能力:

--provides選項(xiàng)的作用是列出這個(gè)包所提供的實(shí)際能力。

示例:

[root@localhost ~]# rpm -q --provides lynx

config(lynx) = 2.8.5-18

webclient

lynx = 2.8.5-18

--------------------------------------------------------------------------------

列出這個(gè)包所倚賴的任何包:

-R,--requires選項(xiàng)的作用是列出這個(gè)包所依賴的任何包。

示例:

[root@localhost ~]# rpm -qR lynx

/bin/sh

config(lynx) = 2.8.5-18

indexhtml

libc.so.6

libc.so.6(GLIBC_2.0)

libc.so.6(GLIBC_2.1)

libc.so.6(GLIBC_2.2)

libc.so.6(GLIBC_2.3)

libcrypto.so.4

libncursesw.so.5

libssl.so.4

libz.so.1

rpmlib(CompressedFileNames) <= 3.0.4-1

rpmlib(PayloadFilesHavePrefix) <= 4.0-1

--------------------------------------------------------------------------------

列出包中的配置文件

-c,--configfiles選項(xiàng)的作用是列出包中的配置文件

示例:

[root@localhost ~]# rpm -qc lynx

/etc/lynx-site.cfg

/etc/lynx.cfg

/etc/lynx.cfg.cs

/etc/lynx.cfg.ja

/etc/lynx.cfg.sk

--------------------------------------------------------------------------------

顯示有關(guān)于包的改變信息的日志:

--changllog選項(xiàng)的作用是顯示有關(guān)于包的改變信息的日志。

示例:

此為部分顯示結(jié)果

[root@localhost ~]# rpm -q --changelog lynx

* 五 7月 09 2004 Tim Waugh <[email]twaugh@redhat.com[/email]> 2.8.5-18

- Removed perl dependencies (bug #127423).

* 三 6月 16 2004 Elliot Lee <[email]sopwith@redhat.com[/email]>

- rebuilt

* 三 5月 26 2004 Tim Waugh <[email]twaugh@redhat.com[/email]> 2.8.5-16

- No longer need lynx-284-ipv6-salen.patch.

- No longer need lynx2-8-2-telnet.patch.

* 六 2月 14 2004 Elliot Lee <[email]sopwith@redhat.com[/email]> 2.8.5-15

- rebuilt

* 二 12月 02 2003 Tim Waugh <[email]twaugh@redhat.com[/email]> 2.8.5-14

- Updated to dev16, fixing bug #110196.

- No longer need crlf patch.

- Use shipped ja translations.

- Use %find_lang.

- Default config file now sets UTF-8 (bug #110986).

--------------------------------------------------------------------------------

包選擇選項(xiàng)

package_name

查詢已安裝包的package_name。

-a,--all

查詢所有已安裝撥。

-f file,--file file

找出什么包擁有文件file。

-g group,--group group

找出什么包擁有組group。

-p package_file

查詢未安裝包package_file

--querybynumber num

查詢第num個(gè)數(shù)據(jù)庫條目。主要用于調(diào)試。

-qf,--queryformat num

指定顯示查詢結(jié)果時(shí)所采用的格式,使用標(biāo)記來表示不同的數(shù)據(jù)類型(NAME,F(xiàn)ILENAME,DISTRIBUTION)。格式說明是標(biāo)準(zhǔn)printf格式化的一個(gè)變體。

--specfile specfile

查詢specfile,就好象它是個(gè)包

--triggeredby pkg

列出觸發(fā)安裝pkg包的包。

--whatrequires capability

列出要求特定能力來行使職責(zé)的包。

--whatprovides capability

列出提供特定能力的包。

--------------------------------------------------------------------------------

信息選擇選項(xiàng):

-c,--configfiles

列出包中的配置文件。

--changelog

顯示有關(guān)于包的改變信息的日志。

-d,--docfiles

列出包中的文檔文件。

--dump

轉(zhuǎn)儲(chǔ)包中每個(gè)文件的信息。這個(gè)選項(xiàng)必須至少與-l,-c或-d之一共同使用。

以下列順序輸出信息:

path size mtime md5sum mode owner group isconfig isdoc rdev symlink

--filebypkg

列出每個(gè)包中的所有文件。

-i

顯示包的信息,包括名字,版本和描述。

-l,--list

列出包中所有文件

--last

根據(jù)安裝時(shí)間列出包,最新的包排第一位。

--provides

列出這個(gè)包所提供的實(shí)際能力。

-R,--requires

列出這個(gè)包所依賴的任何包。

-s,--state

列出包中的每個(gè)文件及其狀態(tài)。可能的狀態(tài)為normal,not installed或replaced。

--scripts

列出任何在安裝和卸載過程中所使用的包特定的shell腳本。

--------------------------------------------------------------------------------

卸載

uninstall命令的語法為:

rpm -e package_name

rpm --erase package_name

示例:

[root@localhost ~]# rpm -e lynx

[root@localhost ~]# rpm -q lynx

package lynx is not installed

--------------------------------------------------------------------------------

卸載選項(xiàng)為:

--allmatches

刪除包的所有版本。應(yīng)該只指定一個(gè)包,否則會(huì)導(dǎo)致錯(cuò)誤。

--nodeps

在卸載包之前不檢查依賴性。

--noscripts

不執(zhí)行任何預(yù)卸載和后卸載腳本。

--notriggers

不執(zhí)行任何由這個(gè)包的刪除而出發(fā)的腳本。

--test

不真正卸載任何包,僅僅查看活動(dòng)過程。

--------------------------------------------------------------------------------

以上簡要介紹和演示了一下RPM包的安裝,刪除和查詢。下一篇將講解和演示RPM的一些其他特性。

--------------------------------------------------------------------------------

參考文獻(xiàn):

《紅帽Linux 9 從入門到精通》,[美] Michael jang著 邱仲潘 等譯 SYBEX 電子工業(yè)出版社

《Linux in a Nutshell》,Ellen Siever,Stepben Spainbour,Stepben

RPM的使用--詳細(xì)演示安裝,刪除和查詢


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

【本文對您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 东安县| 渭源县| 普兰店市| 桓台县| 双流县| 鄂伦春自治旗| 堆龙德庆县| 宜丰县| 铜鼓县| 淮安市| 康马县| 河南省| 金坛市| 湄潭县| 扬州市| 湟中县| 徐汇区| 渭南市| 丹东市| 中山市| 岗巴县| 体育| 阿城市| 永川市| 沙雅县| 墨玉县| 渑池县| 广丰县| 周宁县| 上饶市| 东宁县| 甘德县| 甘泉县| 鹿邑县| 莒南县| 湖口县| 宁国市| 沐川县| 福安市| 东安县| 平凉市|