Linux學習筆記——軟件包管理
1.RPM包的管理
RPM軟件包的一個例子:
sudo-1.7.2p1-5.el5.i386.rpm
這個rpm包名包括軟件名sudo,版本號1.7.2p1,發行號5.el5,和硬件平台i386
(1)安裝
掛載光盤:
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
[plain]
# rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm
-ivh是可選的,一般來說i是必選的,v表示顯示安裝信息,h表示用#表示安裝進度
在CentOs光盤中,包含了所有核心rpm的二進制包,可以使用 ls | grep sudo命令來查找sudo安裝包
幾個相關的命令:
[plain]
rpm -q sudo 查詢sudo工具是否已經安裝
[plain]
rpm -qa | grep sudo 查詢與sudo相關的所有軟件包
其它安裝選項:
--excludedocs 不安裝軟件包中的文檔文件
--prefix PATH 將軟件包安轉到有PATH指定的路徑下
--test 只對安裝進行測試,並不實際安裝
[plain]
rpm -ivh --excludedocs sudo 這裡的--excludedocs有兩個--
對於 --prefix PATH沒有多少意義,因為大多數rpm安裝包不允許指定安裝路徑
A.覆蓋安裝
當使用rpm -ivh安裝軟件提示如下信息時:
package sudo-1.7.2p1-5.el5.i386 is already installed
如果想覆蓋安裝該軟件包,可以在命令行中使用 --replacekgs 選項
B.文件沖突
如果要安裝的軟件包有一個文件已經在安裝其他軟件包時安裝,會出現以下錯誤信息:
#rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm
conflicts with file from bark-3.2-11
sudo-1.7.2p1-5.el5.i386.rpm cannot be installed
如果想要RPM忽略該錯誤信息,可以使用 --replacefiles 命令行選項
C.未解決依賴關系
RPM軟件包可能依賴於其它軟件包,在安裝了特定軟件包之後才能安裝該軟件包。
#rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm
failed dependencies:
sudo is needed by bark-3.2-11
你必須安裝完所依賴的軟件包,才能解決這個問題,強制安裝可以使用 --nodeps 選項
(2)卸載
[plain]
# rpm -e sudo
注:a.如果其它軟件包有依賴關系,卸載時會產生提示信息,可使用-nodeps強行卸載
b.rpm -e sudo 這裡寫的是軟件名sudo,而不是軟件包名稱
(3)升級
[plain]
#rpm -Uvh sudo-1.7.2p1-5.el5.i386.rpm
注:U是大寫的
下面給出幾個RPM包管理的常用命令:
命令 功能
rpm -qf 查詢文件隸屬的軟件包
rpm -qi、rpm -qip 查詢軟件包信息
rpm -ql、rpm -qlp 查詢軟件包安裝文件
rpm -qd 查詢軟件包幫助文檔
rpm -qc 查詢軟件包配置文件 a. rpm -qi是查看已經安裝的軟件的信息,而-qip是查詢沒有安裝的軟件包的信息;
b. rpm -qi 軟件名 rpm -qip 軟件包名
c. rpm -ql sudo 查看一個軟件在系統安裝了哪些文件
d. rpm -qlp 包名 查看一個將要安裝的軟件需要在哪些目錄安裝文件
e. rpm -qa | grep vim 查詢已安裝的軟件包
(4)校驗
[plain]
# rpm -V 軟件名稱
rpm -V sudo 用於校驗sudo軟件目錄文件是否被更改,如果沒有更改,這個命令不會返回任何信息;下表是這個命令所返回的值以及所代表的含義:
5 文件的md5校驗值
S 文件大小
L 鏈接文件
T 文件的創建時間
D 設備文件
U 文件的用戶
G 文件的用戶組
M 文件的權限 例如,這個命令返回5、S、T,則說明這個軟件的md5值改變了,文件大小改變了,創建時間也改變了。
(5)軟件包文件提取
a.解壓所有文件到當前目錄
[plain]
# rpm2cpio initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv
b.解壓指定文件到當前目錄
[plain]
# rpm2cpio initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv ./etc/inittab
說明:第一個命令是把該軟件所有文件解壓到當前目錄,一般情況下很少使用;
比如不小心將系統很重要的配置刪除了,該文件又沒有備份,此時系統無法掛載,這個時候就需要用光盤進入修復模式,恢復那個被刪除的文件。
2.YUM包管理
使用yum的好處在於,它不僅能自動解決軟件包之間的依賴關系,還能很方便的進行軟件升級。
下面是常見的yum管理命令:
命令 功能
yum install 安裝
yum check-update 檢測升級
yum update 升級
yum list 軟件包查詢
yum info 軟件包信息
yum remove 卸載
yum -help、man yum 幫助
3.源代碼包安裝
應用舉例(proftpd):
[plain]
# tar -xzvf proftpd-1.3.3d.tar.gz (解壓縮包)
# cd proftpd-1.3.3d
# ./configure --prefix=/usr/local/proftpd (配置)
# make (編譯)
# make install (安裝)
a.源代碼具有很好的適用性,安裝可定制性強,可以自己配置
b.有些linux並不支持rpm包,但是源碼安裝包,由於是自己編譯安裝,可以適用於各個linux操作系統
c.源代碼安裝時最好指定安裝目錄,這一點與rpm包的安裝不同
e.make、make install這兩個命令後面都沒有參數
f.刪除軟件的時候,步驟是先關閉該進程,然後rm這個目錄
4.腳本安裝
應用舉例(webmin):
[plain]
# tar -xzvf webmin-1.530.tar.gz
# cd webmin-1.530
# vi README
# ./setup.sh
腳本一般是shell腳本,或者java腳本,腳本安裝和在windows下安裝軟件沒有多少太大區別。
5.APT包管理
對於Ubuntu系列的linux操作系統,使用APT包管理軟件。
apt-cache search 搜索軟件包
apt-cache show 軟件包信息
apt-get install 安裝
apt-get remove 刪除
apt-get update 更新軟件源
apt-get upgrade 更新已安裝包