Linux軟體包管理

Linux小菜鸟發表於2024-07-04

軟體包管理

【1】、Linux軟體型別

  • 開源軟體

    軟體原始碼開放,供使用者免費學習,允許使用者二次開發,使用者使用放心,後期如果開發者不再進行維護,會有其他人進行維護

  • 閉源軟體

    軟體程式碼不公開發布,無法二次開發,後期開發者如果不進行維護損失很大

【2】、開源軟體包型別

  • 原始碼包

    • 優點:

      可以看到軟體原始碼,安裝靈活,可以自定義安裝路徑和按照功能,解除安裝方便

    • 缺點:

      安裝過程麻煩,需要使用者手動編譯,需要手動解決軟體包的依賴關係

  • 二進位制包(RPM包)

    • 優點

      已經被編譯好了,安裝簡單、安裝速度快

    • 缺點

      所有功能、路徑無法自定義

封包型別 說明
rpm軟體包 副檔名為.rpm,適用於RedHat系列
deb軟體包 副檔名為.deb,適用於Debian系列
原始碼軟體包 通常以.tar.gz、.tar.bz2格式的壓縮包提供包含程式的原始程式碼檔案
其他 提供install.sh、setup、*bin、*.pl
綠色免安裝、提供已經編譯好的程式及相關軟體

【3】、RPM軟體包

Redhat Package Manager

  • 由紅帽公司提出,Redhat、SUSE等系列採用
  • 建立集中資料庫,記錄軟體包安裝/解除安裝等變化資訊,分析軟體包依賴關係

RPM包檔名特徵

  • 軟體名-版本資訊.作業系統.硬體架構.rpm

    firefox-91.9.0-1.el8_5.x86_64.rpm

rpm軟體包下載網站

1、RPM包的安裝位置

檔案類別 預設安裝位置
普通執行程式(命令) /usr/bin、/bin/
伺服器程式、管理工具 /usr/sbin/、/sbin/
配置檔案 /etc/、/etc/軟體名/
日誌檔案 /var/log/、/var/log/軟體名
程式文件、man手冊頁 /usr/share/doc/、/usr/share/man/

2、RPM查詢軟體

-q:查詢某一軟體是否安裝

-qa:查詢系統中安裝的所有軟體包

-ql:顯示軟體在系統中安裝產生了哪些資料

-qi:顯示軟體的詳細資訊

-qf:檢視某一個命令是由哪一個軟體包產生的

# 檢視軟體在系統中安裝產生了哪些資料
rpm -ql tree-1.7.0-15.el8.x86_64
/usr/bin/tree
/usr/lib/.build-id
/usr/lib/.build-id/47
/usr/lib/.build-id/47/6e749c56abc75d25e3bc5c29e83507a605fd53
/usr/share/doc/tree
/usr/share/doc/tree/LICENSE
/usr/share/doc/tree/README
/usr/share/man/man1/tree.1.gz
# 查詢軟體的詳細資訊
{24-05-29 16:28}locahost:/ root# rpm -qi tree-1.7.0-15.el8.x86_64 
Name        : tree
Version     : 1.7.0
Release     : 15.el8
Architecture: x86_64
Install Date: Tue 28 May 2024 07:45:59 PM CST
Group       : Unspecified
Size        : 108563
License     : GPLv2+
Signature   : RSA/SHA256, Mon 12 Apr 2021 05:23:54 PM CST, Key ID 15af5dac6d745a60
Source RPM  : tree-1.7.0-15.el8.src.rpm
Build Date  : Mon 12 Apr 2021 04:38:17 PM CST
Build Host  : ord1-prod-x86build003.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : infrastructure@rockylinux.org
Vendor      : Rocky
URL         : http://mama.indstate.edu/users/ice/tree/
Summary     : File system tree viewer
Description :
The tree utility recursively displays the contents of directories in a
tree-like format.  Tree is basically a UNIX port of the DOS tree
utility.
# 檢視系統中安裝了多少個軟體包
{24-05-29 16:43}locahost:/ root# rpm -qa | wc -l
663
# 檢視某一個命令是由哪一個軟體包產生的
{24-05-29 16:51}locahost:/ root# rpm -qf /usr/bin/chsh 
util-linux-user-2.32.1-43.el8.x86_64
{24-05-29 16:51}locahost:/ root# rpm -qf /usr/bin/ls  
coreutils-8.30-15.el8.x86_64

3、rpm軟體包管理

  • 軟體包依賴問題

    • 樹形依賴:a--->b--->c--->d
    • 環形依賴:a--->b--->c--->d--->a
    • 模組依賴:需要模組檔案支援
  • 如何使用光碟機所提供的軟體包

    • 首先我們需要將光碟機掛載到系統中

      [root@bogon ~]# ll /dev/cdrom
      lrwxrwxrwx. 1 root root 3 Apr  9 08:35 /dev/cdrom -> sr0
      #這是光碟機所在的位置
      
    • 進行掛載

      • 建立磁碟分割槽

        mkdir /mnt/cdrom
        
      • 把光碟機掛載到建立的磁碟分割槽下,這是臨時掛載,重啟或者關機後失效

        mount /dev/sr0 /mnt/cdrom
        
      • 永久掛載,修改配置檔案,在path:/erc/fstab寫入如下檔案,儲存並退出

        /dev/sr0		/mnt/cdrom		iso9660 defaults	0 0
        

對於RPM軟體包的管理,我們使用rpm命令去進行管理

-ivh:i安裝,v顯示詳細資訊,h顯示軟體安裝進度

{24-05-29 17:15}locahost:/opt root# rpm -i /mnt/sr0/AppStream/Packages/v/vsftpd-3.0.3-36.el8.x86_64.rpm
{24-05-29 17:20}locahost:/opt root# rpm -q /mnt/sr0/AppStream/Packages/v/vsftpd-3.0.3-36.el8.x86_64.rpm
vsftpd-3.0.3-36.el8.x86_64

-Uvh:升級安裝包(升級前先做好備份)

-e:解除安裝軟體包

-qpi:查詢軟體包的資訊

--nodesps:解除安裝軟體包時忽略依賴關係(一般不要忽略)

--import:匯入紅帽簽名檔案,一般來源於光碟的包都存在簽名

【4】、yum機制

軟體倉庫

  • 本地倉庫(也稱本地yum源):自己搭建的,建立檔案,在檔案中配置倉庫引數
    • 特點:不需要連線外網,軟體包存放本機
  • 網路倉庫:阿里、中科大、清華大學、163倉庫等
    • 特點:需要連線外網、無需任何配置,直接下載

yum可以幫助我們自動解決依賴

  • yum repolist:列出可用的軟體倉庫

    [root@xu ~]# yum repolist 
    Updating Subscription Management repositories.
    Unable to read consumer identity
    
    This system is not registered with an entitlement server. You can use subscription-manager to register.
    
    repo id                                                                                 repo name
    appstream                                                                               local_redhat_appstream
    base                                                                                    local_redhat_base
    
  • yum list:列出軟體包(包含為安裝的),也可以查詢包

    [root@xu ~]# yum list nginx
    Updating Subscription Management repositories.
    Unable to read consumer identity
    
    This system is not registered with an entitlement server. You can use subscription-manager to register.
    
    Last metadata expiration check: 0:09:44 ago on Tue 09 Apr 2024 10:14:00 PM CST.
    Available Packages
    nginx.x86_64                                                                1:1.14.1-9.module+el8.0.0+4108+af250afe                                                                appstream
    
  • yum provides 命令:搜尋該命令是由哪個軟體包提供的

  • yum update:升級軟體包

  • yum list 軟體包 --showduplicate:列出軟體包所有的版本

    [root@xu yum.repos.d]# yum list nginx --showduplicates 
    Updating Subscription Management repositories.
    Unable to read consumer identity
    
    This system is not registered with an entitlement server. You can use subscription-manager to register.
    
    nginx stable repo                                                                                                                                            51 kB/s |  55 kB     00:01    
    Available Packages
    nginx.x86_64                                                              1.16.0-1.el8.ngx                                                                                      nginx-stable
    nginx.x86_64                                                              1:1.14.1-9.module+el8.0.0+4108+af250afe                                                               appstream   
    nginx.x86_64                                                              1:1.16.1-1.el8.ngx                                                                                    nginx-stable
    nginx.x86_64                                                              1:1.18.0-1.el8.ngx                                                                                    nginx-stable
    nginx.x86_64                                                              1:1.18.0-2.el8.ngx                                                                                    nginx-stable
    nginx.x86_64                                                              1:1.20.0-1.el8.ngx                                                                                    nginx-stable
    nginx.x86_64                                                              1:1.20.1-1.el8.ngx                                                                                    nginx-stable
    nginx.x86_64                                                              1:1.20.2-1.el8.ngx                                                                                    nginx-stable
    nginx.x86_64                                                              1:1.22.0-1.el8.ngx                                                                                    nginx-stable
    nginx.x86_64                                                              1:1.22.1-1.el8.ngx                                                                                    nginx-stable
    nginx.x86_64                                                              1:1.24.0-1.el8.ngx                                                                                    nginx-stabl
    
  • yum install --setopt=obsoletes=0 軟體包:指定安裝版本(使用yum安裝軟體,如果不指定軟體版本,則預設安裝軟體倉庫中的最新版)

  • [root@xu yum.repos.d]# yum install --setopt=obsoletes=0 nginx*1.20.0 -y
    
  • yum clean all :清楚快取

  • yum makecache :生成快取

    在使用網路倉庫時一般會生成快取,提高下載速度,記錄軟體在網路倉庫所在的位置

