在Windows系統(tǒng)下安裝軟件很簡(jiǎn)單,只要雙擊后綴為.exe的文件,然后根據(jù)提示連續(xù)單擊“下一步”按鈕即可。然而在Linux系統(tǒng)下安裝軟件就沒那么容易了,因?yàn)槲覀儾皇窃趫D形界面下。所以,你必須學(xué)會(huì)如何在Linux下安裝軟件。
前面我們多次提到了yum命令,它是Red Hat所特有的安裝RPM程序包的工具。使用RPM工具安裝某一個(gè)程序包時(shí),有可能會(huì)因?yàn)樵摮绦虬蕾嚵硪粋€(gè)程序包而無法安裝;而使用yum工具時(shí),就可以連同依賴的程序包一起安裝,很方便。在Rocky里使用yum工具是免費(fèi)的,但在Red Hat里,使用yum工具需要付費(fèi)。在介紹yum工具之前,我們先來了解一下RPM。
10.1RPM工具
RPM是Red Hat Package Manager的縮寫,由Red Hat公司開發(fā)。它是以一種數(shù)據(jù)庫(kù)記錄的方式將我們所需要的套件安裝到Linux主機(jī)的一套管理程序。也就是說,你的Linux系統(tǒng)中存在著一個(gè)關(guān)于RPM的數(shù)據(jù)庫(kù),它記錄了安裝的包以及包與包之間的依賴關(guān)系。RPM包是預(yù)先在Linux機(jī)器上編譯并打包的文件,安裝非??旖荨5灿幸恍┤秉c(diǎn),比如安裝環(huán)境必須與編譯時(shí)的環(huán)境一致或者相當(dāng),包與包之間存在著相互依賴的情況,卸載包時(shí)需要先把依賴的包卸載。如果依賴的包是系統(tǒng)所必需的,就不能卸載這個(gè)包,否則系統(tǒng)會(huì)崩潰。
下面阿銘會(huì)到網(wǎng)絡(luò)上下載rpm文件,請(qǐng)?jiān)谀愕臑g覽器里打開該網(wǎng)址:https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/Packages/a/,這些rpm后綴的文件就是RPM包。
每個(gè)RPM包的名稱都由-和.分成了若干部分。比如在acl-2.2.53-1.el8.x86_64.rpm包中,acl為包名,2.2.53為版本信息,1.el8為發(fā)布版本號(hào),x86_64為運(yùn)行平臺(tái)。常見的運(yùn)行平臺(tái)有i386、i586、i686和x86_64。需要注意的是,CPU目前分32位和64位,i386、i586和i686都為32位平臺(tái),x86_64則為64位平臺(tái)。另外,有些RPM包并沒有寫具體的平臺(tái)而是noarch(如adcli-doc-0.8.2-12.el8.noarch.rpm),這說明這個(gè)RPM包沒有硬件平臺(tái)限制。
下面介紹一下RPM工具常用的命令。
10.1.1安裝RPM包
安裝RPM包的命令如下:
#yuminstall–ywget//安裝wget命令,wget為下載工具 #wget http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/at-3.1.20-11.el8.x86_64.rpm #rpm-ivhat-3.1.20-11.el8.x86_64.rpm Verifying... ################################# [100%] 準(zhǔn)備中... ################################# [100%] 正在升級(jí)/安裝... 1:at-3.1.20-11.el8 ################################# [100%]
其中各個(gè)選項(xiàng)的含義如下。
-i:表示安裝。
-v:表示可視化。
-h:表示顯示安裝進(jìn)度。
當(dāng)然,rpm工具也支持直接通過網(wǎng)絡(luò)安裝rpm包,如下所示:
#rpm-ivhhttp://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/bc-1.07.1-5.el8.x86_64.rpm 獲取http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/bc-1.07.1-5.el8.x86_64.rpm Verifying... ################################# [100%] 準(zhǔn)備中... ################################# [100%] 正在升級(jí)/安裝... 1:bc-1.07.1-5.el8 ################################# [100%]
另外,在安裝RPM包時(shí),常用的附帶參數(shù)還包括如下幾項(xiàng)。
--force:表示強(qiáng)制安裝,即使覆蓋屬于其他包的文件也要安裝。
--nodeps:表示當(dāng)要安裝的RPM包依賴于其他包時(shí),即使其他包沒有安裝,也要安裝這個(gè)包。
10.1.2升級(jí)RPM包
升級(jí)RPM包的命令為rpm -Uvh filename,其中-U選項(xiàng)表示升級(jí)。
10.1.3卸載RPM包
卸載RPM包的命令為rpm -e filename, 這里的filename是通過rpm的查詢功能所查詢到的,稍后會(huì)作介紹。下面先查找一個(gè)已經(jīng)安裝的包,然后使用-e選項(xiàng)卸載它。示例命令如下:
#rpm-qaat at-3.1.20-11.el8.x86_64 #rpm-eat
卸載時(shí),-e選項(xiàng)后面的filename和安裝時(shí)是有區(qū)別的。安裝時(shí),是把一個(gè)存在的文件作為參數(shù),而卸載時(shí)只需要包名即可。
10.1.4查詢一個(gè)包是否已安裝
查詢一個(gè)包的命令為rpm -q RPM包名,這里的“包名”是不帶平臺(tái)信息和后綴名的。示例命令如下:
#rpm-qat 未安裝軟件包at #rpm-ivhat-3.1.20-11.el8.x86_64.rpm Verifying...################################# [100%] 準(zhǔn)備中... ################################# [100%] 正在升級(jí)/安裝... 1:at-3.1.20-11.el8 ################################# [100%] #rpm-qat at-3.1.20-11.el8.x86_64
我們可以使用命令rpm -qa查詢當(dāng)前系統(tǒng)所有已安裝的RPM包,限于篇幅,這里只列出前10個(gè),如下所示:
#rpm-qa|head libevent-2.1.8-5.el8.x86_64 geolite2-city-20180605-1.el8.noarch rpm-plugin-selinux-4.14.2-25.el8.x86_64 centos-gpg-keys-8.1-1.1911.0.8.el8.noarch python3-unbound-1.7.3-8.el8.x86_64 filesystem-3.8-2.el8.x86_64 python3-dateutil-2.6.1-6.el8.noarch ncurses-base-6.1-7.20180224.el8.noarch python3-libselinux-2.9-2.1.el8.x86_64 glibc-langpack-zh-2.28-72.el8.x86_64
10.1.5得到一個(gè)已安裝的RPM包的相關(guān)信息
要得到一個(gè)已安裝RPM包的相關(guān)信息,可以使用命令rpm -qi 包名,這里也不需要加平臺(tái)信息和后綴名。示例命令如下:
# rpm -qi at Name : at Version : 3.1.20 Release : 11.el8 Architecture: x86_64 Install Date: 2020年02月06日星期四 03時(shí)12分20秒 Group : System Environment/Daemons Size : 131790 License : GPLv3+ and GPLv2+ and ISC and MIT and Public Domain Signature : RSA/SHA256, 2019年07月01日星期一 16時(shí)40分54秒, Key ID 05b555b38483c65d Source RPM : at-3.1.20-11.el8.src.rpm Build Date : 2019年05月11日星期六 09時(shí)12分23秒 Build Host : x86-02.mbox.centos.org Relocations : (not relocatable) Packager : CentOS BuildsysVendor : CentOS URL : http://ftp.debian.org/debian/pool/main/a/at Summary : Job spooling tools Description : At and batch read commands from standard input or from a specified file. At allows you to specify that a command will be run at a particular time. Batch will execute commands when the system load levels drop to a particular level. Both commands use user's shell. You should install the at package if you need a utility for time-oriented job control. Note: If it is a recurring job that will need to be repeated at the same time every day/week, etc. you should use crontab instead.
10.1.6列出一個(gè)RPM包的安裝文件
列出一個(gè)RPM包的安裝文件的命令為rpm -ql 包名,示例命令如下:
# rpm -ql at /etc/at.deny /etc/pam.d/atd /etc/sysconfig/atd /usr/bin/at /usr/bin/atq /usr/bin/atrm /usr/bin/batch /usr/lib/.build-id /usr/lib/.build-id/5b /usr/lib/.build-id/5b/62f43486550b03dd4fc8620421cdb5a191ddcf /usr/lib/.build-id/83 /usr/lib/.build-id/83/49b3653cd2bee7e0d8c391862f7c0dd2de32c9 /usr/lib/systemd/system/atd.service /usr/sbin/atd /usr/sbin/atrun /usr/share/doc/at /usr/share/doc/at/ChangeLog /usr/share/doc/at/README /usr/share/doc/at/timespec /usr/share/licenses/at /usr/share/licenses/at/COPYING /usr/share/licenses/at/Copyright /usr/share/man/man1/at.1.gz /usr/share/man/man1/atq.1.gz /usr/share/man/man1/atrm.1.gz /usr/share/man/man1/batch.1.gz /usr/share/man/man5/at.allow.5.gz /usr/share/man/man5/at.deny.5.gz /usr/share/man/man8/atd.8.gz /usr/share/man/man8/atrun.8.gz /var/spool/at /var/spool/at/.SEQ /var/spool/at/spool
通過上面的命令可以看出,文件/usr/sbin/atrun是通過安裝at這個(gè)RPM包得來的。那么,如何通過文件去查找它的RPM包呢?
10.1.7列出某個(gè)文件屬于哪個(gè)RPM包
列出某個(gè)文件屬于哪個(gè)RPM包的命令為rpm -qf 文件的絕對(duì)路徑,示例命令如下:
#rpm-qf/usr/sbin/atrun at-3.1.20-11.el8.x86_64
審核編輯:郭婷
-
Linux
+關(guān)注
關(guān)注
87文章
11326瀏覽量
209961 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3553瀏覽量
88985
原文標(biāo)題:第10章 在Linux下如何安裝和卸載軟件——rpm工具
文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論