- 我們的Linux系統大部分都是某個Linux廠商的系統,所以這些廠商可以編譯好一些軟件來提供用戶下載,用戶下載完了之后就可以直接安裝,從而省去了編譯源碼及其過程中的各種問題。這時我們就可以使用相應的軟件管理器來操作軟件(下載、安裝、刪除)。
我們使用的是Linux廠商的系統,即我們的系統和他們的系統是一樣的,所以他們編譯的軟件我們當然可以用。
在安裝軟件的時候可以添加一些有關軟件的一些信息,將這些信息新建成數據庫,那么就可以進行卸載、更新和驗證等相關操作了。(類似於windows下面的添加或刪除程序)
兩種常見的軟件管理機制:RPM( RedHat Package Manager)和DPKG
distribution代表 軟件管理機制 使用命令 在線升級機制(命令)(可以用來解決依賴問題)
RedHat/Fedora RPM rpm,rpmbuild YUM(yum)
Debian/Ubuntu DPKG dpkg APT(apt-get)
-
RedHat、Fedora、Centos、SuSE等發行商使用的RPM機制;Debian、B2D、Ubuntu(派生於Debian,所以可以用於Debian想用的機制)使用的是DPKG。
橫向比較:rpm/dpkg 不能用來解決包依賴,用來安裝、卸載、更新*.rpm 或者 *.ded
文件 -
RPM:RedHat Package Manager,
以一種數據庫記錄方式安裝軟件的一套管理機制。
RPM最大的一個特點就是將要安裝的軟件先編譯好並打包成RPM機制的安裝包,通過包裝好的軟件中默認的數據庫記錄這個軟件的依賴的軟件。
優點:
- 已經編譯且打包完畢,所以軟件的傳輸和安裝都很方便。(省去了編譯源碼的麻煩)
- 軟件的 信息都已記錄在數據庫中方便查詢、升級、卸載等操作。
缺點:
- RPM文件已經是編譯好的文件,那么其中的數據就無法修改了。該軟件只能安裝在原本默認的環境(硬件和操作系統)中,也就是說你的主機系統要和當初建立這個軟件的主機環境相同。
- 所以,一個發行商的RPM文件不能用在另一個不相同的發行商的系統上。比如說,RedHat推出的RPM無法直接SuSE上進行安裝。並且,很可能同一個發行商的不同版本的系統之間的RPM包也是無法兼容的,例如,Centos4.x的RPM包無法直接應用在Centos5.x上
總結:要想使用相同的RPM包最好做到:1、同一個系統的發行商的RPM 2、同一個發行商的系統版本最好也是相同的 3、最好是完全相同的一個系統- 軟件的安裝環境必須和當初編譯該軟件的機器的環境是一樣的或者時候相當的
- 需要滿足依賴關系
- 卸載的時候特別是不能先刪除最底層的軟件,否則可能造成系統出問題
-
apt-get:
jack@jackvirtual:~$sudo apt-get install packagename #這里是安裝packagename這個軟件,當使用這個命令的時候系統會去“下載源”文件中獲取下載源地址然后去指定的地方下載軟件 -
幾個命令:
-dbkg: 這里詳細的介紹了dbkg的15個用法
- dbkg -i packagename #安裝或者更新某個軟件,如果這個包沒有下載的話那么就會保存,所以可以先使用wget命令下載下來.deb軟件
wget http://archive.canonical.com/pool/partner/a/adobe-flashplugin/adobe-flashplugin_11.2.202.228-0maverick1_amd64.deb -O flashplugin.deb
- 這里將下載下來的軟件包重命名為flashplugin.deb,然后使用sudo dpkg -i flashplugin.deb安裝這個軟件
- [flashplugin.deb的地址](http://archive.canonical.com/pool/partner/a/adobe-flashplugin/)
- dpkg -l #列出所有安裝的軟件
- dpkg -r `packagename_without_.deb`#卸載軟件軟件,這里的軟件名不帶后綴
- dpkg -R --install directory/ #安裝direcory目錄下的所有的*.deb軟件
當提示有依賴錯誤時:apt-get -f -y install,之后再運行dpkg -i *.deb進行安裝
- apt-get:[apt-get的介紹和用法](http://www.tecmint.com/useful-basic-commands-of-apt-get-and-apt-cache-for-package-management/)
- sudo apt-get install packagename1 packagename2 #安裝或者升級一個或多個軟件
- `sudo apt-get install '*name*'` #使用通配符安裝軟件
- sudo apt-get install packageName --only-upgrade #指定的軟件升級
- sudo apt-get install packageName --no-upgrade #不升級已經安裝的軟件
- sudo apt-get install vsftpd=2.5.3-3ubuntu #安裝指定版本的軟件
- sudo apt-get remove packageName #移除指定的軟件且不刪除其配置文件
- sudo apt-get purge packageName #移除指定文件且刪除其配置文件,完全刪除了這個文件
- sudo apt-get remove --purge packageName #跟上面的命令一樣
- sudo apt-get --download-only source vsftpd #只下載指定軟件的源碼
- sudo apt-get --compile source goaccess #下載、解壓、編譯源碼一氣呵成
- sudo apt-get source vsftpd #下載並解壓一個包
- sudo apt-get download nethogs #只下載不安裝
- sudo apt-get upgrade #升級所有已經安裝的軟件
- sudo apt-cache pkgnames#列出所有available軟件原文鏈接:http://blog.csdn.net/u010378878/article/details/51675506