Linux軟件包安裝


Linux軟件安裝方式:
1.apt,rpm,yum;
2.源代碼安裝;
3.二進制安裝。


一,apt,rpm,yum軟件安裝方式:

apt-getAdvancd Packaging Tool)高級包裝工具,軟件包管理器
例,apt-get isntall w3m
  當你在執行安裝操作時,首先apt-get 工具會在本地的一個數據庫中搜索關於 w3m 軟件的相關信息,並根據這些信息在相關的服務器上下載軟件安裝,這里大家可能會一個疑問:既然是在線安裝軟件,為啥會在本地的數據庫中搜索?要解釋這個問題就得提到幾個名詞了:
  ① 軟件源鏡像服務器
  ② 軟件源
我們需要定期從服務器上下載一個軟件包列表,使用 sudo apt-get update 命令來保持本地的軟件包列表是最新的(有時你也需要手動執行這個操作,比如更換了軟件源),而這個表里會有軟件依賴信息的記錄,對於軟件依賴,我舉個例子:我們安裝 w3m 軟件的時候,而這個軟件需要 libgc1c2 這個軟件包才能正常工作,這個時候 apt-get 在安裝軟件的時候會一並替我們安裝了,以保證 w3m 能正常的工作。

1、APT-get安裝方式(apt是Ubuntu的軟件包管理工具)
(1)普通安裝:apt-get install softname1 softname2 …;

(2)修復安裝:apt-get -f install softname1 softname2... ;(-f 是用來修復損壞的依賴關系)

(3)重新安裝:apt-get --reinstall install softname1 softname2...;

2、APT-get卸載軟件包的方法

(1)移除式卸載:apt-get remove softname1 softname2 …;(移除軟件包,當包尾部有+時,意為安裝)
(2)清除式卸載:apt-get purge sofname1 softname2...;(清除配置文件)

常用參數:
-y 自動回應是否安裝軟件包,在一些自動化腳本中經常用到
-s 模擬安裝
-q 靜默安裝
-f 修復損壞的依賴關系
-- reinstall 重新安裝已經安裝但可能存在問題的軟件包
-- install-suggests 同時安裝APT給出的建議安裝的軟件包

apt-get包含的常用工具:
update    從軟件源鏡像服務器上下載/更新用於更新本地軟件源的軟件包
upgrade    升級本地可更新的全部軟件包,但存在依賴問題時將不會升級,通常會在更新之前執行一次update
purge    與remove相同,但會完全移除軟件包,包含其配置文件
autoremove    移除之前被其他軟件包依賴,但現在不再被使用的軟件包

常用的APT命令:

apt-cache search package 搜索包
apt-cache show package 獲取包的相關信息,如說明、大小、版本等
apt-cache depends package 了解使用依賴
apt-cache rdepends package 查看該包被哪些包依賴
sudo apt-get install package 安裝包,apt會自動下載安裝,若有依賴性軟件包,apt也會自動下載安裝
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 更新源(該指令是用來取得記錄在 /etc/apt/sources.list 內的遠端服務器的軟件包清單,在使用apt-get dist-upgrade指令升級軟件前,一定要記得先用此指令將軟件包清單更新)
sudo apt-get upgrade 更新已安裝的軟件包
sudo apt-get dist-upgrade 升級系統
sudo apt-get dselect-upgrade 使用 dselect 升級
sudo apt-get build-dep package 安裝相關的編譯環境
apt-get source package 下載該包的源代碼
sudo apt-get clean && sudo apt-get autoclean 清理無用的包(當使用 apt-get install 指令安裝后,下載的軟件包會放置在 /var/cache/apt/archives,使用apt-get clean指令可將其刪除)
sudo apt-get check 檢查是否有損壞的依賴

 

apt和apt-get命令之間的區別

apt 命令的引入就是為了解決命令過於分散的問題,它包括了 apt-get 命令出現以來使用最廣泛的功能選項,以及 apt-cache 和 apt-config 命令中很少用到的功能。

在使用 apt 命令時,用戶不必再由 apt-get 轉到 apt-cache 或 apt-config,而且 apt 更加結構化,並為用戶提供了管理軟件包所需的必要選項。

