天天看點

(0基礎學Linux系列)2.12 Linux軟體包管理

1.1 軟體包系統

不同的Linux發行版用的是不同的軟體包系統,并且原則上,适用于一種發行版的軟體包與其他版本是不相容的。

多數Linux發行版采用的不外乎兩種軟體包技術陣營,即 Debian 的 .deb 技術和 Red Hat 的 .rpm 技術。

當然也有一些特例,比如Gentoo、Slackware和Foresight等,但多數版本采取的還是下表中所列的兩個基本軟體包系統。

主流軟體包系統類

軟體包系統 發行版本(隻舉例了部分)
Debian類(.deb技術) Debian、Ubuntu
Red Hat類( .rpm 技術) CentOS、Red Hat

1.2 rpm 軟體包指令

1.2.1 指令格式

rpm [選項] [軟體包名稱]
           

1.2.2 安裝rpm包

1)安裝常用選項

選項 描述
-i 安裝rpm包
-v 顯示安裝詳細資訊
-h 顯示安裝rpm進度

2)使用執行個體

rpm -ivh  包名

# 網址
rpm -ivh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpm

# 全路徑帶包名
rpm -ivh /root/nginx-1.18.0-2.el7.ngx.x86_64.rpm

# 包名
rpm -ivh nginx-1.18.0-2.el7.ngx.x86_64.rpm
           

1.2.3 更新rpm包

1)更新選項

選項 描述
-U 如果老版本不存在則安裝新版本,存在則更新新版本

2)使用執行個體

rpm -Uvh  包名

# wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
# rpm -Uvh nginx-1.20.0-1.el7.ngx.x86_64.rpm 
           

注意事項:

  1. 更新前做好備份。
  2. 測試環境測試好。

1.2.4 查詢rpm包

1)查詢常用選項

選項 描述
-q 檢視指定軟體包是否安裝
-qa 檢視系統中已安裝的所有RPM軟體包清單
-qi 檢視指定軟體的詳細資訊
-ql 查詢指定軟體包所安裝的目錄、檔案清單
-qc 查詢指定軟體包的【配置檔案】
-qf 查詢檔案或目錄屬于哪個RPM軟體
-qip 查詢未安裝的rpm包詳細資訊
-qlp 查詢未安裝的軟體包會産生哪些檔案

2)-qa 檢視系統中已安裝的所有RPM軟體包清單

# rpm -qa nginx
           

3)-qi 檢視指定軟體的詳細資訊

# rpm -qi nginx
           

4)-ql 查詢指定軟體包所安裝的目錄、檔案清單

# rpm -ql nginx
           

5)-qc 查詢指定軟體包的【配置檔案】

# rpm -qc nginx
           

6)-qf 查詢檔案或目錄屬于哪個RPM軟體

# rpm -qf /etc/hosts
# rpm -qf /usr/bin/cp
# rpm -qf `which ifconfig`
           

7)-qip 查詢未安裝的rpm包詳細資訊

# rpm -qip nginx-1.18.0-2.el7.ngx.x86_64.rpm
           

8)-qlp 查詢未安裝的軟體包會産生哪些檔案

# rpm -qlp nginx-1.18.0-2.el7.ngx.x86_64.rpm 
           

1.3 yum智能軟體包管理

1.3.1 yum介紹

1)什麼是yum

Yum是RedHat以及CentOS中的軟體包管理器。能夠通過網際網路下載下傳 .rpm 包并且安裝,并可以自動處理依賴性關系,無須繁瑣地一次次下載下傳、安裝。

PS: yum是生産常用安裝工具

2)什麼是yum源

要想使用yum工具安裝、更新軟體,就需要有一個包含各種rpm軟體包的軟體倉庫,這樣的軟體倉庫就稱為 yum 源。

yum源分為:

  1. 網際網路yum源(阿裡雲、網易、清華源)。
  2. 區域網路yum源(自己做一個yum源,http/ftp)(1.速度快。2.制作的rpm放到yum源)。
  3. 伺服器本地yum源(上不了網,把iso作為yum源)。

3)常見網際網路yum源

  1. 官方yum源:很多軟體集合的線上倉庫,也稱為base基礎源
  2. epel源:也稱為拓展源,擁有很多base源沒有的軟體
  3. 第三方源:比如nginx,zabbix,Docker等軟體開發方開源軟體的官方倉庫

**PS:*yum源預設都放在/etc/yum.repos.d/目錄下,以.repo結尾

常見網際網路yum源位址:

  • http://mirrors.aliyun.com/repo/
  • https://mirrors.tuna.tsinghua.edu.cn/
  • https://mirrors.tuna.tsinghua.edu.cn/help/centos/
  • https://mirrors.tuna.tsinghua.edu.cn/help/epel/

4)Linux系統本地yum源配置

  1. 網際網路阿裡雲yum源配置
#預設系統是國外源,需要替換為國内的源

方法1:
# wget -q -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

方法2:
# curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
           
  1. 網際網路epel源配置
#擴充源,有很多軟體在基本源中沒有
方法1:
# wget -q -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

方法2:
# curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

方法3:
# yum install epel-release
           
  1. 網際網路特定軟體官方源配置

    Nginx web軟體官方源,有最新的nginx版本,查找方法:

    1)進入nginx.org,進入download頁面。

    2)頁面結尾進入“Linux packages for stable and mainline versions.”即可。

    3)配置如下

PS: http://nginx.org/en/linux_packages.html

# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo 
baseurl=http://nginx.org/packages/centos/7/$basearch/ 
gpgcheck=0
enabled=1
           

1.3.2 yum使用執行個體

1)使用yum查詢軟體包的方式

# 檢視所有軟體包
yum list

# 檢視指定軟體包 不需要yum list|grep tree.
yum list tree 

# 看軟體包詳細資訊。
yum info ftp   
           

2)使用yum安裝軟體包的方式

# 需要确認
yum install tree

# 非互動
yum install tree -y   

#安裝本地的rpm包, 如果有依賴關系, 會自動從網際網路軟體倉庫中下載下傳所需依賴
yum localinstall /mnt/Packages/bind-9.11.4-16.P2.el7.x86_64.rpm

#直接安裝網絡上的rpm包
yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
           

3)使用yum重新安裝軟體包的方式(了解,工作中不用)

yum install vsftpd

# 1.如果不小心删除vsftpd配置檔案
rm -f /etc/vsftpd/vsftpd.conf

# 2.可以對軟體進行重新安裝
yum reinstall vsftpd

# 3.檢查軟體的配置檔案
rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
           
#對比Linux已安裝的軟體和yum倉庫中的軟體, 有哪些需要更新
yum check-update

#更新acl軟體
yum update acl -y

#如下的執行很危險,這代表更新整個系統所有的軟體,包括核心
yum update -y

#注意事項:
1)生産線慎用,最好不用。
2)安裝系統之後,上線前。
3)測試環境,模拟正式環境。然後上正式。
           
# yum remove samba -y
           
#列出yum源可用的軟體倉庫
yum repolist

#列出全部yum源可用和禁用的倉庫
yum repolist all

#查找某個指令或檔案屬于那個軟體包(生産常用)
yum provides /etc/my.cnf
yum provides cd