Linux RPM包安裝、卸載和升級(rpm命令)詳解

(轉載請刪除括號里的內容)

下面講解一下,如何使用 rpm 命令對 RPM 二進制包進行安裝、卸載和升級操作。我們以安裝 apache 程序為例。

RPM包默認安裝路徑

通常情況下,RPM 包采用系統默認的安裝路徑,所有安裝文件會按照類別分散安裝到下表所示的目錄中。

RPM 包默認安裝路徑
安裝路徑含?義
/etc/配置文件安裝目錄
/usr/bin/可執行的命令安裝目錄
/usr/lib/程序所使用的函數庫保存位置
/usr/share/doc/基本的軟件使用手冊保存位置
/usr/share/man/幫助文件保存位置

RPM 包的默認安裝路徑是可以通過命令查詢的。

除此之外,RPM 包也支持手動指定安裝路徑,但此方式并不推薦。因為一旦手動指定安裝路徑,所有的安裝文件會集中安裝到指定位置,且系統中用來查詢安裝路徑的命令也無法使用(需要進行手工配置才能被系統識別),得不償失。

與 RPM 包不同,源碼包的安裝通常采用手動指定安裝路徑(習慣安裝到 /usr/local/ 中)的方式。既然安裝路徑不同,同一 apache 程序的源碼包和 RPM 包就可以安裝到一臺 Linux 服務器上(但同一時間只能開啟一個,因為它們需要占用同一個 80 端口)。

實際情況中,一臺服務器幾乎不會同時包含兩個 apache 程序,管理員不好管理,還會占用過多的服務器磁盤空間。

RPM 包的安裝

安裝 RPM 的命令格式為:

[root@localhost ~]# rpm -ivh 包全名

注意一定是包全名。涉及到包全名的命令,一定要注意路徑,可能軟件包在光盤中,因此需提前做好設備的掛載工作。

此命令中各選項參數的含義為:

  • -i:安裝(install);
  • -v:顯示更詳細的信息(verbose);
  • -h:打印 #,顯示安裝進度(hash);

例如,使用此命令安裝 apache 軟件包,如下所示:

[root@localhost ~]# rpm -ivh \
/mnt/cdrom/Packages/httpd-2.2.15-15.el6.centos.1.i686.rpm
Preparing...
####################
[100%]
1:httpd
####################
[100%]

注意,直到出現兩個 100% 才是真正的安裝成功,第一個 100% 僅表示完成了安裝準備工作。

此命令還可以一次性安裝多個軟件包,僅需將包全名用空格分開即可,如下所示:

[root@localhost ~]# rpm -ivh a.rpm b.rpm c.rpm

如果還有其他安裝要求(比如強制安裝某軟件而不管它是否有依賴性),可以通過以下選項進行調整:

  • -nodeps:不檢測依賴性安裝。軟件安裝時會檢測依賴性,確定所需的底層軟件是否安裝,如果沒有安裝則會報錯。如果不管依賴性,想強制安裝,則可以使用這個選項。注意,這樣不檢測依賴性安裝的軟件基本上是不能使用的,所以不建議這樣做。
  • -replacefiles:替換文件安裝。如果要安裝軟件包,但是包中的部分文件已經存在,那么在正常安裝時會報"某個文件已經存在"的錯誤,從而導致軟件無法安裝。使用這個選項可以忽略這個報錯而覆蓋安裝。
  • -replacepkgs:替換軟件包安裝。如果軟件包已經安裝,那么此選項可以把軟件包重復安裝一遍。
  • -force:強制安裝。不管是否已經安裝,都重新安裝。也就是 -replacefiles 和 -replacepkgs 的綜合。
  • -test:測試安裝。不會實際安裝,只是檢測一下依賴性。
  • -prefix:指定安裝路徑。為安裝軟件指定安裝路徑,而不使用默認安裝路徑。

apache 服務安裝完成后,可以嘗試啟動:

[root@localhost ~]# service 服務名 start|stop|restart|status

各參數含義:

  • start:啟動服務;
  • stop:停止服務;
  • restart:重啟服務;
  • status: 查看服務狀態;

例如:

[root@localhost ~]# service httpd start #啟動apache服務

服務啟動后,可以查看端口號 80 是否出現。命令如下:

[root@localhost ~]# netstat -tlun | grep 80
tcp 0 0 :::80:::* LISTEN

也可以在瀏覽器中輸入 Linux 服務器的 IP 地址,訪問這個 apache 服務器。目前在 apache 中沒有建立任何網頁,所以看到的只是測試頁,如下圖所示。

RPM包的升級

使用如下命令即可實現 RPM 包的升級:

[root@localhost ~]# rpm -Uvh 包全名

-U(大寫)選項的含義是:如果該軟件沒安裝過則直接安裝;若已經安裝則升級至最新版本。

[root@localhost ~]# rpm -Fvh 包全名

-F(大寫)選項的含義是:如果該軟件沒有安裝,則不會安裝,必須安裝有較低版本才能升級。

