Linux軟件包管理:前端
在講解如何使用rpm,yum來管理軟件包前,咱們先來看一個很重要的知識點,如何掛在光盤。
node
實驗環境下,首先要將CentOS安裝鏡像光盤載入,以下截圖:linux
注意: 此時CentOS系統處於已啓動狀態.web
掛載光盤:shell
[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) 卸載ui
命令: rpm -e [rpm軟件包名稱簡寫] 舉例: [root@localhost ~]# rpm -e sudo [root@localhost ~]# rpm -evh sudo #顯示卸載進度
注意: 若是與其餘軟件包有依賴關係,卸載時會產生提示信息,可以使用 --nodeps 強行卸載.spa
(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
注意: 做爲擴展,有了軟件包文件的提取,如此咱們就能夠恢復系統中或軟件中被修改、篡改或刪除的文件了. 步驟以下:
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/
腳本安裝與卸載:
以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