在linux下安裝軟件

1.採用rpm安裝軟件

採用rpm安裝時,主要有三個選項,分別是-i選項,-q選項,-V選項,這三個選項都有着若干個子選項,我們將會分條介紹這些選項。
1.-e選項
在介紹安裝之前我們要先介紹卸載命令,這樣我們就可以拿一個包進行反覆試驗,其命令如下:

rpm -e ftp

在linux下安裝軟件




2.-i選項
-i 選項
單此一個選項,後面跟上安裝包的路徑,就是安裝軟件,我們ftp爲例,將光盤掛載在/media下:

mount /dev/cdrom /media

安裝命令如下:

rpm -i /media/Package/ftp-0.17-54.el6.x86_64.rpm

在linux下安裝軟件
用-i選項不會顯示任何安裝信息,你甚至不知道有沒有安裝成功。
-v選項
-v選項的作用就是顯示安裝的詳細信息,他是-i的子選項,只能配合-i使用,單獨使用將沒有任何意義,例如:

rpm -iv /media/Package/ftp-0.17-54.el6.x86_64.rpm

在linux下安裝軟件
如果嫌棄這樣顯示的信息還不夠詳細,可以再加一個-v選項。
-h選項
-h選項的作用就是顯示安裝百分比,例如

rpm -ih /media/Package/ftp-0.17-54.el6.x86_64.rpm

在linux下安裝軟件
所以最經典的安裝選項搭配就是-ivh,這是我們安裝軟件過程中最常用的選項
--test選項
-test選項的用途是測試安裝,並不真正的安裝軟件,我們可以測試當前環境能不能安裝,例如:

rpm -i --test /media/Package/ftp-0.17-54.el6.x86_64.rpm

在linux下安裝軟件
--nodeps選項
--nodeps選項是在安裝軟件時忽略依賴性關係,某些軟件在安裝時需要安裝其他的軟件,否則不能安裝成功,這時如果使用--nodeps就可以忽略這些依賴性關係進行安裝,例如:

rpm -i --test /media/Packages/samba4-4.2.10-9.el6.x86_64.rpm 

在linux下安裝軟件

rpm -i --nodeps --test /media/Packages/samba4-4.2.10-9.el6.x86_64.rpm

在linux下安裝軟件
--replacepkgs選項
重複安裝已經安裝過的包,文件覆蓋。例如:

rpm -i --replacepkgs /media/Packages/tree-1.5.3-3.el6.x86_64.rpm 

在linux下安裝軟件
--replacefiles選項
將要安裝包的部分文件與其他已安裝的包文件衝突,可繼續安裝,文件不覆蓋。例如
--oldpackages選項
已安裝過新版本,現在安裝舊版本
--force選項
等同於 --replacepkgs, --replacefiles, and --oldpackage.例如

rpm -i --force /media/Packages/tree-1.5.3-3.el6.x86_64.rpm

在linux下安裝軟件
--noscripts選項
安裝時不執行rpm包中的腳本。在有些軟件包中,存在一些腳本,當安裝軟件包時,會自行執行這些腳本,使用該選項就可以在安裝過程中不執行這些軟件包所攜帶的腳本。例如:
首先查看apache用戶是否存在:

id apache

在linux下安裝軟件
安裝httpd,可能因爲某些依賴關係而使得安裝不成功,所以我們加上--nodeps選項命令如下:

rpm -ih --nodeps /media/Packages/httpd-2.4.6-80.el7.centos.x86_64.rpm

在linux下安裝軟件
現在再查看用戶apache是否存在;

id apache

在linux下安裝軟件
我們可以發現安裝httpd後,多出了一個名爲apache的用戶,我們並沒有手工去創建他,爲什麼會出現呢?因爲在httpd安裝過程中,執行了創建apache用戶的腳本,如果我們使用--noscripts選項,就不會有腳本執行。




