0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Linux下如何安裝和卸載rpm工具

阿銘linux ? 來源:阿銘linux ? 作者:阿銘linux ? 2022-11-06 22:07 ? 次閱讀

在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 Buildsys 
Vendor : 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

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    linux服務(wù)器穩(wěn)定性壓?測(cè)試?具stress安裝使?介紹

    linux 服務(wù)器穩(wěn)定性壓?測(cè)試?具 stress 安裝使?介紹 一、簡(jiǎn)介 1、stress?具是Linux下一款壓?測(cè)試?具, 可以模擬系統(tǒng)?負(fù)載運(yùn)? , 同時(shí)可協(xié)助我們進(jìn)?軟件穩(wěn)
    的頭像 發(fā)表于 01-15 09:25 ?86次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>下</b>服務(wù)器穩(wěn)定性壓?測(cè)試?具stress<b class='flag-5'>安裝</b>使?介紹

    添加一個(gè)制作rpm包直接升級(jí)的參考方式

    查看當(dāng)前版本 # ssh -VOpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 升級(jí)需要以下幾個(gè)服務(wù)器,沒有就安裝 # rpm -qa|grep
    的頭像 發(fā)表于 12-31 10:52 ?89次閱讀

    LDC1101 EVM GUI軟件卸載安裝不上是怎么回事?

    LDC1101卸載再次安裝出現(xiàn)
    發(fā)表于 12-03 08:40

    【藍(lán)橋杯單片機(jī)】第二章 開發(fā)環(huán)境與工具安裝

    本章介紹單片機(jī)設(shè)計(jì)與開發(fā)項(xiàng)目的開發(fā)環(huán)境與工具。以下是所需要安裝的軟件以及附加的強(qiáng)力卸載軟件:下面跟著教程來進(jìn)行開發(fā)環(huán)境的配置與安裝:第一節(jié)keil5
    的頭像 發(fā)表于 10-30 08:00 ?488次閱讀
    【藍(lán)橋杯單片機(jī)】第二章 開發(fā)環(huán)境與<b class='flag-5'>工具</b>的<b class='flag-5'>安裝</b>

    手機(jī)頻繁卸載安裝軟件到底會(huì)不會(huì)影響手機(jī)性能

    我們想要知道頻繁的安裝APP會(huì)不會(huì)對(duì)手機(jī)造成傷害,就首先需要了解,頻繁的安裝卸載主要是對(duì)那個(gè)硬件進(jìn)行操作。
    的頭像 發(fā)表于 10-24 17:22 ?2.4w次閱讀

    linux操作系統(tǒng)安裝步驟 linux操作系統(tǒng)的特點(diǎn)及組成

    Linux操作系統(tǒng)安裝步驟 Linux操作系統(tǒng)是一種開源的操作系統(tǒng),它以其穩(wěn)定性、安全性和靈活性而聞名。以下是安裝Linux操作系統(tǒng)的一般步
    的頭像 發(fā)表于 10-21 11:24 ?617次閱讀

    linux驅(qū)動(dòng)程序如何加載進(jìn)內(nèi)核

    ,需要了解Linux內(nèi)核的基本概念和API。以下是一些關(guān)鍵概念: 1.1 內(nèi)核模塊:Linux內(nèi)核模塊是一種動(dòng)態(tài)加載和卸載的代碼,可以不重新啟動(dòng)系統(tǒng)的情況
    的頭像 發(fā)表于 08-30 15:02 ?529次閱讀

    ubuntu 24.04嘗試使用riscv64-linux-musleabi_for_x86_64-pc-linux-gnu工具鏈編譯cv1800大核出現(xiàn)報(bào)錯(cuò)的原因?

    ubuntu 24.04嘗試使用riscv64-linux-musleabi_for_x86_64-pc-linux-gnu工具鏈編譯cv1800大核,結(jié)果出現(xiàn)如下報(bào)錯(cuò): /ho
    發(fā)表于 07-16 08:20

    Linux環(huán)境Arduino開發(fā)板管理器中安裝esp32模塊提示操作系統(tǒng)沒有openocd-esp32工具如何解決?

    Linux環(huán)境Arduino開發(fā)板管理器中安裝esp32模塊提示你的操作系統(tǒng)沒有 openocd-esp32 工具,這個(gè)問題如何解決?
    發(fā)表于 06-06 08:11

    Windows 10更新出現(xiàn)0x800f0922錯(cuò)誤,卸載Microsoft Edge后無法安裝

    具體地講,使用Windows 10 22H2與23H2版操作系統(tǒng)且已卸載Edge瀏覽器的用戶,嘗試安裝KB5032190累積更新的過程中,往往會(huì)遭遇0x800f0922錯(cuò)誤,表示CBS_E_INSTALLERS_FAILED(
    的頭像 發(fā)表于 02-21 15:37 ?1419次閱讀

    如何使用linuxgdb來調(diào)試python程序

    如何使用linuxgdb來調(diào)試python程序? Linux,可以使用GDB(GNU調(diào)試器)來調(diào)試Python程序。GDB是一個(gè)強(qiáng)大的
    的頭像 發(fā)表于 01-31 10:41 ?2682次閱讀

    PSoC5.4卸載程序所在cypress文件后,重新安裝時(shí)會(huì)跳轉(zhuǎn)到卸載界面,最后安裝失敗的原因?

    卸載程序所在cypress文件后,重新安裝時(shí)會(huì)跳轉(zhuǎn)到卸載界面,最后安裝失敗。請(qǐng)問是什么原因?需要怎么解決嗎?
    發(fā)表于 01-26 07:16

    arm開發(fā)板如何安裝linux系統(tǒng)

    安裝Linux系統(tǒng)到ARM開發(fā)板是一個(gè)復(fù)雜的過程,涉及到多個(gè)步驟和不同的工具。下面是一個(gè)詳實(shí)且細(xì)致的教程,包含了從準(zhǔn)備工作到最終啟動(dòng)Linux系統(tǒng)的所有步驟。 準(zhǔn)備工作
    的頭像 發(fā)表于 01-24 14:19 ?3865次閱讀

    Linux常見的十幾款CPU監(jiān)控工具

    今天浩道跟大家分享運(yùn)維工作中,Linux常見的十幾款CPU監(jiān)控工具,你可能只會(huì)用到其中某些,但是個(gè)人覺得作為一個(gè)資深運(yùn)維,你要知道有這些工具可以監(jiān)控CPU。
    的頭像 發(fā)表于 01-22 09:19 ?2497次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b>常見的十幾款CPU監(jiān)控<b class='flag-5'>工具</b>

    紅帽發(fā)布AI新工具:利用AI模型解析RPM構(gòu)建失敗原因

    對(duì)Linux操作系統(tǒng)有所了解的人應(yīng)該清楚,RPM(Red Hat Package Manager)作為互聯(lián)網(wǎng)下載包的打包與安裝工具,能產(chǎn)生.RPM后綴的文件。Red Hat用戶可通過此
    的頭像 發(fā)表于 01-18 10:12 ?645次閱讀