?? rpm
字號:
一、安裝命令格式:rpm -i ( or --install) options file1.rpm ... fileN.rpm參數(shù):file1.rpm ... fileN.rpm 將要安裝的RPM包的文件名*** 如何安裝.src.rpm軟件包有些軟件包是以.src.rpm結(jié)尾的,這類軟件包是包含了源代碼的rpm包,在安裝時需要進(jìn)行編譯。這類軟件包有兩種安裝方法,方法一:1.執(zhí)行rpm -i your-package.src.rpm2. cd /usr/src/redhat/SPECS3. rpmbuild -bp your-package.specs 一個和你的軟件包同名的specs文件4. cd /usr/src/redhat/BUILD/your-package/ 一個和你的軟件包同名的目錄5. ./configure 這一步和編譯普通的源碼軟件一樣,可以加上參數(shù)6. make7. make install方法二:1.執(zhí)行rpm -i you-package.src.rpm2. cd /usr/src/redhat/SPECS前兩步和方法一相同3. rpmbuild -bb your-package.specs 一個和你的軟件包同名的specs文件這時,在/usr/src/redhat/RPM/i386/ (根據(jù)具體包的不同,也可能是i686,noarch等等)在這個目錄下,有一個新的rpm包,這個是編譯好的二進(jìn)制文件。執(zhí)行rpm -i new-package.rpm即可安裝完成。詳細(xì)選項:-h (or --hash) 安裝時輸出hash記號 (``#'') --test 只對安裝進(jìn)行測試,并不實際安裝。--percent 以百分比的形式輸出安裝的進(jìn)度。--excludedocs 不安裝軟件包中的文檔文件--includedocs 安裝文檔--replacepkgs 強制重新安裝已經(jīng)安裝的軟件包--replacefiles 替換屬于其它軟件包的文件--force 忽略軟件包及文件的沖突--noscripts 不運行預(yù)安裝和后安裝腳本--prefix <path>; 將軟件包安裝到由 <path>; 指定的路徑下--ignorearch 不校驗軟件包的結(jié)構(gòu)--ignoreos 不檢查軟件包運行的操作系統(tǒng)--nodeps 不檢查依賴性關(guān)系--ftpproxy <host>; 用 <host>; 作為 FTP代理 --ftpport <port>; 指定FTP的端口號為 <port>;二、刪除命令格式:rpm -e ( or --erase) options pkg1 ... pkgN參數(shù)pkg1 ... pkgN :要刪除的軟件包詳細(xì)選項--test 只執(zhí)行刪除的測試--noscripts 不運行預(yù)安裝和后安裝腳本程序--nodeps 不檢查依賴性三、升級命令格式rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm參數(shù)file1.rpm ... fileN.rpm 軟件包的名字詳細(xì)選項-h (or --hash) 安裝時輸出hash記號 (``#'') --oldpackage 允許"升級"到一個老版本--test 只進(jìn)行升級測試--excludedocs 不安裝軟件包中的文檔文件--includedocs 安裝文檔--replacepkgs 強制重新安裝已經(jīng)安裝的軟件包--replacefiles 替換屬于其它軟件包的文件--force 忽略軟件包及文件的沖突--percent 以百分比的形式輸出安裝的進(jìn)度。--noscripts 不運行預(yù)安裝和后安裝腳本 --prefix <path>; 將軟件包安裝到由 <path>; 指定的路徑下--ignorearch 不校驗軟件包的結(jié)構(gòu)--ignoreos 不檢查軟件包運行的操作系統(tǒng)--nodeps 不檢查依賴性關(guān)系--ftpproxy <host>; 用 <host>; 作為 FTP代理 --ftpport <port>; 指定FTP的端口號為 <port>;四、查詢命令格式:rpm -q ( or --query) options參數(shù):pkg1 ... pkgN :查詢已安裝的軟件包詳細(xì)選項-p <file>;(or ``-'') 查詢軟件包的文件-f <file>; 查詢<file>;屬于哪個軟件包-a 查詢所有安裝的軟件包--whatprovides <x>; 查詢提供了 <x>;功能的軟件包 -g <group>; 查詢屬于<group>; 組的軟件包--whatrequires <x>; 查詢所有需要 <x>; 功能的軟件包信息選項<null>; 顯示軟件包的全部標(biāo)識-i 顯示軟件包的概要信息-l 顯示軟件包中的文件列表-c 顯示配置文件列表-d 顯示文檔文件列表-s 顯示軟件包中文件列表并顯示每個文件的狀態(tài)--scripts 顯示安裝、卸載、校驗?zāi)_本--queryformat (or --qf) 以用戶指定的方式顯示查詢信息--dump 顯示每個文件的所有已校驗信息 --provides 顯示軟件包提供的功能--requires (or -R) 顯示軟件包所需的功能五、校驗已安裝的軟件包命令格式:rpm -V ( or --verify, or -y) options參數(shù)pkg1 ... pkgN 將要校驗的軟件包名軟件包選項-p <file>; Verify against package file <file>; -f <file>; 校驗<file>;所屬的軟件包-a Verify 校驗所有的軟件包-g <group>; 校驗所有屬于組 <group>; 的軟件包詳細(xì)選項--noscripts 不運行校驗?zāi)_本 --nodeps 不校驗依賴性--nofiles 不校驗文件屬性六、校驗軟件包中的文件語法:rpm -K ( or --checksig) options file1.rpm ... fileN.rpm參數(shù):file1.rpm ... fileN.rpm 軟件包的文件名Checksig--詳細(xì)選項--nopgp 不校驗PGP簽名 七、其它RPM選項--rebuilddb 重建RPM資料庫--initdb 創(chuàng)建一個新的RPM資料庫--quiet 盡可能的減少輸出--help 顯示幫助文件--version 顯示RPM的當(dāng)前版本通用選項-v 顯示附加信息-vv 顯示調(diào)試信息--root <path>; 讓RPM將<path>;指定的路徑做為"根目錄",這樣預(yù)安裝程序和后安裝程序都會安裝到這個目錄下--rcfile <rcfile>; 設(shè)置rpmrc文件為 <rcfile>; --dbpath <path>; 設(shè)置RPM 資料庫存所在的路徑為 <path>;我的實踐1.查看當(dāng)前系統(tǒng)中安裝的所有軟件包#rpm -q -a2.查看當(dāng)前系統(tǒng)中安裝的軟件包名中包含"java"的軟件包#rpm -q -a | grep java3.顯示軟件包的描述信息#rpm -q -i <package>RPM的使用--詳細(xì)演示安裝,刪除和查詢聲明:可以自由轉(zhuǎn)載本文,但請務(wù)必保留本文的完整性。作者:張子堅說明:本文所涉及示例均在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。安裝與升級是管理RPM包的根本。安裝RPM包時,就是在系統(tǒng)中增加新軟件。升級RPM包時,就是在相關(guān)軟件中更新最新的特性。一個包就是一個文件,其中包含了安裝一個應(yīng)用所需的多個文件。盡管包中包含了安裝時所需的文件,但是應(yīng)用程序為了能運行可能還需要其他文件的存在或其他未包含包的存在,如特定的庫。這樣的需求就是包的依賴性(dependency)。如,內(nèi)核源代碼RPM包要有GNU C語言編譯器。由于內(nèi)核源代碼具有依賴性,因此要先安裝GNU C語言編譯器,再安裝內(nèi)核源代碼。任何用戶都可以列出或查詢包。但是,安裝,升級或刪除包通常需要超級用戶的特權(quán)。這是因為包通常安裝在系統(tǒng)級目錄下,該目錄只對root(超級用戶)是可寫的。有時,也可以指定一個目錄。把把安裝在你的主目錄或者你擁有寫權(quán)限的目錄下。--------------------------------------------------------------------------------以下簡要介紹RPM包的安裝,刪除和查詢RPM包的建立,安裝和查詢是用rpm命令進(jìn)行的。RPM包的名字通常以.rpm擴(kuò)展名結(jié)束。rpm有一組模式,每種模式都有自己的選項。rpm命令的格式為:rpm [options] [packages]第一個選項指定rpm模式(安裝,查詢,更新),其他選項影響模式。對包的選項描述中,有時把包指定為package-name,而有時指定為package-file。包的名字是程序名或應(yīng)用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。--------------------------------------------------------------------------------RPM為指定常用的選項提供了配置文件。系統(tǒng)配置文件通常是/etc/rpmrc,而用戶可以建立他們自己的$HOME/.rpmrc文件。你可以用--showrc選項為在rpmrc文件中設(shè)置的所有選項顯示RPM會使用的值。以下為rpm --showrc命令顯示的節(jié)選:示例:此為部分顯示結(jié)果[root@localhost ~]# rpm --showrcARCHITECTURE AND OS:build arch : i386compatible build archs: athlon i686 i586 i486 i386 noarchbuild os : Linuxcompatible build os's : linuxinstall arch : athloninstall os : Linuxcompatible archs : athlon i686 i586 i486 i386 noarchcompatible os's : linuxRPMRC 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:~/.rpmmacrosoptflags : %{__global_cflags} -m32 -march=athlonFeatures 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/fedor ... s/Fedora/RPMS/lynx-*Retrieving ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpmPreparing... ########################################### [100%] 1:lynx ########################################### [100%]--------------------------------------------------------------------------------以下列出一些通用選項(可以用于所有模式):--dbpath path 用path作為RPM數(shù)據(jù)庫的路徑。--ftpport prot 用port作為FTP端口。--ftpproxy host 用host作為所有傳輸?shù)拇矸?wù)器。如果你通過使用代理的防火墻系統(tǒng)連到FTP,就要指定該選項。--help 輸出一個長的使用信息(如果運行rpm時沒有選項,則給出短的使用信息)。--justdb 只更新數(shù)據(jù)庫;不改變?nèi)魏挝募?/span>--pipe command 用管道把rpm輸出到commond。--quiet 僅顯示錯誤信息。--rcfile filename 用filename作為配置文件,而不用系統(tǒng)配置文件/etc/rpmrc或$HOME/.rpmrc。--root dir 在dir目錄內(nèi)執(zhí)行所有操作。--version 輸出rpm版本號。-vv 輸出調(diào)試信息。--------------------------------------------------------------------------------安裝升級和刷新安裝或升級一個RPM包,install命令的語法為:rpm -i [install-options] package_filerpm --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--------------------------------------------------------------------------------為了安裝一個包的新版本,同時刪除現(xiàn)有版本,使用upgrade命令:rpm -U [install-options] package_filerpm --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 lynxlynx-2.8.5-18說明:-U的一個特點是如果包在系統(tǒng)上不存在,其作用就與-i選項一樣,即安裝包。與-U的特點不一樣,刷新(freshen)一個包,是指在已經(jīng)安裝了舊有版本時rpm才升級包。--------------------------------------------------------------------------------刷新的語法是:rpm -F [install-options] package_filerpm --freshen [install-options] package_file示例:從未安裝過lynx包,使用-F選項,將無法升級。[root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm[root@localhost ~]# rpm -q lynxpackage lynx is not installed--------------------------------------------------------------------------------安裝和更新選項為:--allfiles 安裝或更新所有文件。--badreloc 與--relocate一起使用,強制重新定位,即使包不是可重定位的。--excludedocs 不安裝任何文檔文件。--excludepath path 不安裝文件名以path開始的任何文件。--force 強制安裝。等價于使用--replacepkgs,--replacefiles和--oldpackage。-h,--hash 當(dāng)包檔案被解包時打印50個散列標(biāo)記。使用--version選項以進(jìn)行更好的顯示。--ignorearch 即使二進(jìn)制包用于不同的體系結(jié)果也進(jìn)行安裝。--ignoreos 即使操作系統(tǒng)不匹配也安裝二進(jìn)制包。--ignoresize 安裝前不檢查磁盤的可用空間。--includedocs 安裝文檔文件。只有在rpmrc文件中指定了excludedocs:1時,才需要這個選項。--nodeps 不檢查這個包是否依賴于其他包的存在。--noorder 安裝之前,不為了滿足依賴關(guān)系而對包進(jìn)行重新排序。--noscripts 不執(zhí)行任何預(yù)安裝或后安裝腳本。--notriggers 不執(zhí)行任何由包安裝觸發(fā)的腳本。--oldpackage 允許升級以用舊包替換新包。--percent 當(dāng)文件被解壓時輸出完成百分比的信息。--prefix path 把可重定位包的安裝前綴設(shè)置為path。--replacefiles 即使包替換了來自其他安裝包的文件,也安裝這些包。--replacepkgs 即使某些包已經(jīng)被安裝,也安裝他們。--test 檢查安裝過程,看整個過程都做了些什么,但并不真正安裝包。--------------------------------------------------------------------------------查詢query命令的語法為:rpm -q[information-options] [package-options]rpm --query[information-options] [package-options]查詢選項有兩個子集:包選擇選項決定查詢什么包,信息選擇選項決定提供什么信息。--------------------------------------------------------------------------------以下簡單示演示一下包查詢:簡單查詢:最簡單的形式是rpm -q packagename查詢。可以用這個命令尋找以安裝包的版本。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -