不同的軟體的安裝方法是並不相同的。有的軟體只能通過特定的方法來安裝。 在不同的Linux發行版本上安裝同一個軟體的方法也未必相同, 因此有的時候,你在網上找到的在Ubuntu上安裝某個軟體的方法,也許在CentOS上並不能成功。 RPM、YUM、dpkg、apt-get、aptitude ...
[TOC]
0 前言
- 不同的軟體的安裝方法是並不相同的。有的軟體只能通過特定的方法來安裝。
- 在不同的Linux發行版本上安裝同一個軟體的方法也未必相同, 因此有的時候,你在網上找到的在Ubuntu上安裝某個軟體的方法,也許在CentOS上並不能成功。
1 RPM
1.1 介紹
RPM是 Redhat Package Manager的縮寫,是Linux上的一種軟體打包和管理的工具。 因為Linux的不同發行版(distribution),甚至同一發行版的不同版本之間往往有很多的不同, 開發者在某個Linux發行版下開發和編譯的程式,直接放到另外一個Linux下有非常大的可能性無法運行。 因此早期的Linux的軟體都是通過源碼來分發,使用者基本都是通過在自己的Linux平臺上重新編譯源代碼來安裝軟體。 但是這種編譯源代碼的方式比較繁瑣和複雜,普通用戶往往也難以掌握。後來 Redhat推出了RPM這個軟體打包的方式。就是在特定的Linux平臺上把軟體編譯好,然後把與這個軟體相關的文件和庫打包成一個文件(RPM包), 但需要註意的是: 通常不同的distribution所發佈的RPM包往往不能用於其他的Linux的distributions上面。 例如,針對Redhat的RPM包往往無法直接在OpenSUSE上進行安裝。因此,在使用RPM方式進行安裝的時候,必須選擇和你使用的平臺一致的RPM安裝包。
1.2 命令
rpm -ivh google-chrome-33.xxxx.rpm
- -i: install 安裝
- -v: verbose 顯示詳細信息
- -h: hash 顯示安裝進度
升級某個軟體:
rpm -Uvh abc.xxx.rpm //abc這個軟體的新版本會覆蓋原來的版本,如果原來沒有安裝,直接安裝
查詢某個軟體是否安裝
rpm -q httpd //查詢是否安裝了apache服務
rpm -qa | grep pam //查詢是否安裝了包含pam這個名字的軟體
rpm -qi httpd //列出目前安裝的apache服務的詳細信息
rpm -qR httpd //列出apache的軟體依賴關係
卸載軟體
rpm -e httpd //卸載apache
1.3 問題
雖然用RPM包來安裝軟體免去了編譯源代碼的麻煩,但軟體之間的屬性依賴問題並沒有解決,有的時候,為了安裝某個軟體,你不得不先要安裝N個其他的軟體才行。
2 YUM
2.1 介紹
為瞭解決軟體依賴的問題,已經為了給用戶提供一種更加方便簡單的軟體安裝方法, YUM被開發出來了。 YUM 是Yellowdog Updater Modified 的縮寫. YUM 是建立在RPM的基礎之上的, 為用戶提供軟體安裝,升級,卸載的功能。YUM最大的好處是解決了軟體依賴的問題。YUM 把很多軟體的RPM包放在RPM 容器(repository)中, 用YUM 方式來安裝軟體的時候,會自動分析你要安裝的軟體的依賴關係,並會自動幫你安裝必須的“依賴軟體”, 這樣就解決了最為困擾用戶的軟體依賴的問題。
2.2 命令
查詢功能
yum list/search /info xxx
例如:yum list httpd //檢查apache是否已經安裝
yum info httpd //查看apache的詳細信息, 類似 rpm -qi httpd
yum search httpd //查詢和 apache (httpd)相關的軟體
安裝升級
yum install httpd
yum update httpd
卸載軟體
yum remove httpd
3 dpkg
3.1 介紹
用於Ubuntu。
dpkg 是一種比較低層的軟體包安裝管理工具,在安裝時,不會安裝軟體包的依賴關係;只能安裝所要求的軟體包。
dpkg通常用於 安裝.deb文件,不會自動解決軟體安裝過程中的依賴關係。
3.2 命令
dpkg -i package_name.deb #安裝本地軟體包,不解決依賴關係
dpkg -r package #刪除軟體包
dpkg -P #刪除軟體包及配置文件
4 apt-get
4.1 介紹
用於Ubuntu。
apt-get 是一種高級的軟體包管理工具,在安裝軟體時,會自動解決軟體安裝過程中的依賴關係;
ap-get remove 不會自動刪除不需要的軟體包。
4.2 命令
apt-get install package #線上安裝軟體包
apt-get install package --reinstall #重新安裝軟體包
apt-get remove package #刪除軟體包
apt-get remove package --purge #刪除軟體包及配置文件
apt-get autoremove #刪除不再需要的軟體包
apt-get clean #清除 /var/cache/apt/archives 目錄
apt-get autoclean #清除 /var/cache/apt/archives 目錄,不過只清理過時的包
apt-get build-dep package #解決編譯源碼 package 的依賴關係
5 aptitude
5.1 介紹
用於Ubuntu。
aptitude 是一種帶有UI界面的更高級的軟體包安裝管理工具,自動解決軟體包安裝中的依賴關係;並且在刪除的時候,會自動刪除不需要的軟體依賴關係安裝包;更加的智能,高效。
6 參考資料
- https://www.androiddev.net/redhat-centos-install-rpm-yum/
- http://www.cnblogs.com/cocoajin/p/3741647.html
- http://blog.csdn.net/xiaoyanghuaban/article/details/22946987