系統管理體系——軟體包管理

殇ベ墨~發表於2024-11-13

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

如果不安裝依賴,則會提示缺少依賴而安裝失敗

image

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源

image

2.2 yum源配置 ⭐️⭐️⭐️⭐️⭐️

  • 使用虛擬機器(私有云),物理伺服器需要配置yum源
  • 如果使用公有云,則一般都是配置好的.
yum源配置檔案詳解
[base] yum源的名字
name= 說明資訊
baseurl= yum源地址,開啟後要看到repodata目錄,這是yum配置的核心.
enabled=1 是否開啟這個yum源
gpgcheck=1 開啟軟體包檢查,未來自建yum倉庫可以關閉.
gpgkey 用於檢查的秘鑰. 如果關閉檢查gpgkey省略.
  • 更多操作yum源配置檔案詳解

image

  • 配置檔案格式(掌握格式即可)
[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"

相關文章