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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

在Windows系統(tǒng)下安裝軟件很簡單,只要雙擊后綴為.exe的文件,然后根據(jù)提示連續(xù)單擊“下一步”按鈕即可。然而在Linux系統(tǒng)下安裝軟件就沒那么容易了,因為我們不是在圖形界面下。所以,你必須學會如何在Linux下安裝軟件。

前面我們多次提到了yum命令,它是Red Hat所特有的安裝RPM程序包的工具。使用RPM工具安裝某一個程序包時,有可能會因為該程序包依賴另一個程序包而無法安裝;而使用yum工具時,就可以連同依賴的程序包一起安裝,很方便。在Rocky里使用yum工具是免費的,但在Red Hat里,使用yum工具需要付費。在介紹yum工具之前,我們先來了解一下RPM。

10.1RPM工具

RPM是Red Hat Package Manager的縮寫,由Red Hat公司開發(fā)。它是以一種數(shù)據(jù)庫記錄的方式將我們所需要的套件安裝到Linux主機的一套管理程序。也就是說,你的Linux系統(tǒng)中存在著一個關于RPM的數(shù)據(jù)庫,它記錄了安裝的包以及包與包之間的依賴關系。RPM包是預先在Linux機器上編譯并打包的文件,安裝非??旖?。但它也有一些缺點,比如安裝環(huán)境必須與編譯時的環(huán)境一致或者相當,包與包之間存在著相互依賴的情況,卸載包時需要先把依賴的包卸載。如果依賴的包是系統(tǒng)所必需的,就不能卸載這個包,否則系統(tǒng)會崩潰。

下面阿銘會到網(wǎng)絡上下載rpm文件,請在你的瀏覽器里打開該網(wǎng)址:https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/Packages/a/,這些rpm后綴的文件就是RPM包。

每個RPM包的名稱都由-和.分成了若干部分。比如在acl-2.2.53-1.el8.x86_64.rpm包中,acl為包名,2.2.53為版本信息,1.el8為發(fā)布版本號,x86_64為運行平臺。常見的運行平臺有i386、i586、i686和x86_64。需要注意的是,CPU目前分32位和64位,i386、i586和i686都為32位平臺,x86_64則為64位平臺。另外,有些RPM包并沒有寫具體的平臺而是noarch(如adcli-doc-0.8.2-12.el8.noarch.rpm),這說明這個RPM包沒有硬件平臺限制。

下面介紹一下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%]
準備中...                          #################################
[100%]
正在升級/安裝...
 1:at-3.1.20-11.el8                ################################# [100%]

其中各個選項的含義如下。

-i:表示安裝。

-v:表示可視化。

-h:表示顯示安裝進度。

當然,rpm工具也支持直接通過網(wǎng)絡安裝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%]
準備中...                          #################################
[100%]
正在升級/安裝...
 1:bc-1.07.1-5.el8                 ################################# [100%]

另外,在安裝RPM包時,常用的附帶參數(shù)還包括如下幾項。

--force:表示強制安裝,即使覆蓋屬于其他包的文件也要安裝。

--nodeps:表示當要安裝的RPM包依賴于其他包時,即使其他包沒有安裝,也要安裝這個包。

10.1.2升級RPM包

升級RPM包的命令為rpm -Uvh filename,其中-U選項表示升級。

10.1.3卸載RPM包

卸載RPM包的命令為rpm -e filename, 這里的filename是通過rpm的查詢功能所查詢到的,稍后會作介紹。下面先查找一個已經(jīng)安裝的包,然后使用-e選項卸載它。示例命令如下:

#rpm-qaat
at-3.1.20-11.el8.x86_64
#rpm-eat

卸載時,-e選項后面的filename和安裝時是有區(qū)別的。安裝時,是把一個存在的文件作為參數(shù),而卸載時只需要包名即可。

10.1.4查詢一個包是否已安裝

查詢一個包的命令為rpm -q RPM包名,這里的“包名”是不帶平臺信息和后綴名的。示例命令如下:

#rpm-qat
未安裝軟件包at
#rpm-ivhat-3.1.20-11.el8.x86_64.rpm
Verifying...################################# [100%]
準備中...                         ################################# [100%]
正在升級/安裝...
 1:at-3.1.20-11.el8                ################################# [100%]
#rpm-qat
at-3.1.20-11.el8.x86_64

我們可以使用命令rpm -qa查詢當前系統(tǒng)所有已安裝的RPM包,限于篇幅,這里只列出前10個,如下所示:

#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得到一個已安裝的RPM包的相關信息

要得到一個已安裝RPM包的相關信息,可以使用命令rpm -qi 包名,這里也不需要加平臺信息和后綴名。示例命令如下:

