我們經(jīng)常需要知道某個(gè)軟件版本是否安裝和版本號(hào)是多少切平,常常用到的命令是rpm -qa | grep 軟件名稱(chēng),但這并不是萬(wàn)能鑰匙!下面讓我們一起揭開(kāi)常用包管理工具的面紗煞聪!
linux系統(tǒng)中包大致分為兩類(lèi):rpm和deb。? 1) Redhat/CentOS/openSUSE/Fedora/ ROSA /mageia/OpenMandriva為rpm后綴逝慧;2) Ubuntu和Debian為deb后綴昔脯。文件后綴rpm使用命令rpm,yum和dnf笛臣;文件后綴deb使用命令dpkg和apt-get云稚;第三種安裝方法:源碼安裝。
最后介紹yum/apt-get安裝源設(shè)置和wget下載工具沈堡。
rpm篇
rpm原本是Red Hat Linux發(fā)行版專(zhuān)門(mén)用來(lái)管理Linux各項(xiàng)套件的程序静陈,由于它遵循GPL規(guī)則且功能強(qiáng)大方便,因而廣受歡迎。RPM套件管理方式的出現(xiàn)鲸拥,讓Linux易于安裝拐格,升級(jí),間接提升了Linux的適用度刑赶。
版本安裝
場(chǎng)景1: rpm -ivh your-package.rpm
場(chǎng)景2: rpm? -i? ? your-package.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild? -bp your-package.specs
cd /usr/src/redhat/BUILD/your-package/?
./configure &&? make &&? make install
版本查看
rpm -qa | grep your-package或grep ftp
查看安裝路徑rpm -ql | grep? your-package禁荒;whereis ftp;which ftp
查看配置文件rpm -cl | grep? your-package
版本升級(jí)
rpm -iUh your-package.rpm
版本刪除
rpm -e? your-package? 不要帶rpm后綴
-a:查詢(xún)所有套件角撞;
-c:只列出組態(tài)配置文件呛伴,和"-l"參數(shù)配合用;
-d:只列出文本文件谒所,和"-l"參數(shù)配合使用热康;
-e或--erase <套件檔>:刪除指定的套件;
-h或--hash:套件安裝時(shí)列出標(biāo)記劣领;
-i:顯示套件的相關(guān)信息姐军;
-i或--install <套件檔>:安裝指定的套件檔;
-l:顯示套件的文件列表尖淘;
-q:詢(xún)問(wèn)模式奕锌,遇到問(wèn)題時(shí)會(huì)詢(xún)問(wèn)用戶;
-R:顯示套件的關(guān)聯(lián)性信息村生;
-s:顯示文件狀態(tài)惊暴,和"-l"參數(shù)配合使用;
-U或--upgrade <套件檔>:升級(jí)指定的套件趁桃;
-v:顯示指令執(zhí)行過(guò)程辽话;
-vv:詳細(xì)顯示指令執(zhí)行過(guò)程,便于排錯(cuò)卫病。
yum 篇
yum命令是在Fedora/RedHat和SUSE中基于rpm的軟件包管理器油啤,可以使系統(tǒng)管理人員交互和自動(dòng)化地更細(xì)與管理RPM軟件包,能夠從指定的服務(wù)器自動(dòng)下載RPM包并且安裝蟀苛,可以自動(dòng)處理依賴(lài)性關(guān)系益咬,并且一次安裝所有依賴(lài)的軟體包,無(wú)須繁瑣地一次次下載帜平、安裝幽告。
版本安裝
yum install packagename.rpm
版本查看
yum info packagename.rpm
yum list? #查找所有已安裝和可安裝的
yum list packagename #指定名稱(chēng)查找
yum search string #根據(jù)關(guān)鍵字string查找
版本升級(jí)
yum check-update? ? #檢查可更新的程序
yum upgrade packagename? #指定包升級(jí)
版本刪除
yum remove? packagename.rpm
yum deplist packagename? #查看包依賴(lài)
dnf篇
dnf是新一代的rpm軟件包管理器。它克服了yum的一些瓶頸罕模,提升了用戶體驗(yàn)评腺,內(nèi)存占用帘瞭,依賴(lài)分析淑掌,運(yùn)行速度等多方面的內(nèi)容。dnf使用rpm, libsolv和hawkey 庫(kù)進(jìn)行包管理操作蝶念。
DNF最新穩(wěn)定發(fā)行版版本號(hào)是1.0抛腕,發(fā)行日期在2015年5月11日芋绸,dnf包管理器大部分采用Python編寫(xiě),發(fā)行許可為GPL v2担敌。dnf并未默認(rèn)安裝在RHEL或CentOS7系統(tǒng)中摔敛,但Fedora 22已經(jīng)默認(rèn)安裝。
版本安裝
dnf install packagename.rpm
版本查看
dnf list installed? #列出所有安裝軟件
dnf list? #列出待安裝和已安裝軟件
版本升級(jí)
dnf upgrade packagename.rpm
版本刪除
dnf remove packagebame.rpm
apt-get篇
apt-get命令是Debian Linux發(fā)行版中的APT軟件包管理工具全封。所有基于Debian的發(fā)行都使用這個(gè)包管理系統(tǒng)马昙。使用apt-get命令的第一步就是引入必需的Debian軟件庫(kù)。apt-get update可以互聯(lián)網(wǎng)上公共站點(diǎn)上的軟件包地址更新到/etc/apt/sources.list刹悴,apt-get就能搜索到想要的軟件行楞。
版本安裝
apt-get install packagename.deb
版本查看
apt list | grep ftp
版本升級(jí)
apt-get dist-upgrade
版本刪除
卸載時(shí)保留配置文件:apt-get remove packagename.deb
卸載時(shí)刪除配置文件:apt-get –purge remove packagename.deb
apt-key命令用于管理Debian Linux系統(tǒng)中的軟件包密鑰。每個(gè)發(fā)布的deb包土匀,都是通過(guò)密鑰認(rèn)證的子房,apt-key用來(lái)管理密鑰。
apt-key list? ? ? #列出trusted數(shù)據(jù)庫(kù)中的key就轧。
apt-key add keyname? #把key添加到本地trusted數(shù)據(jù)庫(kù)中证杭。
apt-key del keyname? #從本地trusted數(shù)據(jù)庫(kù)刪除key。
apt-key update? ? #更新本地trusted數(shù)據(jù)庫(kù)妒御,刪除過(guò)期的key解愤。
dpkg篇
dpkg命令是Debian Linux系統(tǒng)用來(lái)安裝、創(chuàng)建和管理軟件包的實(shí)用工具乎莉。
版本安裝和升級(jí)
dpkg -i package.deb
版本查看
dpkg -l package? #顯示該包的版本
dpkg -L package #列出與該包關(guān)聯(lián)的文件
dpkg --unpack package.deb? #解開(kāi)deb包的內(nèi)容
dpkg -S keyword? ? ? ? #搜索所屬的包內(nèi)容
dpkg -c package.deb? #列出deb包的內(nèi)容
版本刪除
dpkg -r package.deb #刪包但不刪配置文件
dpkg -P package.deb #刪除包和配置文件
源碼安裝
[root~ ] tar xvf test.tar.gz
版本安裝
[root@~] ./configure && make &&? make inatcall
版本卸載
[root@~]? make unstall
安裝源設(shè)置
1. yum@rpm
[root@localhost ]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
[root@localhost yum.repos.d]wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo
2. apt-get@deb
apt-get update將互聯(lián)網(wǎng)上公共站點(diǎn)上的軟件包地址更新到/etc/apt/sources.list
apt-get source package 下載該包的源代碼
3. 版本下載命令wget
httpUrl下載
wget http://www.linuxde.net/testfile.zip
-b 后臺(tái)運(yùn)行琢歇,-c斷點(diǎn)續(xù)傳,-o 文件重命名
httpUrl偽代理下載
wget --user-agent="Mozilla/5.0 (Windows;? U; Windows NT 6.1; en-US)? AppleWebKit/534.16(KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16"? http://www.linuxde.net/testfile.zip
FtpUrl下載
wget ftp://usename:passwd@192.168.0.100:21/home/test.tar.gz
wget --ftp-user=USERNAME --ftp-password=PASSWORD? ftp://192.168.0.100:21/home/test.tar.gz
下載多個(gè)文件
wget -i filelist.txt
cat filelist.txt
ftp-url
http-url