亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
997
2022-05-29
Linux基本軟件包管理---RPM和DPKG
在 GNU/Linux( 以下簡稱 Linux) 操作系統中,RPM 和 DPKG 為最常見的兩類軟件包管理工具,他們分別應用于基于 RPM 軟件包的 Linux 發行版本和 DEB 軟件包的 Linux 發行版本。軟件包管理工具的作用是提供在操作系統中安裝,升級,卸載需要的軟件的方法,并提供對系統中所有軟件狀態信息的查詢。
RPM 全稱為 Redhat Package Manager,最早由 Red Hat 公司制定實施,隨后被 GNU 開源操作系統接受并成為很多 Linux 系統 (RHEL) 的既定軟件標準。與 RPM 進行競爭的是基于 Debian 操作系統 (UBUNTU) 的 DEB 軟件包管理工具- DPKG,全稱為 Debian Package,功能方面與 RPM 相似。二者之具體比較不在本文范圍之內。
RPM
一個 RPM 包包含了已壓縮的軟件文件集以及該軟件的內容信息(在頭文件中保存),通常表現為以 .rpm 擴展名結尾的文件,例如 package.rpm 。對其操作,需要使用 rpm 命令。
RPM 命令常用參數:
RPM 的常規使用方法為 rpm -? package.rpm,其中 -? 為操作參數 ( 更多信息,請查閱幫助 $man rpm):
-q 在系統中查詢軟件或查詢指定 rpm 包的內容信息
-i 在系統中安裝軟件
-U 在系統中升級軟件
-e 在系統中卸載軟件
-h 用 #(hash) 符顯示 rpm 安裝過程
-v 詳述安裝過程
-p 表明對 RPM 包進行查詢,通常和其它參數同時使用,如:
-qlp 查詢某個 RPM 包中的所有文件列表
-qip 查詢某個 RPM 包的內容信息
具體使用方法:
安裝 RPM 包
# rpm -ivh package.rpm
升級 RPM 包命令
# rpm -Uvh package.rpm
卸載 RPM 包命令
# rpm -ev package
查詢 RPM 包中包含的文件列表命令
# rpm -qlp package
查詢 RPM 包中包含的文件列表命令
# rpm -qlp package
查詢 RPM 包中包含的內容信息命令
# rpm -qip package
查詢系統中所有已安裝 RPM 包
# rpm –qa
rpm -qa | grep PackageName
安裝Java的RPM包(例子)
1. 成為超級用戶,方法是運行 su 并輸入超級用戶口令。
2. 卸載 Java 程序包的任何早期安裝。
rpm -e
3. 切換到所需的安裝目錄。鍵入:cd <目錄路徑名>
例如,要在 /usr/java/ 目錄中安裝軟件,請鍵入:
cd /usr/java
4. 安裝程序包。
rpm -ivh jre-7u7-linux-i586.rpm
5. 要升級程序包,請鍵入:
rpm -Uvh jre-7u7-linux-i586.rpm
6. 如果要節省磁盤空間,請刪除 .rpm 文件。
7. 退出 root shell。不需要重新啟動。
DPKG
一個 DPKG 包包含了已壓縮的軟件文件集以及該軟件的內容信息(在頭文件中保存),通常表現為以 .deb 擴展名結尾的文件,例如 package.deb 。對其操作,需要使用 dpkg 命令。
DPKG 命令常用參數
DPKG 的常規使用方法為 dpkg -? Package(.deb), 其中 -? 為安裝參數 ( 更多信息,請查閱幫助 $man deb):
-l 在系統中查詢軟件內容信息
--info 在系統中查詢軟件或查詢指定 deb 包的內容信息
-i 在系統中安裝 / 升級軟件
-r 在系統中卸載軟件 , 不刪除配置文件
-P 在系統中卸載軟件以及其配置文件
DPKG 命令參數使用方法
安裝 DEB 包命令
$ sudo dpkg -i package.deb
升級 DEB 包命令
$ sudo dpkg -i package.deb ( 和安裝命令相同)
卸載 DEB 包命令
$ sudo dpkg -r package.deb # 不卸載配置文件或 $ sudo dpkg -P package.deb # 卸載配置文件
查詢 DEB 包中包含的文件列表命令
$ sudo dpkg-deb -c package.deb
查詢 DEB 包中包含的內容信息命令
$ dpkg --info package.deb
查詢系統中所有已安裝 DEB 包
$ dpkg -l package
軟件包依賴性關系(那么問題來了)
由于開源的多態性,Linux 操作系統中的軟件之間的依賴性關系處理一直令用戶感到頭疼。如果 package_a 依賴于 package_b,那么在一個沒有安裝 package_b 的系統中,package_a 是不被系統推薦安裝的,強制安裝很可能會導致軟件無法正常工作。
這跟我們Windows系統安裝軟件是一樣的,比如我們想學習Java開發,網上一聽有個Eclipse開發工具特別好用,于是我下載下來發現我竟然打不開,提示的是我沒有安裝Java環境,當然現在的Eclipse有的已經集成了Java環境,但是這個簡單的例子說明我們在安裝軟件的時候有些軟件確實是有相關的依賴,比如Windows系統的某些軟件就要求我們安裝.Net環境等等.都是這方面的原因,所以如果我們并不了解情況的話,很容易出錯.
Linux人性化軟件管理----yum和apt
那么問題來了,我們怎么更好的解決依賴的問題呢,難不成我們安裝一個軟件就需要網上搜一下,安裝個軟件非要弄個詳細的流程圖出來吧.其實大可不必,大家使用Windows的時候都知道什么360軟件管家啊,電腦管家也有個軟件管理啊,我們想安裝個軟件點擊一下,直接就一鍵安裝了,多方便啊.其實Linux也有類似于這樣的人性化軟件,他們支持一鍵安裝,中途也解決了這些軟件依賴的問題.看看多棒啊,是吧.
Yum
YUM 基于 RPM 包管理工具,能夠從指定的源空間(服務器,本地目錄等)自動下載目標 RPM 包并且安裝,可以自動處理依賴性關系并進行下載、安裝,無須繁瑣地手動下載、安裝每一個需要的依賴包。此外,YUM 的另一個功能是進行系統中所有軟件的升級。如上所述,YUM 的 RPM 包來源于源空間,在 RHEL 中由 /etc/yum.repos.d/ 目錄中的 .repo 文件配置指定.
我們之前也用這個工具進行過軟件的安裝比如:Lrzsz,openssh等工具,那么在這里就不再給大家進行詳細的介紹.
YUM 常用命令
安裝指定軟件
# yum -y install package-name
列出系統中已安裝軟件
# yum list
列出系統中可升級的所有軟件
Yum list | grep Package-Name 進行指定文件的指定.
# yum check-update
升級系統中可升級的所有軟件
# yum update
升級指定軟件
# yum update package-name
在升級過程中接受所有互動問答
# yum -y update
卸載指定軟件
# yum remove package-name
APT
APT 的全稱為 Advanced Packaging Tools 。與 YUM 對應,它最早被設計成 DPKG 的前端軟件,現在通過 apt-rpm 也支持 rpm 管理。而本節本節將介紹 APT 作為 DPKG 前端的使用。 APT 的主要包管理工具為 APT-GET,通過此工具可滿足和上述 YUM 相似的功能要求。
APT 的軟件源定義來自 /etc/apt/sources.list 文件:
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://cn.archive.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://cn.archive.ubuntu.com/ubuntu/ hardy main restricted
注意每次手動修改上述文件后,需要使用 sudo apt-get update 來更新系統的源使新的源數據被當前系統識別。
UBUNTU 中 APT 的配置文件位于 /etc/apt/apt.conf.d,其中的多個配置文件依功能分類。
APT 常用命令
更新源索引
$ sudo apt-get update
安裝指定軟件
$ sudo apt-get install package-name
下載指定軟件的源文件
$ sudo apt-get source package-name
將系統中所有軟件升級到最新版本
$ sudo apt-get upgrade
將操作系統連同所有軟件升級到最新版本
$ sudo apt-get dist-upgrade
卸載指定軟件
$ sudo apt-get remove package-name
yum Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。