# rpm -qi at
Name : at
Version : 3.1.20
Release : 11.el8
Architecture:
x86_64
Install
Date: 2020年02月06日星期四 03時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時40分54秒, Key ID 05b555b38483c65d
Source
RPM : at-3.1.20-11.el8.src.rpm
Build
Date : 2019年05月11日星期六 09時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列出一個RPM包的安裝文件

列出一個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這個RPM包得來的。那么,如何通過文件去查找它的RPM包呢?

10.1.7列出某個文件屬于哪個RPM包

列出某個文件屬于哪個RPM包的命令為rpm -qf 文件的絕對路徑,示例命令如下:

#rpm-qf/usr/sbin/atrun
at-3.1.20-11.el8.x86_64

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11123

    瀏覽量

    207894
  • WINDOWS
    +關注

    關注

    3

    文章

    3503

    瀏覽量

    87879

原文標題:第10章 在Linux下如何安裝和卸載軟件——rpm工具

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    linux驅動程序如何加載進內核

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

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

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

    如何使用linuxgdb來調試python程序

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

    PSoC5.4卸載程序所在cypress文件后,重新安裝時會跳轉到卸載界面,最后安裝失敗的原因?

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

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

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

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

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

    linux備份還原工具有哪些?

    Linux備份還原工具是用于Linux系統(tǒng)上進行數(shù)據(jù)備份和還原操作的軟件或工具。它們提供了一種簡單、有效和可靠的方式來保護數(shù)據(jù)免受丟失、損
    的頭像 發(fā)表于 11-23 10:06 ?1214次閱讀

    linux docker安裝部署

    了解如何在Linux安裝和部署Docker。 一、安裝Docker 開始之前,請確保您的Linux系統(tǒng)滿足以下要求: 64位版本的
    的頭像 發(fā)表于 11-23 09:27 ?859次閱讀

    linux安裝網(wǎng)卡驅動教程

    Linux系統(tǒng)中安裝網(wǎng)卡驅動是一個比較基礎的操作,下面我將為你詳細講解如何安裝網(wǎng)卡驅動。 第一步,檢查網(wǎng)卡型號和驅動支持情況:首先,你需要確定你的網(wǎng)卡型號,并查看該網(wǎng)卡型號
    的頭像 發(fā)表于 11-17 11:11 ?3378次閱讀

    Windows編譯工具CMake的安裝和最簡使用

    (Autosar工程已經(jīng)很復雜,一般使用CMake來構建工程)。本文將介紹Windows編譯工具CMake的安裝和最簡使用。
    的頭像 發(fā)表于 11-14 10:18 ?6103次閱讀
    Windows<b class='flag-5'>下</b>編譯<b class='flag-5'>工具</b>CMake的<b class='flag-5'>安裝</b>和最簡使用

    Linux如何使用CMake編譯程序

    拿到其它平臺上使用,無需修改,非常方便。 本文主要講述Linux如何使用CMake來編譯我們的程序。 一 環(huán)境搭建 我使用的是ubuntu18.04,安裝cmake使用如下命令:
    的頭像 發(fā)表于 11-08 16:15 ?4786次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Linux</b><b class='flag-5'>下</b>如何使用CMake編譯程序

    Linux的stress-ng壓力測試工具介紹

    今天浩道跟大家分享Linux下一款強大的壓力測試工具------stress-ng,這款測試工具對于運維工程師或者測試工程師,還是比較受歡迎的。本文帶你安裝部署,并且列舉出它常用的測試
    的頭像 發(fā)表于 11-03 09:31 ?6339次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b>的stress-ng壓力測試<b class='flag-5'>工具</b>介紹

    labview卸載工具

    labview卸載工具 ?卸載比較干凈
    發(fā)表于 10-20 17:42 ?5次下載

    Linux驅動加載卸載模塊命令

    ,相對于insmod來講更智能。執(zhí)行該命令前最好運行一次depmod命令來更新模塊的依賴信息,使用modprobe不指定路徑和后綴,例如: # depmod # modprobe drv 模塊卸載
    的頭像 發(fā)表于 09-26 16:54 ?796次閱讀

    Linux中使用RT-Thread Env工具的簡明指南

    Env 是 RT-Thread 對源碼進行配置和裁剪、生成工程的工具,然而文檔中的配置過程主要針對 Windows 系統(tǒng),并沒有對 Linux 系統(tǒng)的配置進行詳細的介紹,這里簡要介紹其 Li
    的頭像 發(fā)表于 09-26 14:26 ?1078次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Linux</b>中使用RT-Thread Env<b class='flag-5'>工具</b>的簡明指南