標籤:linux redhat centos yum rpm
RedHat系列軟體管理--二進位軟體包管理
Linux學習思想-Linux相對與Windows來非常透明,因此,無論是系統,還是軟體,都會有本身內建,或者是Man給提供的非常詳細的說明/協助文檔,只要我們利用好這些文檔,只要英文足夠好,不需要任何教科書,任何教學視頻,你都可以學好Linux!
RPM包管理
Linux軟體包命名形式
sudo-1.7.2p1-5.el5.i386.rpm
#其中包括軟體名(sudo),版本號碼(1.7.2pl),發行號(5.el5),和硬體平台(i386)
卸載軟體包
rpm -e [soft-name]#如果其它軟體包有依賴關係,卸載時會產生提示資訊
rpm -e --nodeps [soft-name]#添加--nodeps,可強行卸載;但是不建議這樣卸載
安裝軟體包
rpm -ivh [軟體包名]【如:sudo-1.7.2p1-5.el5.i386.rpm】
v: 表示顯示詳細資料,可選
h:表示顯示安裝進度,可選
1、掛載光碟片:【最佳實務:將光碟片,隨身碟等掛載到/mnt目錄下】
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom#現在開啟/mnt/cdrom就相當與訪問光碟片內容
2、查詢是否存在:ls | grep sudo
3、安裝:rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm
4、查看是否已安裝:rpm -q sudo
5、rpm -qa | grep samba#查詢所有與samba有關的軟體包
【-qa表示查詢安裝了的所有的軟體包】
rpm其他安裝選項
--excludedocs不安裝軟體的文檔
--prefix=PATH 將軟體包安裝到由PATH指定的路徑下
如:rpm -ivh –prefix=/usr/local sudo-1.7.2p1-5.el5.i386.rpm
【但是:大部分的rpm包都不允許改變安裝路徑】
--test只是進行測試,而不進行真正安裝,比如擷取依賴關係,該軟體包是否已經安裝
附-光碟片中所有的二進位軟體全部儲存在CentOS|Packages[新版centOS]目錄下
特殊情況
A.覆蓋安裝
--replacepkgs覆蓋軟體安裝包
B.安裝衝突
如果要安裝的軟體包中有一個檔案已在安裝其它軟體包時安裝,會出現以下錯誤資訊:
rpm -ivh sudo-1.8.6p3-7.el6.i686.rpm warning: sudo-1.8.6p3-7.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEYPreparing... ########################################### [100%]package sudo-1.8.6p3-7.el6.i686 is already installed
使--replacefiles忽略改出錯資訊,覆蓋安裝
C.未解決依賴關係
該軟體包可能依賴於其它軟體包,在安裝了特定的軟體包之後才能安裝該軟體包。
rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm failed dependencies: sudo is needed by bark-3.2-1l
使用--nodeps 選項,可以強制安裝此軟體包,十有八九運行不了。
升級軟體包
sudo -Uvh sudo-1.8.6p3-7.el6.i686.rpm
查詢【重要】
-a 查詢所有已安裝的軟體包.
-f 查詢檔案所屬軟體包
-p 查詢軟體包,還沒安裝的軟體包
-q 查詢軟體包是否安裝
-i 顯示軟體包資訊
-l 顯示軟體包中的檔案清單及所在位置
-d 顯示被標註為文檔的檔案清單及所在位置
-c 顯示被標註為設定檔的檔案清單及所在位置
執行個體:
1、查詢檔案/命令隸屬的軟體包
rpm -qf /etc/services#設定檔
rpm -qf /bin/ls#命令
2、查詢軟體包資訊
rpm -qi samba//查詢一個已經安裝的軟體包
rpm -qip samba-3.6.9-151.el6.i686.rpm#可以查詢還沒有安裝的rpm包,全稱!
3、查詢安裝包的安裝檔案,及安裝檔案所在位置
rpm -ql sudo
rpm -qip vsftpd-2.2.2-11.el6_3.1.i686.rpm#沒有安裝,全稱!
4、查詢軟體包協助文檔及所在位置
rpm -qd sudo
rpm -qdp vsftpd-2.2.2-11.el6_3.1.i686.rpm#沒有安裝,全稱!
5、查詢軟體包設定檔及所在位置
rpm -qc
rpm -qcp//同上
RPM綜合運用執行個體
一、vncserver是幹什麼用的???
rpm -qf vncserver
然後rpm -qi vnc-server#得知仔細資訊
二、查詢vim的標準注釋
1.查詢系統中是否已經安裝某個安裝包用:rpm -qa | grep vim
而不是直接用: rpm -a vim
查詢範例文件:rpm -qa vim | grep example
2.然後開啟並查看
vi /usr/share/vim/vim72/vimrc_example.vim
校正
#可用於協助我們判斷軟體包是否出現問題,以及出現的問題在哪裡
rpm -V name正常情況下不會有任何提示,他的任何檔案都沒與更改
【rpm在安裝一個軟體到系統中時,會自動產生一個rpm庫,校正時,會和這個庫比對】
5 檔案的md5校正值
S 檔案大小
L 連結檔案
T 檔案的建立或最後修改時間
D 裝置檔案
U 檔案的使用者
G 檔案的使用者組
M 檔案的許可權
附-md5sum:通過md5演算法對檔案產生唯一的校正值,只要檔案的內容不變,則校正值就不會變,對該檔案內容做任何一個微小的改變,他的校正值都會改變
重要檔案修複
比如/etc/inittab檔案被刪除,可以將該檔案從原始的安裝光碟片中提取出來
1.定位該檔案隸屬於哪個軟體包
rpm -qf /etc/inittab
2.解壓所有檔案到目前的目錄【不推薦】
rpm2cpio initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv
解壓指定檔案到目前的目錄【推薦】
rpm2cpio /mnt/cdrom/initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv ./etc/inittab 【注意:./etc/inittab只允許提取到目前的目錄下】
【在Linux Server系統的管理上,我們更傾向與穩定,而不是最新版】
YUM軟體包管理
應用YUM的好處
(1)自動解決軟體安裝包依賴關係
(2)方便軟體包的升級
(3)可信任,官方軟體包
1、安裝
yum install sudo
2、檢測升級
yum check-update sudo
yum check-update#檢測所有的軟體包的升級
3、升級【比較重要,常用的軟體包要經常升級一下】
yum update sudo
4、查詢軟體包資訊
yum list//會列出軟體源上的所有軟體包
最佳實務:yum list | less
yum list | grep samba
5、查詢軟體包資訊
yum info [軟體名]
yum info sudo
6、卸載軟體包
yum remove sudo
7、查看協助資訊
yum --help或者 man yum
【最佳實務:yum --help | less】
RedHat系列軟體管理(第二版) --二進位軟體包管理