Linux軟件包管理
Linux軟件包管理:
在講解如何使用rpm,yum來管理軟件包前,我們先來看一個很重要的知識點,如何掛在光盤。
實驗環境下,首先要將CentOS安裝鏡像光盤載入,如下截圖:
注意: 此時CentOS系統處于已啟動狀態.
掛載光盤:
[root@localhost ~]# mkdir /mnt/cdrom [root@localhost ~]# mount /dev/cdrom /mnt/cdrom/ mount: /dev/sr0 is write-protected, mounting read-only
另外接下來講解軟件包的管理,我們將以 sudo-1.8.6p7-13.el7.x86_64.rpm(sudo命令用來獲取臨時的root權限,為系統缺省裝) 為例講解。
RPM包管理:
RPM是RedHat Package Manager(RedHat軟件包管理工具)類似Windows里面的"添加/刪除程序".
(1) 卸載
命令: rpm -e [rpm軟件包名稱簡寫] 舉例: [root@localhost ~]# rpm -e sudo [root@localhost ~]# rpm -evh sudo #顯示卸載進度
注意: 如果與其他軟件包有依賴關系,卸載時會產生提示信息,可使用 --nodeps 強行卸載.
(2) 安裝
命令: rpm -ivh [rpm軟件包名稱全寫] 說明: ivh: 安裝顯示安裝進度 --install --verbose --hash
我們將從CentOS系統關盤安裝sudo-1.8.6p7-13.el7.x86_64.rpm軟件包,首先要完成上述掛載光盤
[root@localhost home]# cd /mnt/cdrom/ [root@localhost cdrom]# ls CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7 EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL [root@localhost cdrom]# cd Packages/ [root@localhost Packages]# ls | grep sudo #找到sudo的rpm軟件包 sudo-1.8.6p7-13.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh sudo-1.8.6p7-13.el7.x86_64.rpm #安裝sudo的rpm軟件包 Preparing... ################################# [100%] Updating / installing... 1:sudo-1.8.6p7-13.el7 ################################# [100%]
注意: CentOS-7系統將系統安裝時缺省的軟件包放到了/Packages目錄,而CentOS-7之前的版本將自帶的軟件包放置于/CentOS目錄,本節中我們以CentOS-7為例
(3) 查詢
命令: rpm -q [rpm軟件包名稱簡寫] 選項: -a 查詢所有已安裝的軟件包 -f 查詢文件所屬軟件包 -p 查詢軟件包 -i 顯示軟件包信息 -l 顯示軟件包中的文件列表 -d 顯示被標注為文檔的文件列表 -c 顯示被標注為配置文件的文件列表 查詢案例: 1.查詢文件隸屬的軟件包: rpm -qf 2.查詢軟件包信息: rpm -qi、rpm -qip(i表示information, p表示package) 3.查詢軟件包安裝文件: rpm -ql、rpm -qlp(l表示list, list files in package) 4.查詢軟件包幫助文檔: rpm -qd(d表示document files) 5.查詢軟件包配置文件: rpm -qc(c表示config files) 舉例: [root@localhost Packages]# rpm -q sudo sudo-1.8.6p7-13.el7.x86_64
rpm其他安裝選項:
--excludedocs 不安裝軟件包的文檔文件 --prifix PTAH 將軟件包安裝到由PATH指定的路徑下 --test 只對安裝進行測試,并不實際安裝 --replacepkgs 覆蓋安裝軟件包 --replacefiles 出現文件沖突,忽略沖突信息覆蓋安裝 --nodeps RPM軟件包可能依賴于其他軟件包,在安裝了特定的軟件包之后才能安裝該軟件包.使用--nodeps強制安裝
(4) 升級
命令: rpm -Uvh [軟件包名稱全寫] 舉例: [root@localhost Packages]# rpm -Uvh sudo-1.8.6p7-13.el7.x86_64.rpm
??(5) 校驗??
命令: rpm -V 軟件名稱 校驗結果說明: S 文件大小 M 文件的權限 5 文件的md5校驗值 L 鏈接文件 T 文件的創建時間 D 設備文件 U 文件的用戶 G 文件的用戶組
(6) 軟件包文件提取
解壓所有文件到當前目錄:rpm2cpio /mnt/cdrom/Packages/initscripts-9.49.24-1.el7.x86_64.rpm | cpio -idv
解壓指定文件到當前目錄:
rpm2cpio /mnt/cdrom/Packages/initscripts-9.49.24-1.el7.x86_64.rpm | cpio -idv ./etc/inittab</pre>
注意: 作為擴展,有了軟件包文件的提取,如此我們就可以恢復系統中或軟件中被修改、篡改或刪除的文件了. 步驟如下:
1.rpm -V命令校驗,查看軟件包文件的狀態; 2.使用rpm2cpio提取指定文件 3.替換或覆蓋需要恢復的文件YUM包管理:
[百度百科] Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝.
安裝: yum install 檢測升級: yum check-update 升級: yum update 軟件包查詢: yum list 軟件包信息: yum info 卸載: yum remove 幫助: yum --help, man yum源代碼包安裝與卸載:
以proftpd為例來說明源代碼包的安裝與卸載。
(1)源代碼包的安裝: [root@localhost proftpd]# ls proftpd-1.3.4b.tar.gz [root@localhost proftpd]# tar -zxvf proftpd-1.3.4b.tar.gz [root@localhost proftpd]# ls proftpd-1.3.4b proftpd-1.3.4b.tar.gz [root@localhost proftpd]# cd proftpd-1.3.4b/ [root@localhost proftpd-1.3.4b]# ls acconfig.h configure include m4 README README.DSO README.PAM src aclocal.m4 configure.in INSTALL Makefile.in README.AIX README.facl README.ports stamp-h.in ChangeLog contrib install-sh Make.rules.in README.capabilities README.FreeBSD README.Solaris2.5x tests config.guess COPYING lib modules README.classes README.IPv6 README.Unixware utils config.h.in CREDITS locale NEWS README.controls README.LDAP RELEASE_NOTES config.sub doc ltmain.sh proftpd.spec README.cygwin README.modules sample-configurations [root@localhost proftpd-1.3.4b]# ./configure --prefix=/usr/local/proftpd #配置 [root@localhost proftpd-1.3.4b]# make [root@localhost proftpd-1.3.4b]# make install(2)源代碼包的卸載: [root@localhost local]# ls -l | grep proftpd drwxr-xr-x. 10 root root 97 Nov 28 09:56 proftpd [root@localhost local]# rm -rf proftpd/</pre>
腳本安裝與卸載:
以webmin為例來說明腳本安裝與卸載。
[root@localhost webmin]# ls webmin-1.740.tar.gz [root@localhost webmin]# tar -zxvf webmin-1.740.tar.gz [root@localhost webmin]# ls webmin-1.740 webmin-1.740.tar.gz [root@localhost webmin]# cd webmin-1.740/ [root@localhost webmin-1.740]# ./setup.sh 安裝中... 安裝過程中會顯示: Creating uninstall script /etc/webmin/uninstall.sh .. ..done 如此我們可以使用/etc/webmin/uninstall.sh來卸載webmin注意: CentOS在webmin安裝后外部主機不能訪問,原因是CentOS中的防火墻規則較嚴密,需要將10000端口加入信任端口,
[root@localhost webmin]# cd /etc/sysconfig/ [root@localhost sysconfig]# iptables -I INPUT -p TCP --dport 10000 -j ACCEPT來自:http://my.oschina.net/LvSantorini/blog/536948