【5】、yum軟體倉庫配置

1、永久掛載光碟機

  • 建立磁碟分割槽

    mkdir /mnt/cdrom
    
  • 把光碟機掛載到建立的磁碟分割槽下,這是臨時掛載,重啟或者關機後失效

    mount /dev/sr0 /mnt/cdrom
    
  • 永久掛載,修改配置檔案,在path:/erc/fstab寫入如下檔案,儲存並退出

    /dev/sr0		/mnt/cdrom		iso9660 defaults	0 0
    

2、yum的本地配置

  • 修改yum的repo檔案

  • 在path:/etc/yum.repo.d/rhel8.repo中填入以下內容,儲存退出

    [basos] # 具有唯一性,不可重複
    name=cdrom baseos packages #倉庫描述,描述資訊,自定義,不具備唯一性
    baseurl=file:///mnt/cdrom/BaseOS #指定軟體倉庫地址,file://用於指定本地軟體包存放位置
    enabled=1 #軟體倉庫是否啟動,1啟動,0不啟動
    gpgcheck=0 #是否檢測軟體包簽名,0不檢測,1檢測,一般自己建立的倉庫都是0
    [appstream]
    name=cdrom baseos packages
    baseurl=file:///mnt/cdrom/AppStream
    enabled=1
    gpgcheck=0
    
  • 清理yum的快取檔案

    [root@localhost ~]# yum clean all
    Updating Subscription Management repositories.
    Unable to read consumer identity
    
    This system is not registered with an entitlement server. You can use subscription-manager to register.
    
    20 files removed
    
    
  • 重新載入cache

    [root@localhost ~]# yum makecache 
    Updating Subscription Management repositories.
    Unable to read consumer identity
    
    This system is not registered with an entitlement server. You can use subscription-manager to register.
    
    mplayer                                                                                                              5.6 MB/s |  23 kB     00:00    
    cdrom baseos packages                                                                                                 33 MB/s | 2.4 MB     00:00    
    cdrom appstream package                                                                                               65 MB/s | 8.1 MB     00:00    
    Metadata cache created.
    

3、禁用yum源

  • 修改yum源的名字

    能夠正常使用yum源的必要條件:

    1、yum源的檔名必須以:.repo結尾

    2、yum源的檔案必須在path:/etc/yum.repo.d/目錄下

    因此我們可以採用移動資料夾或者修改yum源的檔案路徑

  • 修改yum源的配置檔案,將enabled=1,改為enabled=0

    yum源的配置檔案中enabled=1表示允許呼叫這個源

    我們把想要禁用的源中的enabled改為0,則表示這會源被禁用。

4、系統升級 / kernel升級

  • 把虛擬機器的光碟機更換為更新的版本(8.8--->8.9)

  • 將新的光碟機掛載到/mnt/cdrom下

  • yum list kernel 列出當前使用的kernel,和可用的kernel

  • yum update 更新yum源(更新所有的源-->系統升級)

    yum install kernel -y,下載新的kernel(只更新kernel-->核心升級)

  • systemctl reboot,重啟系統,升級完成

  • 如果是系統升級,重啟後會有兩個選項(8.8 / 8.9)我們選擇8.9,進入系統

  • 查詢系統中所有的kernel version

    rpm -qa | grep kernel
    

    447是舊的版本

    513是新的版本

  • 將舊的版本刪除

    rpm -qa | grep kernel | grep 477 | rpm -e
    