3.-q選項
-q選項是查看當前安裝軟件包的信息,和-i選項相似,他也有着衆多的子選項。
單-q一個選項是查看已安裝包的描述信息,如果這個包沒有安裝,則提示沒有安裝,例如:
在linux下安裝軟件
-a 選項
列出所有已安裝的軟件包,我們採用管道計算一下安裝了多少軟件包。
rpm -qa |wc -l
在linux下安裝軟件
-f選項
查看指定文件來源自哪一個安裝包,-f後跟的應該是文件的絕對路徑。例如:

rpm -qf /etc/rc.d/init.d/function

在linux下安裝軟件

-i選項
這個選項可以顯示包的詳細信息,不在演示。
-p選項
查詢未安裝的rpm包的信息,查詢信息的數據來自於rpm包,-p後面應該加上rpm路徑,例如

rpm -qi -p /media/Packages/ftp-0.17-54.el6.x86_64.rpm

在linux下安裝軟件
--provides選項
查詢某個包提供了哪些能力

 rpm -q --provides httpd

--whatprovides選項
查詢某個能力由哪一個rpm包提供,例如

rpm -q --whatprovides webserver

在linux下安裝軟件
--whatrequires選項
查詢某個能力被哪個rpm包所依賴,例如:

rpm -q --whatrequires webserver

在linux下安裝軟件
--changelog選項
查詢更新日誌,這個選項用處不大,不做過多介紹。
-l
列出軟件包提供的所有文件
-c
列出軟件包提供的配置文件
-d
列出軟件包提供的文檔文件
這三個選項都是列出軟件包提供的文件,但是隻能列出已安裝的軟件提供的文件。例如

rpm -q -l httpd
rpm -q -c httpd
rpm -q -d httpd

這樣可以列出httpd提供的所有文件,配置文件,文檔文件。




3. -V選項
-V選項是用來進行包校驗的,如果結果有下面的結果,說明,有內容被修改。
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTimediffers
P capabilities differ
例如:

rpm -V httpd

這時是什麼都不會顯示的,因爲沒有修改過httpd的任何文件,現在我往httpd.conf中第一行加入123.
再次執行上面命令,結果如下:
在linux下安裝軟件
說明軟件包被修改過了,具體修改了什麼東西,可以參考上面。

2.採用yum安裝

當我們使用rpm安裝軟件時,我們會發現我們安裝的包可能會依賴於其他文件,這些文件屬於那些我們沒有安裝的包,當我們先行安裝其他包時,這些軟件包也有可能依賴於其他文件,如此層層遞歸下去,會使我們的安裝過程中變得無比的繁瑣,而且有些文件名和包名是相關的,有些則不是,此時我們根本不知道這些軟件包來源於哪裏,此時將會進退維谷,而yum是rpm的前端程序,可以解決軟件包相關依賴性。可在多個庫之間定位軟件包。
想要使用yum,首先需要做的就是配置yum倉庫,yum倉庫文件在/etc/yum.repos
.d文件夾下,然後命名爲.repo ,可以是任何內容,但一定要以repo結尾,內容格式如下:

[candvd]
name=Can
baseurl=file:///media
enabled=1
gpgcheck=0
gpgkey=file:///media/RPM-GPG-KEY-CentOS-6

其中[candvd]是倉庫id,可以是任何內容,name即是倉庫名,也可以是任何內容,baseurl是倉庫指向的路徑,如果是一個文件就是file:// 後面跟上文件的路徑,如果是一個鏈接,即是跟上鍊接如:http://172.18.0.1/centos/$releasever ,路徑或者鏈接一定要到包含repodata的目錄,如上,路徑是掛載的光盤的路徑/media,而在/media下有着目錄repodata,那麼路徑就到此處。enable是代表是否啓用該倉庫,1代表啓用,0代表不啓用,gpgcheck代表是否啓用gpg驗證,1代表啓用,0代表不啓用。gpgkey代表的是公鑰,gpg是一種數據加密和數字簽名的方法,能夠保證數據傳輸的可靠性,centos光盤中有着gpgkey,我們可以使用下面的命令導入公鑰:

rpm --import /media/RPM-GPG-KEY-CentOS-6