RPM包的卸載

RPM 軟件包的卸載要考慮包之間的依賴性。例如,我們先安裝的 httpd 軟件包,后安裝 httpd 的功能模塊 mod_ssl 包,那么在卸載時,就必須先卸載 mod_ssl,然后卸載 httpd,否則會報錯。

軟件包卸載和拆除大樓是一樣的,本來先蓋的 2 樓,后蓋的 3 樓,那么拆樓時一定要先拆除 3 樓。

如果卸載 RPM 軟件不考慮依賴性,執行卸載命令會包依賴性錯誤,例如:

[root@localhost ~]# rpm -e httpd
error: Failed dependencies:
httpd-mmn = 20051115 is needed by (installed) mod_wsgi-3.2-1.el6.i686
httpd-mmn = 20051115 is needed by (installed) php-5.3.3-3.el6_2.8.i686
httpd-mmn = 20051115 is needed by (installed) mod_ssl-1:2.2.15-15.el6.
centos.1.i686
httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.4-10.el6.i686
httpd = 2.2.15-15.el6.centos.1 is needed by (installed) httpd-manual-2.2.
15-15.el6.centos.1 .noarch
httpd is needed by (installed) webalizer-2.21_02-3.3.el6.i686
httpd is needed by (installed) mod_ssl-1:2.2.15-15.el6.centos.1.i686
httpd=0:2.2.15-15.el6.centos.1 is needed by(installed)mod_ssl-1:2.2.15-15.el6.centos.1.i686

RPM 軟件包的卸載很簡單,使用如下命令即可:

[root@localhost ~]# rpm -e 包名

-e 選項表示卸載,也就是 erase 的首字母。

RPM 軟件包的卸載命令支持使用“-nocteps”選項,即可以不檢測依賴性直接卸載,但此方式不推薦大家使用,因為此操作很可能導致其他軟件也無法征程使用。

黑馬程序員新版Linux零基礎快速入門到精通,全涵蓋linux系統知識、常用軟件環境部署、Shell腳本、云平臺實踐、大數據集群項目實戰等

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36028.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36028.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36028.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

優漫動游 大廠需要什么樣的ui設計師呢?

通常來說大公司UI設計的流程主要是這樣的:創意-頭腦風暴-策劃方案-交互設計&評審-美術設計&評審-開發實施,不過實際上大多數公司都有自己的一套流程,源于公司的基因、公司組織體系、公司領導風格。一起了解大廠需要什么樣的ui設計師呢…

谷粒商城第十一天-品牌管理中關聯分類

目錄 一、總述 二、前端部分 1. 調整查詢調用 2. 關聯分類 三、后端部分 四、總結 一、總述 之前是在商品的分類管理中直接使用的若依的逆向代碼 有下面的幾個問題: 1. 表格上面的參數填寫之后,都是按照完全匹配進行搜索,沒有模糊匹配…

nodejs實現前后端websocket通信+心跳示例

nodejs后端代碼 server.js //需要安裝ws模塊 npm install ws const WebSocket require("ws") const port 8085const ws new WebSocket.Server({port})ws.on("connection", (socket) > {socket.on("message",(message) > {const da…

自定義hook之首頁數據請求動作封裝 hooks

本例子實現了自定義hook之首頁數據請求動作封裝 hooks&#xff0c;具體代碼如下 export type OrganData {dis: Array<{ disease: string; id: number }>;is_delete: number;name: string;organ_id: number;parent_id: number;sort: number; }; export type SwiperData …

【STM32】簡介

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介紹&#xff1a;"謓澤"正在路上朝著"攻城獅"方向"前進四" &#x1f50e;&#x1f3c5; 榮譽&#xff1a;2021|2022年度博客之星物聯網與嵌入式開發TOP5|TOP4、2021|2022博客之星T…

(2)linux虛擬機配置中文輸入法和如何下載軟件

&#xff08;一&#xff09;配置中文輸入法&#xff1a; 1、sudo apt-get install fcitx&#xff0c;安裝fcitx框架&#xff0c;安裝完成之后&#xff0c;選擇該框架 2、接下來輸入sudo apt-get install fcitx fcitx-googlepinyin&#xff0c;安裝谷歌輸入法之后&#xff0c;重…

WebSocket與消息推送

B/S結構的軟件項目中有時客戶端需要實時的獲得服務器消息&#xff0c;但默認HTTP協議只支持請求響應模式&#xff0c;這樣做可以簡化Web服務器&#xff0c;減少服務器的負擔&#xff0c;加快響應速度&#xff0c;因為服務器不需要與客戶端長時間建立一個通信鏈接&#xff0c;但…

Windows - UWP - 網絡不好的情況下安裝(微軟商店)MicrosoftStore的應用

Windows - UWP - 網絡不好的情況下安裝&#xff08;微軟商店&#xff09;MicrosoftStore的應用 前言 UWP雖然幾乎被微軟拋棄了&#xff0c;但不得不否認UWP應用給用戶帶來的體驗。沙箱的運行方式加上微軟的審核&#xff0c;用戶使用起來非常放心&#xff0c;并且完美契合Wind…

