tft每日頭條

 > 科技

 > linux安裝一個rpm命令

linux安裝一個rpm命令

科技 更新时间:2025-01-26 23:47:29

本節講解如何使用 rpm 命令對 RPM 二進制包進行安裝、卸載和升級操作。我們以安裝 apache 程序為例。因為後續章節還會介紹使用源碼包的方式安裝 apache 程序,讀者可以直觀地感受到源碼包和 RPM 包的區别。

RPM包默認安裝路徑

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

linux安裝一個rpm命令(LinuxRPM包安裝卸載和升級)1

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 中沒有建立任何網頁,所以看到的隻是測試頁,如圖 2 所示。

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

linux安裝一個rpm命令(LinuxRPM包安裝卸載和升級)2

圖 2 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”選項,即可以不檢測依賴性直接卸載,但此方式不推薦大家使用,因為此操作很可能導緻其他軟件也無法征程使用。

感謝開源軟件為我們工作效率和生活質量帶來的便利與價值,感謝為開源軟件開發和推廣使用做出努力的人們,本文知識來源于網絡,大仁筆記收集整理,如果覺得不錯歡迎點贊、收藏、轉發。

我是@大仁筆記,歡迎大家學習交流,一起為更好的明天好好努力。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved