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

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

系統 2140 0

作者:張子堅

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

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

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

安裝與升級是管理RPM包的根本。安裝RPM包時,就是在系統中增加新軟件。升級RPM包時,就是在相關軟件中更新最新的特性。

一個包就是一個文件,其中包含了安裝一個應用所需的多個文件。盡管包中包含了安裝時所需的文件,但是應用程序為了能運行可能還需要其他文件的存在或其他未包含包的存在,如特定的庫。這樣的需求就是包的依賴性(dependency)。如,內核源代碼RPM包要有GNU C語言編譯器。由于內核源代碼具有依賴性,因此要先安裝GNU C語言編譯器,再安裝內核源代碼。

任何用戶都可以列出或查詢包。但是,安裝,升級或刪除包通常需要超級用戶的特權。這是因為包通常安裝在系統級目錄下,該目錄只對root(超級用戶)是可寫的。有時,也可以指定一個目錄。把把安裝在你的主目錄或者你擁有寫權限的目錄下。

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

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

RPM包的建立,安裝和查詢是用rpm命令進行的。RPM包的名字通常以.rpm擴展名結束。rpm有一組模式,每種模式都有自己的選項。

rpm命令的格式為:

rpm [options] [packages]

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

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

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

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

以下為rpm --showrc命令顯示的節選:

示例:

此為部分顯示結果

[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安裝或查詢一個包。只要這里給出的命令中指定了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%]

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

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

--dbpath path

用path作為RPM數據庫的路徑。

--ftpport prot

用port作為FTP端口。

--ftpproxy host

用host作為所有傳輸的代理服務器。如果你通過使用代理的防火墻系統連到FTP,就要指定該選項。

--help

輸出一個長的使用信息(如果運行rpm時沒有選項,則給出短的使用信息)。

--justdb

只更新數據庫;不改變任何文件。

--pipe command

用管道把rpm輸出到commond。

--quiet

僅顯示錯誤信息。

--rcfile filename

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

--root dir

在dir目錄內執行所有操作。

--version

輸出rpm版本號。

-vv

輸出調試信息。

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

安裝升級和刷新

安裝或升級一個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

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

為了安裝一個包的新版本,同時刪除現有版本,使用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的一個特點是如果包在系統上不存在,其作用就與-i選項一樣,即安裝包。

與-U的特點不一樣,刷新(freshen)一個包,是指在已經安裝了舊有版本時rpm才升級包。

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

刷新的語法是:

rpm -F [install-options] package_file

rpm --freshen [install-options] package_file

示例:

從未安裝過lynx包,使用-F選項,將無法升級。

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

[root@localhost ~]# rpm -q lynx

package lynx is not installed

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

安裝和更新選項為:

--allfiles

安裝或更新所有文件。

--badreloc

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

--excludedocs

不安裝任何文檔文件。

--excludepath path

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

--force

強制安裝。等價于使用--replacepkgs,--replacefiles和--oldpackage。

-h,--hash

當包檔案被解包時打印50個散列標記。使用--version選項以進行更好的顯示。

--ignorearch

即使二進制包用于不同的體系結果也進行安裝。

--ignoreos

即使操作系統不匹配也安裝二進制包。

--ignoresize

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

--includedocs

安裝文檔文件。只有在rpmrc文件中指定了excludedocs:1時,才需要這個選項。

--nodeps

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

--noorder

安裝之前,不為了滿足依賴關系而對包進行重新排序。

--noscripts

不執行任何預安裝或后安裝腳本。

--notriggers

不執行任何由包安裝觸發的腳本。

--oldpackage

允許升級以用舊包替換新包。

--percent

當文件被解壓時輸出完成百分比的信息。

--prefix path

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

--replacefiles

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

--replacepkgs

即使某些包已經被安裝,也安裝他們。

--test

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

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

查詢

query命令的語法為:

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

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

查詢選項有兩個子集:包選擇選項決定查詢什么包,信息選擇選項決定提供什么信息。

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

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

簡單查詢:

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

示例:

