Linux系統中安裝軟體的幾種方式
目錄
Linux有很多種發行版本,各種發行版本之間安裝軟體方式和命令不一樣,同一個版本之間安裝軟體也有不同的方法。但是,大體來說,Linux有兩大派系,一個是紅帽派系,包含Redhat、Centos、Fedora等。還有一個是Debian派系,包含Kali、Ubuntu等。
紅帽派:
原始碼包安裝:
原始碼安裝需要安裝編譯工具: yum -y install gcc gcc-c++ make
以Redhat下安裝apache為例
- 先網站下載原始碼包 httpd-2.2.15.tar.gz
- tar -xvf httpd-2.2.15.tar.gz -C /usr/src 將其解壓到 /usr/src/ 目錄下
- 到其解壓目錄 /usr/src/httpd-2.2.15/ 下, ./configure 執行configure配置檔案,設定安裝目錄,安裝模組等,不設定的話,軟體預設安裝在 /usr/local/apache2/目錄下。如果 ./configure --prefix=/usr/local/https/ ,則是將其安裝在/usr/local/https/目錄下。此時還並未安裝,只是配置安裝路徑
- make 編譯,生成可執行的二進位制檔案Makefile
- make install 安裝。此時,軟體安裝在 /usr/local/https/ 目錄下
安裝完成之後對安裝包的清理
- 進入其解壓目錄 /usr/src/httpd-2.2.15/下 , make uninstall 或者 make clean 用於清除上一次的編譯
- 然後返回到上一級目錄,把 httpd-2.2.15 刪除
- 如果要解除安裝軟體的話,把 /usr/local/apache2 這個軟體刪除就可以
rpm包安裝:
RPM (RedHat Package Manager) :由紅帽公司提出,建議統一的資料庫檔案,詳細記錄軟體包的安裝、解除安裝等變化資訊,能夠自動分析軟體包依賴關係
RPM包的命名格式: firefox-17.0.10-1.el6.centos.x86_64.rpm
軟體名稱 版本號發行次數 硬體平臺副檔名
rpm指令管理
針對已安裝軟體
- rpm -qa:查詢所有已安裝軟體的rpm包資訊,列出包的版本
- rpm -q httpd: 檢視 httpd 是否安裝
- rpm -qi httpd:列出 httpd 軟體的詳細資訊
- rpm -qc httpd:檢視 httpd 的配置檔案目錄
- rpm -ql httpd:檢視 httpd 所包含的檔案
- whereis httpd:檢視httpd的安裝路徑和可執行檔案路徑
根據指令搜尋包的名稱
- which vim:搜尋指令在系統中的路徑
- rpm -qf 指令的絕對路徑 : 檢視該命令是由哪個rpm包所提供 rqm -qf /usr/bin/vim
針對未安裝軟體(需要把光碟檔案掛載,然後進入其Package目錄下
- rpm -qpl 包.rpm 選項p表示package,後面需要寫包的完整路徑資訊,qpl表示列出這個包在安裝之後生成哪些檔案和目錄
- rpm -qpi 包.rpm 查詢未安裝包的詳細資訊
安裝與解除安裝
- rpm -ivh 包.rpm i表示安裝,v表示顯示安裝過程,h表示以‘#’作為進度,顯示安裝進度
- rpm -e 包的名稱 移除指定的rpm包
yum源安裝:
YUM(Yellow dog Updater Modified): 基於RPM包構建的軟體更新機制,可以自動解決rpm包之間的依賴關係,所有軟體包由集中的yum軟體倉庫提供
- yum clean all 清空快取資訊
- yum list 列出所有包的資訊
- yum list httpd 檢視 httpd 是否安裝
- yum info httpd 顯示 httpd 包的詳細具體資訊
- yum install httpd -y 安裝 httpd 包
- yum remove httpd -y 解除安裝 httpd 包
- yum search 關鍵詞 根據關鍵詞,在已發現的repo源中搜索包含關鍵詞的rpm包
- yum provides 命令 根據命令,在已發現的repo源中搜索安裝指令的rpm包
- yum history list/info/undo/redo number history可以列出,檢視,重灌,反安裝對應的包,但是是以yum指令的操作順序為依據的,所以需要加指定的數字執行
Debian派:
Deb包安裝:
DEB是Debian軟體包格式的副檔名,Debian包是Unixar的標準歸檔,將包檔案資訊以及包內容,經過gzip和tar打包而成。
處理這些包的經典程式是dpkg,經常是通過Debian的apt-get來運作。deb 格式是 Debian 系統(包含 Debian 和 Ubuntu )專屬安裝包格式,配合 APT 軟體管理系統,成為了當前在 Linux 下非常流行的一種安裝包
dpkg指令用法:
dpkg
- -i:安裝軟體包;
- -r:刪除軟體包;
- -P:刪除軟體包的同時刪除其配置檔案;
- -L:顯示於軟體包關聯的檔案;
- -l:顯示已安裝軟體包列表;
- --unpack:解開軟體包;
- -c:顯示軟體包內檔案列表;
- --confiugre:配置軟體包。
apt-get源安裝:
apt-get 的使用
1.Ubuntu中的高階包管理方法apt-get
除了apt的便捷以外,apt-get的一大好處是極大地減小了所謂依賴關係惡夢的發生機率(dependency hell),即使是陷入了dependency hell,apt-get也提供了很好的援助手段,幫你逃出魔窟。
通常 apt-get 都和網上的壓縮包一起出沒,從網際網路上下載或是安裝。全世界有超過200個 debian官方映象,還有繁多的非官方軟體包提供網站。你所使用的基於Debian的釋出版不同,你所使用的軟體倉庫可能需要手工選擇或是可以自動設定。你能從Debian官方網站得到完整的映象列表。而很多非官方網站提供各種特殊用途的非官方軟體包,當然,使用非官方軟體包會有更多風險了。
軟體包都是為某一個基本的Debian釋出版所準備的(從unstable 到stable),並且劃分到不同類別中(如 main contrib nonfree),這個是依據 debian 自由軟體綱領而劃分的(也就是常說的dfsg),因為美國限制加密軟體出口,還有一個non-us類別。
2.常用的APT命令引數
apt-cache search package 搜尋包
apt-cache show package 獲取包的相關資訊,如說明、大小、版本等
sudo apt-get install package 安裝包
sudo apt-get install package -- reinstall 重新安裝包
sudo apt-get -f install 修復安裝"-f = --fix-missing"
sudo apt-get remove package 刪除包
sudo apt-get remove package -- purge 刪除包,包括刪除配置檔案等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統
sudo apt-get dselect-upgrade 使用 dselect 升級
apt-cache depends package 瞭解使用依賴
apt-cache rdepends package 是檢視該包被哪些包依賴
sudo apt-get build-dep package 安裝相關的編譯環境
apt-get source package 下載該包的原始碼
sudo apt-get clean && sudo apt-get autoclean 清理無用的包
sudo apt-get check 檢查是否有損壞的依賴