5、下載阿里雲的yum的repo檔案

  • 使用wget下載

    wget https://mirrors.aliyun.com/repo/Centos-8.repo
    
  • 我們可以禁用其他的repo源,也可以保留,但是要保證每一個repo源的唯一性,即repo原始檔中【name】的唯一性

【6】、原始碼包管理

現有原始碼包(tar包)-----> 編譯安裝

  • 自定義性強,靈活度高

再有rpm軟體包----->yum rpm

原始碼包安裝步驟,以nginx為例

  • 官網下載原始碼包

    [root@xu ~]# wget https://nginx.org/download/nginx-1.24.0.tar.gz
    #我們透過官網下載的原始碼包一般都是tar包
    
  • 系統安裝原始碼包依賴

    #我們可以去nginx官網查詢下載nginx時所需要的依賴,通常我們對於依賴的下載是透過yum去下載,每一個軟體的依賴都是不同的,需要去對應的官網進行查詢
    
  • 解壓原始碼包&進入原始碼包安裝路徑

    [root@xu ~]# tar -xf nginx-1.24.0.tar.gz 
    [root@xu ~]# ls
    anaconda-ks.cfg  nginx-1.24.0  nginx-1.24.0.tar.gz
    [root@xu ~]# cd nginx-1.24.0/
    [root@xu nginx-1.24.0]# ls
    auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  • configure檢測系統環境&指定安裝路徑與功能

    #透過config我們可以指定安裝路徑,指定安裝的功能模組,這就是透過原始碼包安裝的優勢,方便我們的管理和自定義
    #在我們完成指定之後,他就會幫我們去檢測系統安裝環境
    [root@xu nginx-1.24.0]# ./configure --prefix=/usr/local/ngix
    checking for OS
     + Linux 4.18.0-513.5.1.el8_9.x86_64 x86_64
    checking for C compiler ... found
     + using GNU C compiler
     + gcc version: 8.5.0 20210514 (Red Hat 8.5.0-20) (GCC) 
    checking for gcc -pipe switch ... found
    checking for -Wl,-E switch ... found
    checking for gcc builtin atomic operations ... found
    ...
    
  • make編譯,將原始碼轉換為二進位制

    #檢測完成後,將原始碼,編譯為二進位制檔案,所謂的原始碼都是一個一個的用程式語言寫的原始檔,因此需要透過編譯成為計算機可以識別的二進位制檔案
    [root@xu nginx-1.24.0]# make
    make -f objs/Makefile
    make[1]: Entering directory '/root/nginx-1.24.0'
    cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
    	-o objs/src/core/nginx.o \
    	src/core/nginx.c
    ...
    
  • make install 安裝軟體包

    #編譯為二進位制檔案後,我們就可以直接去安裝了
    [root@xu nginx-1.24.0]# make install
    
  • 補充

    • 在我們透過原始碼包安裝後,我想增加新的功能,我們還需要重新編譯,但不安裝

      #由於我們是透過原始碼包安裝的軟體,因此對其功能的選擇是很方便的,我們首先看一下nginx當前的資訊
      [root@xu sbin]# ./nginx -V
      nginx version: nginx/1.24.0
      built by gcc 8.5.0 20210514 (Red Hat 8.5.0-20) (GCC) 
      configure arguments: --prefix=/usr/local/nginx
      #我們想增加新的功能時,必須要帶上之前使用config指定的內容,再重新透過config去檢查安裝環境,進行編譯
      [root@xu nginx-1.24.0]# ./configure --prefix=/usr/local/nginx/ --with-http_ssl_module
      checking for OS
       + Linux 4.18.0-513.5.1.el8_9.x86_64 x86_64
      checking for C compiler ... found
       + using GNU C compiler
       + gcc version: 8.5.0 20210514 (Red Hat 8.5.0-20) (GCC) 
      checking for gcc -pipe switch ... found
      checking for -Wl,-E switc[root@xu nginx-1.24.0]# make
      make -f objs/Makefile
      make[1]: Entering directory '/root/nginx-1.24.0'
      cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
      	-o objs/src/core/nginx.o \
      h ... found
      checking for gcc builtin atomic operations ... found
      checking for C99 variadic macros ... found
      #然後再重新編譯
      [root@xu nginx-1.24.0]# make
      make -f objs/Makefile
      make[1]: Entering directory '/root/nginx-1.24.0'
      cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
      	-o objs/src/core/nginx.o \
      ## !!!編譯完成後不要安裝!!!,如果安裝會覆蓋之前的內容
      
      
      #在編譯完成後,nginx原始碼包目錄下會有一個objs目錄,裡面由nginx可執行檔案,我們需要將nginx複製到安裝路徑下的/sbin/下,替換掉原來的nginx可執行檔案
      [root@xu nginx-1.24.0]# ls
      auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src
      [root@xu objs]# cp ./nginx /usr/local/nginx/sbin/
      cp: overwrite '/usr/local/nginx/sbin/nginx'? y
      [root@xu objs]# cd /usr/local/nginx/sbin/
      [root@xu sbin]# ls
      nginx
      
      #最後我們檢查nginx的版本資訊,至此增加完成
      [root@xu sbin]# ./nginx -V
      nginx version: nginx/1.24.0
      built by gcc 8.5.0 20210514 (Red Hat 8.5.0-20) (GCC) 
      built with OpenSSL 1.1.1k  FIPS 25 Mar 2021
      TLS SNI support enabled
      configure arguments: --prefix=/usr/local/nginx/ --with-http_ssl_module
      
      