簡單來說就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令選項的集合。

雖然 apt 與 apt-get 有一些類似的命令選項,但它並不能完全向下兼容 apt-get 命令。也就是說,可以用 apt 替換部分 apt-get 系列命令,但不是全部。

apt 命令 取代的命令 命令的功能
apt install softname apt-get install softname 安裝軟件包
apt remove softname apt-get remove softname 移除軟件包
apt purge softname apt-get purge softnam softname 移除軟件包及配置文件
apt update apt-get update 刷新存儲庫索引
apt upgrade apt-get upgrade 升級所有可升級的軟件包
apt autoremove apt-get autoremove 自動刪除不需要的包
apt full-upgrade apt-get dist-upgrade 在升級軟件包時自動處理依賴關系
apt search softname apt-cache search softname 搜索應用程序
apt show softname apt-cache show softname 顯示裝細節

當然,apt 還有一些自己的命令:

新的apt命令 命令的功能
apt list 列出包含條件的包(已安裝,可升級等)
apt edit-sources 編輯源列表

1.使用 apt 命令安裝或刪除程序時看到進度條;

2.apt 還會在更新存儲庫數據庫時提示用戶可升級的軟件包個數。

 
rpm(Red Hat Linux軟件包管理工具)

rpm原本是Red Hat Linux發行版專門用來管理Linux各項套件的程序

語法:
rpm [選項] [軟件包]

常用選項:
-a:查詢所有套件;
-b<完成階段><套件檔>+或-t <完成階段><套件檔>+:設置包裝套件的完成階段,並指定套件檔的文件名稱;
-c:只列出組態配置文件,本參數需配合"-l"參數使用;
-d:只列出文本文件,本參數需配合"-l"參數使用;
-e<套件檔>或--erase<套件檔>:刪除指定的套件;
-f<文件>+:查詢擁有指定文件的套件;
-h或--hash:套件安裝時列出標記; -i:顯示套件的相關信息;
-i<套件檔>或--install<套件檔>:安裝指定的套件檔;
-l:顯示套件的文件列表;
-p<套件檔>+:查詢指定的RPM套件檔;
-q:使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶;
-R:顯示套件的關聯性信息;
-s:顯示文件狀態,本參數需配合"-l"參數使用;
-U<套件檔>或--upgrade<套件檔>:升級指定的套件檔;
-v:顯示指令執行過程;
-vv:詳細顯示指令執行過程,便於排錯。

1.安裝
rpm -ivh example.rpm 安裝 example.rpm 包並在安裝過程中顯示正在安裝的文件信息及安裝進度;

2.查詢
RPM 查詢操作
命令:
rpm -q …

附加查詢命令:
a 查詢所有已經安裝的包以下兩個附加命令用於查詢安裝包的信息;
i 顯示安裝包的信息;
l 顯示安裝包中的所有文件被安裝到哪些目錄下;
s 顯示安裝版中的所有文件狀態及被安裝到哪些目錄下;以下兩個附加命令用於指定需要查詢的是安裝包還是已安裝后的文件;
p 查詢的是安裝包的信息;
f 查詢的是已安裝的某文件信息;

例,rpm -qa | grep tomcat4 查看 tomcat4 是否被安裝;

3.RPM 卸載操作
命令:
rpm -e 需要卸載的安裝包
在卸載之前,通常需要使用rpm -q …命令查出需要卸載的安裝包名稱。
舉例如下:
rpm -e tomcat4 卸載 tomcat4 軟件包;

4.RPM 升級操作
命令:
rpm -U 需要升級的包
舉例如下:
rpm -Uvh example.rpm 升級 example.rpm 軟件包;

    注意:但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。所以很多情況下我們出於方便,選擇使用yum包管理器來進行安裝。Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器(例如淘寶鏡像、騰訊雲、網易鏡像等,可自己配置)自動下載RPM包並且安裝,可以自動處理軟件包的依賴關系,一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。


yum(Yellow dog Updater, Modified)

yum命令是在Fedora和RedHat以及SUSE中基於rpm的軟件包管理器,它可以使系統管理人員交互和自動化地更細與管理RPM軟件包,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

