Linux的學習思想:Linux相對與Windows來非常透明,因此,無論是系統,還是軟件。。。都會有本身自帶,或者是Man給提供的非常詳細的說明,幫助文檔,我們要利用好這些文檔,只要英文足夠好,不需要任何教科書,任何教學視頻,你都可以學好Linux!
一、RPM包管理
Linux軟件包命名形式
sudo-1.7.2p1-5.el5.i386.rpm
其中包括軟件名(sudo),版本號(1.7.2pl),發行號(5.el5),和硬件平台(i386)
(1)卸載軟件包
rpm -e name // 如果其它軟件包有依賴關系,卸載時會 產生提示信息
rpm -e –nodeps name // 添加—nodeps,可強行卸載;但是不建議這樣卸載
(2)安裝軟件包:sudo
rpm -ivh 軟件包【如:sudo-1.7.2p1-5.el5.i386.rpm】
v: 表示顯示詳細信息,可選
h:表示顯示安裝進度,可選
1、 掛載光盤:【最佳實踐:將光盤,U盤等掛載到/mnt目錄下】
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
【現在打開/mnt/cdrom就相當與訪問光盤內容】
【光盤中所有的二進制軟件全部保存在CentOS目錄下。】
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表示查詢安裝了的所有的軟件包】
其他安裝選項
--excludedocs 不按裝軟件的文檔
--prefix=PATH 將軟件包安裝到由PATH指定的路徑下
如:rpm -ivh –prefix=/usr/local sudo-1.7.2p1-5.el5.i386.rpm
【但是:大部分的rpm包都不允許改變安裝路徑】
--test 只是進行測試,而不進行真正安裝
【比如獲取依賴關系,該軟件包是否已經安裝】
特殊情況:
A.覆蓋安裝
--replacepkgs 覆蓋軟件安裝包
B.安裝沖突
如果要安裝的軟件包中有一個文件已在安裝其它軟件包時安裝,會出現以下錯誤信息:
rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm
conflicts with file from bark-3.2-1l
sudo-1.7.2p1-5.el5.i386.rpm cannot be installed
使用—replacefiles忽略改出錯信息,覆蓋安裝
C.未解決依賴關系
該軟件包可能依賴於其它軟件包,在安裝了特定的軟件包之後才能安裝該軟件包。
rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm
failed dependencies:
sudo is needed by bark-3.2-1l
使用--nodeps 選項,可以強制安裝此軟件包,十有八九運行不了。
(3)升級
rpm -Uvh sudo-1.8.0p1-5.el5.i386.rpm
(4)查詢【重要】
-a 查詢所有已安裝的軟件包.
-f 查詢文件所屬軟件包
-p 查詢軟件包
-q 查詢軟件包是否安裝
-i 顯示軟件包信息
-l 顯示軟件包中的文件列表
-d 顯示被標注為文檔的文件列表
-c 顯示被標注為配置文件的文件列表
實例:
1、查詢文件/命令隸屬的軟件包
rpm -qf /etc/services
rpm -qf /bin/ls
2、查詢軟件包信息
rpm -qi samba //查詢一個已經安裝的軟件包
rpm -qip samba.. //可以查詢還沒有安裝的rpm包,不過要寫全稱!
3、查詢安裝包的安裝文件,及安裝文件所在位置
rpm -ql sudo
rpm -qlp sudo... //沒有安裝,全稱!
4、查詢軟件包幫助文檔及所在位置
rpm -qd sudo
rpm -qdp sudo //沒有安裝,全稱!
5、查詢軟件包配置文件及所在位置
rpm -qc
rpm -qcp //同上
RPM綜合運用實例
一、vncserver是干什麼用的???
rpm -qf vncserver
然後 rpm -qi vnc-server...得知仔細信息
二、查詢vim的標准注釋
查詢系統中是否已經安裝某個安裝包用:rpm -qa | grep vim
而不是直接用: rpm -a vim
查詢示例文檔:rpm -qa vim | grep example
(5)校驗 可用於幫助我們判斷軟件包是否出現問題,以及出現的問題在哪裡
【rpm在安裝一個軟件到系統中時,會自動生成一個rpm庫,校驗時,會和這個庫比對】
rpm -V name 正常情況下不會有任何提示,他的任何文件都沒與更改
【md5sum:通過md5算法對文件生成唯一的校驗值,只要文件的內容不變,則校驗值就不會變】
【對該文件內容做任何一個微小的改變,他的校驗值都會改變】
5 文件的md5校驗值
S 文件大小
L 鏈接文件
T 文件的創建或最後修改時間
D 設備文件
U 文件的用戶
G 文件的用戶組
M 文件的權限
(6)重要文件修復
比如/etc/inittab文件被刪除,可以將該文件從原始的安裝光盤中提取出來
首先: 定位該文件隸屬於哪個軟件包
rpm -qf /etc/inittab
然後: 解壓所有文件到當前目錄【不推薦】
# 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 sudo
6、卸載軟件包
yum remove sudo
7、查看幫助信息
yum -help 或者 man yum
【最佳實踐:yum -help | less】