然後可以通過下面的命令查看是否導入成功:

rpm -qa "gpg-pubkey*"

結果如下:
在linux下安裝軟件
當我們配置好一個倉庫後,需要用兩條命令使倉庫生效,命令如下:
清空倉庫緩存

 yum clean all      

在linux下安裝軟件
重建倉庫緩存

yum makecache

其實我們不需要重建yum倉庫,當我們執行任意一條yum命令時,當沒有倉庫緩存時,系統會爲我們自行重建倉庫。
我們可以用下面的命令來查看我們的倉庫:

yum repolist

在linux下安裝軟件
可以看到現在有着三個倉庫,id分別爲base,candvd,epel,兩個是我先行配置的網絡倉庫,使用的是教室服務器所提供的yum源,還有一個是本地的光盤源,這三個yum源一共提供25767個軟件包。
repolist 還有三個選項,第一個是enabled也是系統默認的,顯示激活的倉庫,我們將base禁用掉,再查看,可以發現不在顯示base倉庫。
在linux下安裝軟件
第二個選項是disabled,顯示禁用的倉庫:
在linux下安裝軟件
第三個是all,顯示所有倉庫:
在linux下安裝軟件

使用yum安裝的方法是yum install +包名,也可以同時安裝多個包,加上-y是非交互式安裝。命令如下:

yum install -y 包1 包2 ...包n

yum list 可以列出倉庫以及系統所提供的所有包,相當於yum list all,可以接倉庫的id,如果最後一列顯示是倉庫id,那麼表示該軟件包時屬於該倉庫未安裝的包;如果顯示的是@加倉庫id,那麼該軟件包是已安裝的包,並且屬於該倉庫;如果是@anaconda 該包已安裝,且是從操作系統的安裝程序anaconda安裝的。
yum list 可以跟選項,接all 就是列出所有包,默認是all,接updates就是列出所有可更新的包,接installed就是列出所有已安裝的包,如果最後一列是@repoid 表示該包安裝自指定的倉庫,如果是installed 表示該包由rpm命令手工安裝,例如:
在linux下安裝軟件
reinstall選項,能夠重新安裝指定的包名,命令如下:

yum reinstall -y +包名

update選項,能夠更新指定的包,如:

yum update tree

在linux下安裝軟件
remove選項,能夠卸載指定的包,如:

yum remove tree -y

在linux下安裝軟件
info選項,能夠查看指定包的詳細信息,如:

yum info tree

在linux下安裝軟件
provides選項,能夠搜索某一個文件來自哪個軟件包,可以是未安裝的軟件包,如:

yum provides "*/rz"

在linux下安裝軟件
search選項,能夠模糊搜索,搜索的是軟件包和軟件包的描述信息,例如:

yum search ftp

在linux下安裝軟件

deplist選項,能夠列出指定包所依賴的所有包,例如:

yum deplist tree

在linux下安裝軟件
history選項,能夠列出所有的yum歷史,例如:
在linux下安裝軟件
info加上history編號,能夠查看某條歷史的詳細信息,例如:

yum history info 12

在linux下安裝軟件
history redo 重做某條歷史,history undo 撤銷某條歷史。
yum [local]install /path/*.rpm 可以安裝本地包。

yum包組:
yum grouplist 列出所有的包組名
yum groupinfo '包組名' 查看指定包組中包含哪個包
yum groupinstall '包組名'
yum groupupdate '包組名'
yum groupremove '包組名'

3.採用dnf安裝

dnf是一個較新的安裝命令,centos6不支持dnf,可以在centos7上安裝dnf,dnf安裝速度比yum要快的多,但是幾乎所有的yum選項dnf都支持,並且dnf與yum共享數據庫,具體安裝命令如下:

yum install -y dnf

安裝dnf首先是要有dnf的源,可以從網路途徑獲取,當安裝dnf後,會發現,dnf使用的倉庫即是yum的倉庫。
安裝dnf後,我們可以像使用yum那樣使用dnf進行安裝軟件,例如:

dnf install -y tree

在linux下安裝軟件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章