yum和rpm的區別:
①      rpm軟件包形式的管理雖然方便,但是需要手工解決軟件包的依賴關系。很多時候安裝一個軟件安裝一個軟件需要安裝1個或者多個其他軟件,手動解決時,很復雜,yum解決這些問題。Yum是rpm的前端程序,主要目的是設計用來自動解決rpm的依賴關系,其特點:
1)  自動解決依賴關系;2)可以對rpm進行分組,基於組進行安裝操作;3)引入倉庫概念,支持多個倉庫;4)配置簡單
②      yum倉庫用來存放所有的現有的.rpm包,當使用yum安裝一個rpm包時,需要依賴關系,會自動在倉庫中查找依賴軟件並安裝。倉庫可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、統一的網絡倉庫。
③      倉庫的配置文件/etc/yum.repos.d目錄下

1.安裝:
yum install package1 #安裝指定的安裝包package1

2.更新和升級:
yum update #全部更新
yum update package1 #更新指定程序包package1
yum check-update #檢查可更新的程序
yum upgrade package1 #升級指定程序包package1
yum groupupdate group1 #升級程序組group1

3.卸載:
yum remove package1

4.清除緩存:
yum clean packages #清除緩存目錄下的軟件包
yum clean headers #清除緩存目錄下的 headers
yum clean oldheaders #清除緩存目錄下舊的 headers

5.查找和顯示:
yum info package1 #顯示安裝包信息package1
yum list #顯示所有已經安裝和可以安裝的程序包
yum list package1 #顯示指定程序包安裝情況package1
yum groupinfo group1 #顯示程序組group1信息yum search string 根據關鍵字string查找安裝包


二,源代碼安裝方式:

源碼安裝(.tar、tar.gz、tar.bz2、tar.Z)

首先解壓縮源碼壓縮包然后通過tar命令來完成

a.解xx.tar.gz:tar zxf xx.tar.gz
b.解xx.tar.Z:tar zxf xx.tar.Z
c.解xx.tgz:tar zxf xx.tgz
d.解xx.bz2:bunzip2 xx.bz2
e.解xx.tartar xf xx.tar

然后進入到解壓出的目錄中,建議先讀一下README之類的說明文件,因為此時不同源代碼包或者預編譯包可能存在差異,然后建議使用ls -F --color或者ls -F命令(實際上我的只需要 l 命令即可)查看一下可執行文件,可執行文件會以*號的尾部標志。

一般依次執行
 ./configure   (檢查編譯環境)

 make   (對源代碼進行編譯)

 sudo make install   (將生成的可執行文件安裝到當前計算機中)

 make clean   (選擇執行,主要是用來清除一些臨時文件)

即可完成安裝。

 

解釋:
1、configure,這一步一般用來生成 Makefile,為下一步的編譯做准備,你可以通過在 configure 后加上參數來對安裝進行控制,比如代碼:./configure –prefix=/usr 意思是將該軟件安裝在 /usr 下面,執行文件就會安裝在 /usr/bin (而不是默認的 /usr/local/bin),資源文件就會安裝在 /usr/share(而不是默認的/usr/local/share)。同時一些軟件的配置文件你可以通過指定 –sys-config= 參數進行設定。有一些軟件還可以加上 –with、–enable、–without、–disable 等等參數對編譯加以控制,你可以通過允許 ./configure –help 察看詳細的說明幫助。

2、make,這一步就是編譯,大多數的源代碼包都經過這一步進行編譯(當然有些perl或python編寫的軟件需要調用perl或python來進行編譯)。如果 在 make 過程中出現 error ,你就要記下錯誤代碼(注意不僅僅是最后一行),然后你可以向開發者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系統少了一些依賴庫等,這些需要自己仔細研究錯誤代碼。

3、make insatll,這條命令來進行安裝(當然有些軟件需要先運行 make check 或 make test 來進行一些測試),這一步一般需要你有 root 權限(因為要向系統寫入文件)。


三,二進制安裝:
二進制包的安裝比較簡單,我們需要做的只是將從網絡上下載的二進制包解壓后放到合適的目錄,然后將包含可執行的主程序文件的目錄添加進PATH環境變量即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM