[Linux學習筆記] Linux軟件包管理

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
相關文章
相關標籤/搜索