【7】、自定義軟體倉庫

yum執行思路:

執行yum命令程式---->倉庫配置檔案---->軟體包倉庫

軟體包倉庫:

1、眾多的軟體包

2、倉庫資料檔案(倉庫清單)

  • 模擬在Linux不能上網的情況下去按照軟體

    1、我們首先需要透過宿主機把軟體下載好,在使用傳輸工具或者命令傳到虛擬機器中

    2、然後就可以在虛擬機器中進行安裝了

  • 解壓傳入的壓縮包,裡面是一個個的rpm軟體包

  • 在下載之前需要讓yum去識別這個軟體的安裝方式

1、首先看下光碟中的安裝方式是什麼樣的

BaseOS和AppStream目錄下的repodata裡面的repomd儲存的是下載方式的索引,在使用yum去下載時都需要在repomd裡找到對應的軟體下載方式後再去packages目錄下去下載

repodata也就倉庫清單

[root@localhost ~]# ls /mnt/cdrom/BaseOS/repodata/
005f3daf06049c081565a4066404ce4ca5bb0275b8a9e5a04c725b09ac0bbb07-comps-BaseOS.x86_64.xml
6dcf6de7dd1089a452d5caa14fa1db8ce7cb79aad28a47a95f5aed14bd22f767-productid.gz
9b3a380a984ef4d552ce527b40f3415775e18955b6ca9a9c305f60cf6529f602-filelists.xml.gz
a28f983c96f2d691c966620431244d8c4a8415ec349e31b9cce280783ec323d3-primary.xml.gz
ab4ec8c050898edbe33646155dff8b15d16e3d29f3a13b029b2e2e6ca5c24a57-other.xml.gz
dd3fd62a2077ecf119b6f7971aa8882a546356fef66a874bf4860f8a6d45f416-comps-BaseOS.x86_64.xml.gz
productid
repomd.xml
TRANS.TBL
[root@localhost ~]# ls /mnt/cdrom/AppStream/repodata/
2adc257c8b938376e8d66f70b6dd601f46111b6f46e06d610d67f4e9daab434c-primary.xml.gz
2c384cc97bc979264430666010a3f52aeca381fd2137abba70ab6672429ac194-filelists.xml.gz
45295e7b00a783d7ef66a3d6f2f5890477a61c5c465f7190a910b50d7cf222e4-modules.yaml.gz
468fea75becd836ab1fc45fe77d820e37ab22b18cc2a4a992f65b81833f96854-comps-AppStream.x86_64.xml
6dcf6de7dd1089a452d5caa14fa1db8ce7cb79aad28a47a95f5aed14bd22f767-productid.gz
ad09469a33bac2649097cdf63bdc43d4415c6bfaffabdf6ce3da47b6fcb03596-comps-AppStream.x86_64.xml.gz
e0bb60aac5d524ef1cf945f2a934e27a63d77238bc2b25f13c7335286bf1869c-other.xml.gz
productid
repomd.xml
TRANS.TBL

2、生成repodata檔案