[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時52分16秒

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

Group : 應用程序/互聯網 Source RPM: lynx-2.8.5-18.src.rpm

Size : 4837340 License: GPL

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

Packager : Red Hat, Inc.

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

Summary : 一個基于文本的網頁瀏覽器。

Description :

Lynx 是一個基于文本的 萬維網 瀏覽器。Lynx不顯示任何

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

標簽。Lynx 優于圖形化瀏覽器的地方是它的速度――

Links 能夠快速啟動、退出、及顯示網頁。

標識擁有者

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

找出什么包擁有文件file:

示例:

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

lynx-2.8.5-18

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

列表包中的文件:

如果對一個包不夠了解,則可以用rpm -ql packagename命令列出包中的文件。這個表中確認某個配置文件或命令是否在這個包中。如果要升級,這個信息有助于了解升級有什么風險。

示例:

此為部分顯示結果

[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

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

列出包所提供的實際能力:

--provides選項的作用是列出這個包所提供的實際能力。

示例:

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

config(lynx) = 2.8.5-18

webclient

lynx = 2.8.5-18

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

列出這個包所倚賴的任何包:

-R,--requires選項的作用是列出這個包所依賴的任何包。

示例:

[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選項的作用是列出包中的配置文件

示例:

[root@localhost ~]# rpm -qc lynx

/etc/lynx-site.cfg

/etc/lynx.cfg

/etc/lynx.cfg.cs

/etc/lynx.cfg.ja

/etc/lynx.cfg.sk

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

顯示有關于包的改變信息的日志:

--changllog選項的作用是顯示有關于包的改變信息的日志。

示例:

此為部分顯示結果

[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).

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

包選擇選項

package_name

查詢已安裝包的package_name。

-a,--all

查詢所有已安裝撥。

-f file,--file file

找出什么包擁有文件file。

-g group,--group group

找出什么包擁有組group。

-p package_file

查詢未安裝包package_file

--querybynumber num

查詢第num個數據庫條目。主要用于調試。

-qf,--queryformat num

指定顯示查詢結果時所采用的格式,使用標記來表示不同的數據類型(NAME,FILENAME,DISTRIBUTION)。格式說明是標準printf格式化的一個變體。

--specfile specfile

查詢specfile,就好象它是個包

--triggeredby pkg

列出觸發安裝pkg包的包。

--whatrequires capability

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

--whatprovides capability

列出提供特定能力的包。

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

信息選擇選項:

-c,--configfiles

列出包中的配置文件。

--changelog

顯示有關于包的改變信息的日志。

-d,--docfiles

列出包中的文檔文件。

--dump

轉儲包中每個文件的信息。這個選項必須至少與-l,-c或-d之一共同使用。

以下列順序輸出信息:

path size mtime md5sum mode owner group isconfig isdoc rdev symlink

--filebypkg

列出每個包中的所有文件。

-i

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

-l,--list

列出包中所有文件

--last

根據安裝時間列出包,最新的包排第一位。

--provides

列出這個包所提供的實際能力。

-R,--requires

列出這個包所依賴的任何包。

-s,--state

列出包中的每個文件及其狀態。可能的狀態為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

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

卸載選項為:

--allmatches

刪除包的所有版本。應該只指定一個包,否則會導致錯誤。

--nodeps

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

--noscripts

不執行任何預卸載和后卸載腳本。

--notriggers

不執行任何由這個包的刪除而出發的腳本。

--test

不真正卸載任何包,僅僅查看活動過程。

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

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

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

參考文獻:

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

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

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品一区二区在线欧美日韩 | julia在线视频 | 中文字幕在线观看不卡 | 五月婷婷综合激情网 | 午夜香蕉 | 伊人一区 | 狠狠地射| 日韩免费一级毛片欧美一级日韩片 | 免费一级毛片清高播放 | 成年黄页免费大全网站 | 色播五月激情五月 | 奇米影视奇米色 | 色婷在线| 97影院网 | 亚洲成人免费视频在线 | 国产成人啪午夜精品网站 | 成人a毛片免费视频观看 | 波多野结衣精品中文字幕 | 久草视频中文 | 爱爱视频在线免费观看 | 亚洲视频免费观看 | 亚洲看片| 国产精品久久久久免费a∨ 国产精品久久久久免费视频 | 久久综合九色综合91 | 九九热这里只有国产精品 | 久久国产大片 | 亚洲欧美色综合精品 | 色天天综合 | www久久精品 | 国产成人小视频在线观看 | 日本欧美一二三区色视频 | 一道本不卡免费视频 | 岛国大片免费在线观看 | 亚洲另类中文字幕 | 一区二区中文字幕亚洲精品 | 四虎地址8848jia | 午夜视频福利在线观看 | 色综合久久久久久久久久久 | 成人久久 | 国产青青青 | 农村寡妇一级毛片免费播放 |