1.Linux系統管理體系——軟體包管理
Linux下面的軟體包格式為:rpm格式(紅帽系列系統,CentOS,麒麟系統)或deb格式(Debian,Ubuntu)
安裝軟體方式 | 舉例 | 說明 | 應用場景 |
---|---|---|---|
yum/apt 方式 | 點外賣,缺啥少啥,外賣解 決 | 透過網路下載軟體包,替我們安裝, 如果 有依賴自動下載依賴並安裝. 自動. | 大部分場景,沒有網路可以自 建yum軟體倉庫,內網使用。 |
rpm/dpkg 方式 | 半成品,缺啥少啥,自己解 決 | 手動下載rpm包,手動安裝rpm包,缺少依 賴需要自己解決 | 沒有網路,誤刪除軟體包,依 賴較少 |
編譯安裝 方式 | 自己做,缺啥少啥,自己解 決 | 可以自定義安裝,比較漫長,缺少依賴自 己解決 | 軟體進行自定義,增加功能 |
二進位制安 裝方式 | 點外賣+自取,缺啥少啥,自 己解決(綠色軟體免安裝) | 類似於綠色軟體,解壓既用,可能需要準 備環境, 並非每個軟體都有,一般是服務,資料 庫,k8s,promethues監控 | 如果有可以選用,優先選擇 yum,沒有那就選擇二進位制方式 |
- 安裝方式推薦
- 1️⃣yum優先
- 2️⃣rpm包
- 3️⃣二進位制
- 4️⃣ 編譯安裝
1.1 rpm安裝方式
- 增,刪,改,查
rpm命令 | 選項及含義 |
---|---|
增加-安裝 | ⭐-ivh (-i install ) xxxx.rpm |
檢視-檢查 | ⭐-qa (query all) 檢視軟體包是否安裝 |
-ql 檢視軟體包內容 | |
-qf 檔案或命令絕對路徑 檔案或命令所歸屬的軟體包 | |
修改-升級 | -Uvh 升級軟體包(如果軟體包不存在,相當是ivh安裝) |
刪除 | ⭐-e 刪除軟體包 |
1.2 增加-安裝rpm包
-ivh
-i install
-v 顯示過程
-h 人類可讀顯示過程
案例01 安裝rpm包
#下載軟體包
wget --no-check-certificate -P /server/tools/ https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.0-1.el7.x86_64.rpm
wget下載指定內容,預設下載到當前目錄
-P 下載到指定目錄,目錄不存在會建立
-no-check-certificate 下載地址https,加上這個選項,如果不加(下載失敗)
#安裝依賴(後面yum部分可以解決軟體包依賴和查詢依賴)
yum install -y pcre2
#安裝軟體包zabbix-agent2
rpm -ivh zabbix-agent2-6.0.0-1.el7.x86_64.rpm
如果不安裝依賴,則會提示缺少依賴而安裝失敗
1.3 查詢 - rpm
- 檢查軟體包是否安裝成功 ⭐️⭐️⭐️⭐️⭐️
# 書寫方法 利用管道+grep進行過濾 推薦
rpm -qa |grep zabbix
#不使用管道 直接寫軟體包的名字
rpm -qa zabbix-agent2
- 檢查軟體包的內容(已經安裝) ⭐️⭐️⭐️⭐️⭐️
rpm -ql #list
rpm -ql 軟體
rpm -ql zabbix-agent2
⚠️軟體包不等同於命令。
一般情況下一個軟體包中有1個命令,tree,telnet軟體包。
更多情況中1個軟體包下面可能有多個命令,lrzsz(rz,sz),net-tools
- 查詢某個命令或檔案屬於哪個軟體包 (熟悉)
rpm -qf 命令或檔案的絕對路徑,用於查詢已經安裝命令或檔案屬於哪個軟體包。 後面我們使用yum provides命令查詢即可。
未來 一個軟體包中可能包含多個命令.
直接透過yum安裝就會失敗
cowsay 軟體包
-> cowsay命令
-> animalsay命令
-> cowthink命令
yum install -y animalsay 則安裝失敗.
原因: yum/rpm 安裝的是軟體包,而不是軟體包中的命令或檔案.
如何透過命令,檔案找出歸屬的軟體包(軟體包要已經安裝)
rpm -qf /sbin/ifconfig
1.4 修改-升級 ⭐
用於透過rpm包的方式升級軟體。
- 升級軟體(小版本
6.0.0 升級到 6.0.7 版本
-Uvh -U表示update/upgrade升級的
wget -P /server/tools/ --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpm
root@myvps ~]# rpm -Uvh /server/tools/zabbix-agent2-6.0.7-1.el7.x86_64.rpm
警告:/server/tools/zabbix-agent2-6.0.7-1.el7.x86_64.rpm: 頭V4 RSA/SHA512 Signature, 金鑰 ID a14fe591: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:zabbix-agent2-6.0.7-1.el7 ################################# [ 50%]
正在清理/刪除...
2:zabbix-agent2-6.0.0-1.el7 ################################# [100%]
[root@myvps ~]# rpm -qa |grep zabbix
zabbix-agent2-6.0.7-1.el7.x86_64
如果直接使用-ivh安裝,會提示配置檔案的一些衝突導致安裝失敗(檔案衝突)
1.5 刪除
-
刪除對應的軟體包(rpm安裝或yum安裝),其他方式(編譯,二進位制)無法刪除。
-
yum,rpm安裝軟體,刪除軟體的時候, 建議透過rpm命令刪除 , 非必須不推薦刪除軟體。
-
刪除軟體包,-e(erase)
rpm -e 軟體包
rpm -e zabbix-agent2
rpm -qa |grep zabbix
5.1加餐
echo $?-----------表示上個命令是否執行成功(0表示成功)
2. yum軟體包管理
- yum是軟體包管理器,替我們下載rpm包,替我們安裝.
- 推薦安裝 命令補全增強工具
yum install -y bash-completion bash-completion-extras
安裝後重新登入Linux,可以對yum選項進行tab鍵
- yum安裝軟體流程
- yum源的配置(從哪裡下)
- yum命令的配置(如何下載與儲存到哪裡)
- yum命令
2.1 yum軟體安裝全流程
- yum命令: 下載與安裝軟體包 配置檔案/etc/yum.conf
- yum倉庫/源: 存放軟體包地方, 配置目錄/etc/yum.repos.d/*.repo repository源
2.2 yum源配置 ⭐️⭐️⭐️⭐️⭐️
- 使用虛擬機器(私有云),物理伺服器需要配置yum源
- 如果使用公有云,則一般都是配置好的.
yum源配置檔案詳解 | |
---|---|
[base] | yum源的名字 |
name= | 說明資訊 |
baseurl= | yum源地址,開啟後要看到repodata目錄,這是yum配置的核心. |
enabled=1 | 是否開啟這個yum源 |
gpgcheck=1 | 開啟軟體包檢查,未來自建yum倉庫可以關閉. |
gpgkey | 用於檢查的秘鑰. 如果關閉檢查gpgkey省略. |
-
更多操作yum源配置檔案詳解
- 配置檔案格式(掌握格式即可)
[base] 這個源的名字
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http: /mirrors.aliyun.com/centos/$releasever/os/$basearch/
http: /mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http: /mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http: /mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
- 檢視系統正在使用的yum源列表
yum repolist # repo源 list列表
中間的路過
源標識(repo id)
源標識 源名稱 狀態
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,791
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 526
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 6,173
目前這裡從這裡可以看出有base,extras,updates,epel 4個yum源
- base extras updates 是系統預設的yum源
- epel 是額外的yum源
- 如何配置置⭐️⭐️⭐️⭐️⭐️
- 阿里雲 /etc/yum.repos.d/ CentOS-Base.repo epel.repo
https://developer.aliyun.com/mirror/
#配置base源
1.備份已有yum源的配置檔案
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.rep
https: /mirrors.aliyun.com/repo/Centos-7.repo
# 增強yum源 epel源 ()
yum install -y wget
# 2.配置系統預設的源,改為阿里雲的。
使用wget或者curl 下載阿里雲的yum源的配置檔案到/etc/yum.repos.d/目錄下
wget -O /etc/yum.repos.d/epel.repo http: /mirrors.aliyun.com/repo/epel-7.repo
下載並改名,存放到指定目錄中。
# 3.修改了bash,extras,updates是系統預設的yum源,改為了阿里雲
https: /mirrors.aliyun.com/
#配置base源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo
https: /mirrors.aliyun.com/repo/Centos-7.repo
#增強yum源 epel源 ()
yum install -y wget
wget -O /etc/yum.repos.d/epel.repo http: /mirrors.aliyun.com/repo/epel-7.repo
- 清華
https: /mirrors.tuna.tsinghua.edu.cn/
# 對於 CentOS 7 新安裝的centos 7 沒有配置源
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e
's|^#baseurl=http: /mirror.centos.org|baseurl=https: /mirrors.tuna.tsinghua.edu.cn|g
' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
如果已經配置了阿里雲的源,修改為清華源,命令如下
CentOS-Base.repo epel.repo
vim中進行替換
:%s#http: /mirrors.aliyun.com#https: /mirrors.tuna.tsinghua.edu.cn#g
:%s#找啥#替換成啥#g
:1,20s#找啥#替換成啥#g
2.3 yum命令配置檔案
未來在正式環境中幾乎很少修改,未來也就是我們想把yum安裝過的rpm包進行儲存
- 修改/etc/yum.conf,找出keepcache行=0改為=1即可;
/etc/yum.conf yum命令的配置檔案 | |
---|---|
keepcache | =0關閉快取,軟體下載安裝夠自動刪除rpm包 =1開啟快取,軟體下載安裝後保留rpm。(自建yum源) |
cachedir | yum下載軟體包的快取目錄,/var/cache/yum/$basearch/$relesever |
logfile | yum命令的記錄 /var/log/yum.log |
/etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #快取目錄
keepcache=1 #是否保留快取, 0表示不保留快取, 1表示保留快取
# 測試 重新安裝
yum reinstall -y tree cowsay
生產應用的建議keepcache,未來沒有網路的環境,可以找個有公網的主機,開啟keepcache,下載各種服務軟體. 保留快取,透過快取的rpm包進行安裝.
2.4 yum命令詳情 ⭐️⭐️⭐️⭐️⭐️
- 增刪改查
yum命令 | 格式與說明 |
---|---|
增 | yum install -y tree |
查 | yum provides 內容 |
yum search all 內容 | |
yum repolist 檢視源列表 | |
刪除 | yum remove 刪除軟體包及依賴 |
yum clean all 清空快取 | |
改 | yum update/upgrade |
選項 | -y 遇到有yes/no的時候選擇yes |
4.1增-安裝軟體
- yum安裝軟體包
必會:yum install -y tree
-y表示提示是否安裝,是否確認的時候預設選擇yes
使用較少:重新安裝軟體包
yum reinstall -y tree
4.2查-檢查軟體/搜尋軟體
- 查詢某個命令屬於哪個軟體包,查詢某個依賴屬於哪個軟體包。
必會:根據軟體包內容
yum provides 命令或檔案 找出這個命令或檔案屬於的軟體包
#rpm -qf進階版本 ,軟體要已經安裝.
ifconfig
備用搜素命令
yum search all ifconfig 結果會很多。
一個一個測試。
[root@oldboy-lnb-king-v3 ~]# yum provides ifconfig 中間內容略 net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools 源 :@base 匹配來源: 檔名 :/usr/sbin/ifconfig ifconfig屬於的軟體包:net-tools
- 必會:檢視yum源資訊
yum repolist
- 熟悉: 顯示所有yum倉庫中所有軟體,未來用於根據軟體包名字查詢。
yum list
4.3 刪
儘量不要使用yum命令刪除軟體,刪除的時候可能會把依賴刪除掉。
-
刪除軟體包-yum remove
-
不推薦使用,remove會刪除依賴,如果要刪除使用rpm -e
-
刪除/情況本地快取
-
yum clean all 自建yum倉庫需要使用,使用公有的yum源,一般不用.
4.4 改-升級
yum install的時候安裝或升級。
-
更新的命令。
-
yum update 或 yum upgrade,軟體或命令有BUG或漏洞,需要更新下。
yum install -y tree vim wget bash-completion bash-completion-extras lrzsz nettools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bindutils nethogs expect
https: /www.jianshu.com/p/604b4d79a227 軟體說明
3. Ubuntu系統軟體包管理
- apt源
- apt/apt-get --------> yum
- dpkg -----------> rpm
3.1配置源
vim /etc/apt/sources.lis
deb https: /mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https: /mirrors.aliyun.com/ubuntu/ focal-security main restricted universe
multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https: /mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe
multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe
multiverse
# deb https: /mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe
multiverse
# deb-src https: /mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe
multiverse
deb https: /mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe
multiverse
deb-src https: /mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
編輯完成一定執行
apt update #命令,用於生成本地apt快取,如果不做則無法安裝軟體。
提示
Fetched 39.1 MB in 44s (888 kB/s)
Reading package lists . Done
Building dependency tree
Reading state information . Done
103 packages can be upgraded. Run 'apt list -upgradable' to see them.
表示OK了。
3.2安裝軟體
安裝軟體並測試
apt install -y cmatrix lolcat sl cowsay
3.3 檢查軟體
功能 | debian(ubuntu) | 紅帽(Centos,麒麟) |
---|---|---|
檢查是否安裝 | dpkg -l | rpm -qa |
安裝 | dpkg -i | rpm -ivh |
檢查軟體包內容 | dpkg -L | rpm -ql |
刪除 | dkkg -r | rpm -e |
root@oldboy-ubuntu-server:~# dpkg -l |grep lolcat
ii lolcat 42.0.99-1 all
colorful `cat`
root@oldboy-ubuntu-server:~# dpkg -l |grep cmatrix
ii cmatrix 2.0-2 amd64
simulates the display from "The Matrix"