因此我們也需要按照BaseOS和AppStream目錄下的repodata生成新的repodata

使用createrepo命令去生成mplayer的repodata檔案

createrepo預設是沒有下載的

yum list createrepo # 檢視下載createrepo所需要的包
createrepo_c # 需要createrepo_c
yum install createrepo_c -y
createrepo /opt/tools #生成了repodata檔案

3、編寫yum的repo源

[mytools]
name=mytools
baseurl=file:///opt/tools
enabled=1
gpgcheck=0

清理yum下載的包,重進載入快取,下載mplayer

yum clean
yum makecache
yum install mplayer

4、repomd.xml、repodata、yum源的repo檔案的作用、聯絡

  • repomd.xml檔案的作用是存放軟體的索引資訊,透過yum去下載時,會根據repo檔案中的【name】去找對應目錄下的repomd.xml

  • repodata目錄的作用是收集當前軟體的各種資訊(版本資訊等),並且寫入repomd.xml中

  • yum源的repo檔案,在使用yum去下載時會去所有的repo檔案中去找到對應路徑,去看哪個路徑下有有對應軟體的repodata目錄(如果找遍了所有的源都沒有,則會報錯)。因此在寫repo原始檔時,一定要保證路徑的正確性

  • 聯絡

    • 首先使用createrepo命令

      會發生兩個步驟

      • 在軟體包所在的目錄生成repodata目錄
      • repodata目錄收集對應軟體的各種資訊,寫入repomd.xml中
    • 透過yum去下載軟體

      • 首先去/etc/yum.repos.d/目錄下查詢可用的repo原始檔
        • 可用的repo檔案也就是在baseurl寫的路徑中可以找到repodata目錄
      • 進而可以找到repom.xml檔案,索引到對應的軟體,然後在packages中下載
  • 在一個系統中可以存在多個yum源,但是一般來說通常只保留一個,可用的repo源越多,當一個源出錯時,可能會造成連帶影響

【8】、網路yum倉庫

構建網路服務,透過網路服務提供倉庫內容

  • 構建FTP服務
  • 利用FTP服務共享目錄,我們將自定義軟體倉庫,放到共享目錄下即可
  • 在客戶端透過curl去訪問ftp共享服務目錄
# 服務端進行配置
cp  -r  /etc/yum.repos.d/mytools  /var/ftp/rpms
# 客戶端進行測試
curl ftp://192.168.121.180/rpms

在客戶端需要寫yum的repo檔案,告訴yum你可以去ftp共享目錄下獲取軟體

[ftp]
name=my_ftp
baseurl=ftp://192.168.121.180/rpms
gpgcheck=0
enable=1

利用這種架構,

在ftp伺服器上可以為很多主機提供一個自定義的網路yum倉庫

利用ftp服務提供光碟yum倉庫的提供

我們只需將光碟機裝置掛載到/var/ftp目錄下即可

mount /dev/cdrom  /var/ftp/dvd/
# 修改/etc/fstab檔案

# 在客戶端進行測試
curl ftp://192.168.121.180/dvd/
dr-xr-xr-x    4 0        0            2048 Nov 21  2023 AppStream
dr-xr-xr-x    4 0        0            2048 Nov 21  2023 BaseOS
dr-xr-xr-x    3 0        0            2048 Nov 21  2023 EFI
-r--r--r--    1 0        0            2204 Nov 03  2023 LICENSE
-r--r--r--    1 0        0             883 Nov 21  2023 TRANS.TBL
dr-xr-xr-x    3 0        0            2048 Nov 21  2023 images
dr-xr-xr-x    2 0        0            2048 Nov 21  2023 isolinux
-r--r--r--    1 0        0              88 Nov 21  2023 media.repo

# 修改客戶端的配置檔案
[basos]
name=local_basos
baseurl=ftp://192.168.121.180/dvd/BaseOS
gpgcheck=0
enable=1

[appstream]
name=local_appstream
baseurl=ftp://192.168.121.180/dvd/AppStream
gpgcheck=0
enable=1

【9】、yum倉庫更新

yum倉庫的更新分為兩個方面

  • 倉庫資料檔案的更新
  • yum快取的更新
# 服務端倉庫資料檔案的更新
mv /opt/tools/xxx.rpm /root
createrepo --update /var/ftp/rpms

# 客戶端yum快取的更新
yum makecache
yum repoinfo

相關文章