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.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源分為:
- 網際網路yum源(阿裡雲、網易、清華源)。
- 區域網路yum源(自己做一個yum源,http/ftp)(1.速度快。2.制作的rpm放到yum源)。
- 伺服器本地yum源(上不了網,把iso作為yum源)。
3)常見網際網路yum源
- 官方yum源:很多軟體集合的線上倉庫,也稱為base基礎源
- epel源:也稱為拓展源,擁有很多base源沒有的軟體
- 第三方源:比如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源配置
- 網際網路阿裡雲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
- 網際網路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
-
網際網路特定軟體官方源配置
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