引言
一直對yum、apt-get赫段、rpm等的概念很模糊,還是老話:工欲善其事矢赁,必先利其器糯笙!
與其混亂的憋屈,不如讓它水至清撩银。
一切從“源頭”開始
一般來說著名的linux系統(tǒng)基本上分兩大類:
RedHat系列:Redhat给涕、Centos、Fedora等
Debian系列:Debian额获、Ubuntu等
RedHat 系列
- 常見的安裝包格式 rpm包,安裝rpm包的命令是“rpm -參數(shù)”
- 包管理工具 yum
- 支持tar包
Debian系列
- 常見的安裝包格式 deb包,安裝deb包的命令是“dpkg -參數(shù)”
- 包管理工具 apt-get
- 支持tar包
- tar 只是一種壓縮文件格式够庙,所以,它只是把文件壓縮打包而已抄邀。
- rpm 相當于windows中的安裝文件耘眨,它會自動處理軟件包之間的依賴關(guān)系。
優(yōu)缺點來說:
- rpm一般都是預先編譯好的文件境肾,它可能已經(jīng)綁定到某種CPU或者發(fā)行版上面了剔难。
- tar一般包括編譯腳本胆屿,你可以在你的環(huán)境下編譯,所以具有通用性偶宫。
- 如果你的包不想開放源代碼非迹,你可以制作成rpm,如果開源纯趋,用tar更方便了憎兽。
- tar一般都是源碼打包的軟件,需要自己解包结闸,然后進行安裝三部曲唇兑,
./configure
,make
,make install
來安裝軟件。 - rpm是redhat公司的一種軟件包管理機制桦锄,直接通過rpm命令進行安裝刪除等操作扎附,最大的優(yōu)點是自己內(nèi)部自動處理了各種軟件包可能的依賴關(guān)系。
rpm命令
*.rpm形式的二進制軟件包[centos]
安裝:
rpm -ivh *.rpm
卸載:
rpm -e packgename
查看是否已經(jīng)安裝
rpm -q nginx
升級:
rpm -Uvh xxx
查詢所有安裝的包:
rpm -qa
查詢某個包:
rpm -qa | grep xxx
rpm -qi xxx
例如:docker-ce查詢軟件的安裝路徑:
rpm -ql xxx
查詢某個文件是那個rpm包產(chǎn)生:
rpm -qf /etc/yum.conf
rpm -qpi xxx
src.rpm 源代碼分發(fā)軟件包的安裝與卸載
Linux軟件的源代碼分發(fā)是指提供了該軟件所有程序源代碼的發(fā)布形式结耀,需要用戶自己編譯成可執(zhí)行的二進制代碼并進行安裝留夜,其優(yōu)點是配置靈活,可以隨意去掉或保留某些功能/模塊图甜,適應多種硬件/操作系統(tǒng)平臺及編譯環(huán)境碍粥,缺點是難度較大,一般不適合初學者使用黑毅。
*.src.rpm形式的源代碼軟件包
- 安裝:
rpm -rebuild *.src.rpm
cd /usr/src/dist/RPMS
rpm -ivh *.rpm
- 卸載:
rpm -e packgename
說明:rpm –rebuild *.src.rpm命令將源代碼編譯并在/usr/src/dist/RPMS下生成二進制的rpm包嚼摩,然后再安裝該二進制包即可。packgename如前所述矿瘦。
使用yum和apt-get枕面。
YUM
軟件管理方法的升級.
yum的配置文件是/etc/yum.conf
- 我們來先講Redhat的yum 這種高級的包管理.
yum install gcc [centos]
更新:yum update
安裝:yum install xxx
移除:yum remove xxx
清除已經(jīng)安裝過的檔案(/var/cache/yum/):yum clean all
搜尋:yum search xxx
列出所有檔案:yum list
查詢檔案訊息:yum info xxx
yum = Yellow dog Update, Modified
主要功能是更方便的添加/刪除/更新RPM包.
它能自動解決包的倚賴性問題.
它能便于管理大量系統(tǒng)的更新問題
yum特點
可以同時配置多個資源庫(Repository)
簡潔的配置文件(/etc/yum.conf )
自動解決增加或刪除rpm包時遇到的倚賴性問題
使用方便,保持與RPM數(shù)據(jù)庫的一致性
yum指令
檢查可更新的rpm包
#yum check-update
更新所有的rpm包
#yum update
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
大規(guī)模的版本升級,與yum update不同的是,連舊的淘汰的包也升級
#yum upgrade
rpm包的安裝和刪除
- 安裝rpm包,如xmms-mp3
#yum install xmms-mp3
- 刪除rpm包,包括與該包有倚賴性的包
#yum remove licq
注:同時會提示刪除licq-gnome,licq-qt,licq-text
列出資源庫中所有可以安裝或更新的rpm包
#yum list
列出資源庫中特定的可以安裝或更新以及已經(jīng)安裝的rpm包
#yum list mozilla
#yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla開頭的rpm包
列出資源庫中所有可以更新的rpm包
#yum list updates
列出已經(jīng)安裝的所有的rpm包
#yum list installed
列出已經(jīng)安裝的但是不包含在資源庫中的rpm包
#yum list extras
注:通過其它網(wǎng)站下載安裝的rpm包
- 列出資源庫中所有可以安裝或更新的rpm包的信息
#yum info
*搜索rpm包,搜索匹配特定字符的rpm包
#yum search mozilla
注:在rpm包名,包描述等中搜索
- 搜索有包含特定文件名的rpm包
#yum provides realplay
yum常用的命令
# yum install xxx
安裝xxx軟件
# yum info xxx
查看xxx軟件的信息
# yum remove xxx
刪除軟件包
# yum list
列出軟件包
# yum clean
清除緩沖的包
# yum provides xxx
以xxx為關(guān)鍵字搜索包(提供的信息為關(guān)鍵字)
# yum search xxx
搜索軟件包(以名字為關(guān)鍵字)
# yum groupupdate xxx
# yum grouplist xxx
# yum groupremove xxx
上面三個都是以組為單位進行升級 列表和刪除的操作。缚去。比如 "Mysql Database"就是一個組會同時操作相關(guān)的所有軟件包潮秘;
# yum update
系統(tǒng)升級
# yum list available
列出所有升級源上的包;
# yum list updates 列出所有升級源上的可以更新包易结;
# yum list installed 列出已經(jīng)安裝的包枕荞;
# yun update kernel
升級內(nèi)核;