聚類與回歸

聚類 聚類屬于非監督式學習&#xff08;無監督學習&#xff09;&#xff0c;往往不知道因變量。 通過觀察學習&#xff0c;將數據分割成多個簇。 回歸 回歸屬于監督式學習&#xff08;有監督學習&#xff09;&#xff0c;知道因變量。 通過有標簽樣本的學習分類器 聚類和…

前端實現文件預覽功能

前端實現文件預覽功能 ? 需求&#xff1a;實現一個在線預覽pdf、excel、word、圖片等文件的功能。 介紹&#xff1a;支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代碼實現所有功能&#xff0c;建議以下的預覽文件標簽可以在外層包裹一層彈窗。 ? 圖片預覽 iframe標簽…

前端雜項-個人總結八股文的背誦方案

個人總結八股文的背誦方案 URL到顯示網頁的過程 瀏覽器解析URL&#xff0c;獲取協議&#xff0c;主機名&#xff0c;端口號&#xff0c;路徑等信息&#xff0c;并通過DNS查詢將主機名轉換為對應的IP地址瀏覽器與服務器建立TCP&#xff0c;進行三次握手。瀏覽器向服務器發送HT…

枚舉緩存工具

此文章為筆記&#xff0c;為閱讀其他文章的感受、補充、記錄、練習、匯總&#xff0c;非原創&#xff0c;感謝每個知識分享者。 文章目錄 1. 背景2. 枚舉緩存3. 樣例展示4. 性能對比5. 總結 本文通過幾種樣例展示如何高效優雅的使用java枚舉消除冗余代碼。 1. 背景 枚舉在系統…

不需要用@Param注解與需要用@Param注解的情況

不需要用Param注解&#xff1a; 1.只有一個參數時&#xff0c;不需要用Param注解。此時在不使用Parma注解的情況下&#xff0c;sql語句中的參數占位符名稱直接使用任何名稱均可&#xff1b; 2.方法參數是引用數據類型的情況下&#xff0c;不需要用Param注解。 需要用Param注…

QT生成Word PDF文檔

需求&#xff1a;將軟件處理的結果保存為一個報告文檔&#xff0c;文檔中包含表格、圖片、文字&#xff0c;格式為word的.doc和.pdf。生成word是為了便于用戶編輯。 開發環境&#xff1a;qt4.8.4vs2010 在qt的官網上對于pdf的操作介紹如下&#xff1a;http://qt-project.org/…

華為認證 | H3C廠商證書,含金量有多高?

華為H3C認證是中國第一家建立國際規范的完整的網絡技術認證體系&#xff0c;它的作用是不言而喻的&#xff0c;工作上它能給你帶來技能加分。 那么H3C認證網絡工程師證書含金量怎么樣呢&#xff1f;下面我們就來了解一下吧。 01 H3C認證網絡工程師證書含金量 全面覆蓋H3C相關…

微服務Eureka注冊中心

目錄 一、Eureka的結構和作用 二、搭建eureka-server 三、服務注冊 四、服務發現 假如我們的服務提供者user-service部署了多個實例&#xff0c;如圖&#xff1a; 存在的問題&#xff1a; order-service在發起遠程調用的時候&#xff0c;該如何得知user-service實例的ip地址…

深度學習快速入門系列---損失函數

在深度學習中&#xff0c;損失函數的作用是量化預測值和真實值之間的差異&#xff0c;使得網絡模型可以朝著真實值的方向預測&#xff0c;損失函數通過衡量模型預測結果與真實標簽之間的差異&#xff0c;反映模型的性能。同時損失函數作為一個可優化的目標函數&#xff0c;通過…

10個微服務設計模式

微服務設計模式是一種指導微服務架構設計和開發的一系列原則和實踐。微服務設計模式的目的是為了解決微服務架構中遇到的一些常見的問題和挑戰&#xff0c;比如服務劃分、服務通信、服務治理、服務測試等。微服務設計模式可以幫助我們構建出高效、可靠、可擴展、可維護的微服務…

九耶丨閣瑞鈦倫特-井字棋html5代碼

你想了解關于井字棋&#xff08;Tic-Tac-Toe&#xff09;的HTML代碼嗎&#xff1f;以下是一個簡單的井子棋的HTML代碼示例&#xff1a; <!DOCTYPE html> <html> <head><title>Tic-Tac-Toe</title><style>.board {display: flex;flex-wrap…

使用AT命令操作Modem 3G/4G模塊

1. 引言 AT命令是一種通信協議&#xff0c;用于控制和配置各種設備&#xff0c;尤其在通信領域中具有重要性。它的名稱來源于"ATtention"&#xff08;注意&#xff09;&#xff0c;因為命令通常以"AT"開頭。AT命令最早被用于調制解調器&#xff0c;用于與…