Linux軟件包管理

ygfb 8年前發布 | 14K 次閱讀 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

 本文由用戶 ygfb 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!