主頁 > 作業系統 > Linux網路服務之部署YUM倉庫

Linux網路服務之部署YUM倉庫

2022-03-25 06:12:07 作業系統

鏡像下載、域名決議、時間同步請點擊 阿里云開源鏡像站

1 YUM簡介

1.1 YUM簡介

CentOS使用yum和dnf 解決rpm的包依賴關系,

YUM:rpm的前端程式,可解決軟體包相關依賴性,可在多個庫之間定位軟體包,up2date的替代工具,CentOS 8 使用dnf代替了yum,不過保留了和yum的兼容性,配置也是通用的,

YUM 的前身是 YUP(Yellow dog Updater,Yellow dog Linux 的軟體更新器),最初由 TSS 公司(Terra Soft Solutions,INC.)使用 Python 語言開發而成,后來由杜克大學(Duck University)的 Linux 開發隊伍進行改進,命名為 YUM(Yellow dog Updater,Modified), 要成功使用 YUM 機制來更新系統和軟體,需要有一個包含各種 rpm 安裝包檔案及其依 賴軟體的軟體倉庫(repository),提供軟體倉庫的服務器也稱為“源”服務器,在客戶機中只 要正確指定軟體倉庫的地址等資訊,就可以通過對應的“源”服務器來安裝或更新軟體,

YUM(Yellow dog Updater,Modified):

  • 基于RPM包構建的軟體更新機制
  • 可以自動解決依賴關系
  • 所有軟體包由集中到YUM軟體倉庫提供

file

1.2 yum作業原理

yum依賴于環境,依賴于服務端和客戶端,允許跨網路,

Yum基于C/S模式:

  • yum 服務器存放rpm包和相關包的元資料
  • yum客戶端訪問yum服務器進行安裝或查詢等

Yum實作程序:

先在yum服務器上創建 yum repository(倉庫),在倉庫中事先存盤了眾多rpm包,以及包的相關的元資料檔案(放置于特定目錄repodata下),當yum客戶端利用yum/dnf工具進行安裝時包時,會自動下載repodata中的元資料,查詢遠資料是否存在相關的包及依賴關系,自動從倉庫中找到相關包下載并安裝,

file

服務器(RPM包和元資料缺一不可):

  • RPM包 (存放在包檔案夾Packages中)
  • 元資料(存放在元資料檔案夾repodata中,其中包含:目錄(軟體的目錄),軟體的依賴關系,軟體的分組)
 #查看光碟中自帶的Yum倉庫,可以看到Packages檔案夾和repodata檔案夾:
 ?
 [root@localhost ~]# mount /dev/sr0 /mnt   //將光碟掛載到/mnt/目錄下
 mount: /dev/sr0 寫保護,將以只讀方式掛載
 [root@localhost ~]# ls /mnt      //查看光碟內的包檔案夾和元資料檔案夾
 CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
 EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
 EULA             isolinux  repodata  TRANS.TBL

file

本地倉庫型別:

  • 光碟的倉庫(基本倉庫)
  • epel 擴展倉庫

1.3 如何實作安裝服務

file

2 yum客戶端配置

yum客戶端組態檔

 /etc/yum.conf              #為所有倉庫提供公共配置
 /etc/yum.repos.d/*.repo    #每個倉庫的組態檔

2.1 yum主組態檔

位置:/etc/yum.conf

 [root@localhost ~]# vim /etc/yum.conf
 [main]
 cachedir=/var/cache/yum/$basearch/$releasever  //yum下載的RPM包的快取目錄, $basearch代表硬體架構,$releasever系統版本比如7
 keepcache=0                         //是否保存快取  0代表不保存,1代表保存
 debuglevel=2                        //除錯級別(0-10),默認為2
 logfile=/var/log/yum.log            //日志檔案位置
 exactarch=1                         //是否允許不同版本的rpm安裝
 obsoletes=1                         //這是一個update的引數,是否允許舊版本的運行  
 gpgcheck=1                          //是否驗證GPG(GNU Private Guard)密鑰,1表示驗證
 plugins=1                           //是否允許插件,1代表允許
 installonly_limit=5                 //保存幾個內核
 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
 distroverpkg=centos-release
 ?
 ?
 # yum的repo組態檔中可用的變數:
 $releasever: 當前OS的發行版的主版本號,如:8,7,6
 $arch: CPU架構,如:aarch64, i586, i686,x86_64等
 $basearch:系統基礎平臺;i386, x86_64
 $contentdir:表示目錄,比如:centos-8,centos-7
 $YUM0-$YUM9:自定義變數

file

2.2 yum倉庫組態檔

2.2.1 倉庫組態檔說明

位置:/etc/yum.repos.d/*.repo

系統內默認的yum倉庫,是centos官方的yum源(國外源),需要連通外網才可以使用,

 [root@localhost yum.repos.d]# ls /etc/yum.repos.d/
 CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
 CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
 ?
 [root@localhost yum.repos.d]# vim yuji.repo    //yum倉庫組態檔格式
 [yuji]
 name=yuji                   #設定名稱
 baseurl=file:///mnt        #設定鏈接地址,file://是本地源的固定格式
 enabled=1                   #開啟此yum源
 gpgcheck=0                  #是否驗證公鑰,0表示無需驗證            

yum倉庫組態檔中baseurl的幾種形式:

 # 本地源
 本地目錄   file://        
 ?
 # 網路源
 FTP服務    ftp://          
 HTTP服務   http://
 外網環境    https://

2.2.2 baseurl 指向的路徑

CentOS系統的yum源

 #阿里云
 https://mirrors.aliyun.com/centos/$releasever/

EPEL的yum源

 #阿里云
 https://mirrors.aliyun.com/epel/$releasever/x86_64

更新源

 http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/

2.3 日志檔案

位置:/var/log/yum.log

 [root@localhost yum.repos.d]# head -5 /var/log/yum.log    //查看日志檔案
 Jan 19 10:55:29 Installed: tree-1.6.0-10.el7.x86_64
 Feb 21 23:21:53 Installed: finger-0.17-52.el7.x86_64
 Mar 19 17:10:29 Updated: 32:bind-license-9.11.4-26.P2.el7_9.9.noarch
 Mar 19 17:10:30 Updated: 32:bind-libs-lite-9.11.4-26.P2.el7_9.9.x86_64
 Mar 19 17:10:30 Updated: 32:bind-libs-9.11.4-26.P2.el7_9.9.x86_64

3 yum命令詳解

命令 不加關鍵字 加入關鍵詞、軟體包、軟體包組
yum list 顯示所有可用包 單個的可安裝包
yum info 顯示所有可用包的資訊 單個具體的資訊
yum search \ 模糊查找所有的相關資訊
yum whatprovides \ 精確查找
yum install \ 安裝具體軟體包
yum update 所有軟體升級,更新內核 具體軟體升級
yum upgrade 只更新軟體包,但不更新內核 具體軟體更新
yum remove \ 卸載具體軟體
yum history 查看當前yum操作歷史 \
yum history info \ 加序號列出某次事務的詳細資訊
yum history undo \ 加序號卸載序號里安裝的軟體
yum history redo \ 加序號重新執行序號里的操作

包組:

命令 不加關鍵字 加入關鍵詞、軟體包、軟體包組
yum grouplist 顯示所有可用包組 顯示具體的包組
yum groupinfo 顯示所有的包組具體資訊 顯示具體的包組的具體資訊
yum groupinstall \ 安裝具體軟體包組
yum group update 所有包組升級 具體包組升級
yum groupremove \ 卸載具體包組軟體

小貼士:

當使用 “yum remove 軟體名” 未將軟體包卸載干凈時,可以使用“yum history undo 序號”進行卸載,可以完整卸載整個軟體包,沒有殘留,

4 yum倉庫搭建方式

軟體倉庫的提供方式:

  • 本地目錄:file://絕對路徑
  • FTP服務:ftp://ip地址/站點里的路徑
  • HTTP服務:http://域名或者ip地址/站點里的路徑

4.1 搭建本地yum倉庫

搭建步驟:

步驟1、掛載光碟(/dev/sr0或/dev/cdrom都可以,/dev/cdrom是/dev/sr0的軟鏈接)

 [root@localhost ~]# mount /dev/sr0 /mnt    //將光碟掛載到/mnt目錄下
 mount: /dev/sr0 寫保護,將以只讀方式掛載
 [root@localhost ~]# df -Th                 //查看掛載是否成功
 檔案系統                型別      容量  已用  可用 已用% 掛載點
 /dev/mapper/centos-root xfs        10G  4.0G  6.1G   40% /
 devtmpfs                devtmpfs  897M     0  897M    0% /dev
 tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
 tmpfs                   tmpfs     912M  9.1M  903M    1% /run
 tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
 /dev/sdb5               xfs       2.0G   33M  2.0G    2% /data/bb
 /dev/sda1               xfs      1014M  179M  836M   18% /boot
 /dev/sdb1               xfs        10G   33M   10G    1% /data/aa
 /dev/mapper/vg01-lvmail xfs        13G   33M   13G    1% /data/mail
 tmpfs                   tmpfs     183M   12K  183M    1% /run/user/42
 tmpfs                   tmpfs     183M     0  183M    0% /run/user/0
 /dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt

注意:mount命令是一次性掛載,退出當前終端或重啟后就不存在了,永久掛載需要修改組態檔/etc/fstab,

file

步驟2、切換到 /etc/yum.repo.d/目錄,將自帶的倉庫檔案移走,

 [root@localhost ~]# cd /etc/yum.repos.d/      //切換至/etc/yum.repos.d/目錄
 [root@localhost yum.repos.d]# ls
 CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
 CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
 [root@localhost yum.repos.d]# mkdir aaa      //創建一個名為aaa的新目錄
 [root@localhost yum.repos.d]# mv *.repo aaa   //將yum倉庫中以.repo結尾的檔案移動到aaa中
 [root@localhost yum.repos.d]# ls
 aaa

file

步驟3、新建yum倉庫檔案,

 [root@localhost yum.repos.d]# vim yuji.repo    //新建yum倉庫檔案
 [yuji]
 name=yuji                   #設定名稱
 baseurl=file:///mnt         #設定鏈接地址,file://是固定格式,指向/mnt
 enabled=1                   #開啟此yum源
 gpgcheck=0                  #無需驗證公鑰  

file

步驟4、清理快取并安裝軟體,

 [root@localhost yum.repos.d]# yum clean all    //清理yum快取
 [root@localhost yum.repos.d]# yum makecache    //重新建立元資料
 [root@localhost yum.repos.d]# yum list         //查看可安裝的軟體串列
 [root@localhost yum.repos.d]# yum install dhcp -y    //yum安裝dhcp測驗是否成功

file

4.2 搭建阿里云倉庫(http方式外網環境)

默認的倉庫檔案是國外云倉庫,速度比較慢,可以使用阿里云倉庫代替,

操作步驟:

步驟1、切換到 /etc/yum.repo.d/目錄,將自帶的倉庫檔案移走,

 [root@localhost ~]# cd /etc/yum.repos.d/      //切換至/etc/yum.repos.d/目錄
 [root@localhost yum.repos.d]# mkdir aaa
 [root@localhost yum.repos.d]# mv *.repo aaa   //將yum倉庫中以.repo結尾的檔案移動到aaa中
 [root@localhost yum.repos.d]# ls
 aaa

步驟2、新建阿里云倉庫,

 [root@localhost yum.repos.d]# vim ali.repo
 [ali]
 name=aliyun
 #baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/         //開啟哪個版本都可以正常使用,這邊主要解釋變數的作用
 baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/    
 gpgcheck=0
 ?
 [epel]                                                         //epel源倉庫
 name=epel
 baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
 gpgcheck=0
 ?
 [update]                                                        //更新包倉庫
 name=update
 baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
 gpgcheck=0

步驟3、清理快取并安裝軟體,

 [root@localhost yum.repos.d]# yum clean all    //清理yum快取
 [root@localhost yum.repos.d]# yum makecache    //重新建立元資料
 [root@localhost yum.repos.d]# yum list         //查看可安裝的軟體串列
 [root@localhost yum.repos.d]# yum install tree -y    //yum安裝tree測驗是否成功

4.3 http方式搭建云倉庫

http方式搭建云倉庫,在外網和內網的環境下都可以使用,但多用于內網,

服務端:192.168.72.10

客戶端:192.168.72.129

搭建步驟:

步驟1、服務端安裝hhtpd服務程式,

 [root@localhost ~]# yum install httpd -y

file

步驟2、服務端切換到/var/www/html/ 目錄,新建子目錄centos7,并將光驅掛載到centos7目錄下(也可以將光驅中的所有軟體包拷貝到該目錄下),

 [root@localhost ~]# cd /var/www/html        //切換目錄
 [root@localhost html]# ls
 [root@localhost html]# mkdir centos7         //新建目錄centos7
 [root@localhost html]# mount /dev/sr0 ./centos7    //將光驅掛載到centos7目錄下
 mount: /dev/sr0 寫保護,將以只讀方式掛載
 [root@localhost html]# ls ./centos7
 CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
 EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
 EULA             isolinux  repodata  TRANS.TBL

file

步驟3、服務端關閉防火墻和selinux,啟動httpd服務,

 [root@localhost html]# systemctl stop firewalld
 [root@localhost html]# setenforce 0
 setenforce: SELinux is disabled
 [root@localhost html]# systemctl start httpd

file

步驟4、客戶端切換到/etc/yum.repos.d/目錄,新建檔案夾,將默認的yum倉庫檔案移動到該目錄下,撰寫新的倉庫檔案

 [root@192 ~]# cd /etc/yum.repos.d        //客戶端切換目錄
 [root@192 yum.repos.d]# ls
 CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
 CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
 [root@192 yum.repos.d]# mkdir bak        //新建檔案夾
 [root@192 yum.repos.d]# mv *.repo bak    //將默認的倉庫檔案移動到該檔案夾下
 [root@192 yum.repos.d]# ls
 bak
 [root@192 yum.repos.d]# vim http.repo     //撰寫新的倉庫檔案
 [http]
 name=http
 baseurl=http://192.168.72.10/centos7
 enabled=1
 gpgcheck=0

file

file

步驟5、清理yum快取,重新建立元資料,并測驗使用yum能否成功安裝軟體包,

 [root@192 yum.repos.d]# yum clean all && yum makecache
 已加載插件:fastestmirror, langpacks
 正在清理軟體源: ftp
 Cleaning up everything
 Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
 Cleaning up list of fastest mirrors
 已加載插件:fastestmirror, langpacks
 ftp                                                        | 3.6 kB  00:00:00     
 (1/4): ftp/group_gz                                        | 156 kB  00:00:00     
 (2/4): ftp/primary_db                                      | 3.1 MB  00:00:00     
 (3/4): ftp/other_db                                        | 1.2 MB  00:00:00     
 (4/4): ftp/filelists_db                                    | 3.1 MB  00:00:00     
 Determining fastest mirrors
 元資料快取已建立
 ?
 [root@192 yum.repos.d]# yum install ftp -y    //測驗yum安裝,可以成功安裝,

file

file

4.4 ftp方式搭建云倉庫

ftp方式搭建云倉庫,在外網和內網的環境下都可以使用,但多用于內網,

服務端:192.168.72.10

客戶端:192.168.72.129

搭建步驟:

步驟1、服務端安裝vsftpd服務程式,

 [root@localhost html]# yum install vsftpd -y

file

步驟2、服務端切換到 /var/ftp/ 目錄下新建一個子目錄centos,并將光驅掛載到centos目錄下(也可以將光驅內的所有檔案包復制到centos目錄下),

 [root@localhost html]# cd /var/ftp      //切換到/ftp/var/目錄
 [root@localhost ftp]# ls
 pub
 [root@localhost ftp]# mkdir centos      //創建centos目錄
 [root@localhost ftp]# 
 [root@localhost ftp]# mount /dev/sr0 ./centos     //將光驅掛載到centos目錄下
 mount: /dev/sr0 寫保護,將以只讀方式掛載
 [root@localhost ftp]# ls ./centos
 CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
 EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
 EULA             isolinux  repodata  TRANS.TBL

file

步驟3、服務端開啟vsftpd服務,關閉防火墻和selinux,

 [root@localhost ~]# systemctl start vsftpd
 [root@localhost ~]# systemctl stop firewalld
 [root@localhost ~]# setenforce 0

file

步驟4、客戶端安裝ftp程式,測驗ftp服務是否正常,

 [root@192 ~]# yum install ftp -y     //安裝ftp程式
 ?
 [root@192 ~]# ftp 192.168.72.10      //測驗ftp服務能否正常訪問服務端
 Connected to 192.168.72.10 (192.168.72.10).
 220 (vsFTPd 3.0.2)
 Name (192.168.72.10:root): ftp
 331 Please specify the password.
 Password:
 230 Login successful.              //可以正常訪問
 Remote system type is UNIX.
 Using binary mode to transfer files.
 ftp> ls
 227 Entering Passive Mode (192,168,72,10,85,22).
 150 Here comes the directory listing.
 drwxr-xr-x    8 0        0            2048 Sep 05  2017 centos
 drwxr-xr-x    2 0        0               6 Jun 09  2021 pub
 226 Directory send OK.
 ftp> bye
 221 Goodbye.

file

步驟5、客戶端撰寫yum倉庫檔案,

 [root@192 ~]# cd /etc/yum.repos.d      //切換目錄
 [root@192 yum.repos.d]# ls
 bak2              CentOS-Debuginfo.repo  CentOS-Sources.repo
 CentOS-Base.repo  CentOS-fasttrack.repo  CentOS-Vault.repo
 CentOS-CR.repo    CentOS-Media.repo
 [root@192 yum.repos.d]# mkdir bak1        //新建檔案夾
 [root@192 yum.repos.d]# mv *.repo bak1    //將默認的倉庫檔案移動到該目錄下
 [root@192 yum.repos.d]# ls
 bak1  bak2
 [root@192 yum.repos.d]# vim ftp.repo      //撰寫新的倉庫檔案
 [ftp]
 name=ftp
 baseurl=ftp://192.168.72.10/centos     //路徑指向服務端的/var/ftp/centos/目錄
 enabled=1
 gpgcheck=0

file

file

步驟6、清理yum快取,重新建立元資料,并測驗使用yum能否成功安裝軟體包,

 [root@192 yum.repos.d]# yum clean all && yum makecache
 已加載插件:fastestmirror, langpacks
 正在清理軟體源: ftp
 Cleaning up everything
 Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
 Cleaning up list of fastest mirrors
 已加載插件:fastestmirror, langpacks
 ftp                                                        | 3.6 kB  00:00:00     
 (1/4): ftp/group_gz                                        | 156 kB  00:00:00     
 (2/4): ftp/primary_db                                      | 3.1 MB  00:00:00     
 (3/4): ftp/other_db                                        | 1.2 MB  00:00:00     
 (4/4): ftp/filelists_db                                    | 3.1 MB  00:00:00     
 Determining fastest mirrors
 元資料快取已建立
 ?
 [root@192 yum.repos.d]# yum install httpd -y    //測驗yum安裝,可以成功安裝,

file

file

4.5 搭建本地epel源倉庫

本地epel源倉庫的應用場景:

  • 在可以連外網的情況下,可以使用國外源或阿里云倉庫等,
  • 但實際作業中,公司內網常常無法連接外網,這時可以提前搭建本地epel源倉庫,即在一臺可連通外網的服務器中提前下載好epel源的所有軟體包,撰寫好倉庫檔案后,在離線的情況下也可以使用yum安裝軟體包,
  • 之后其他主機可以通過http方式或ftp方式使用服務端的epel源倉庫,

操作步驟:

步驟1、安裝epel源,并下載epel源的所有軟體包,

 [root@localhost ~]# yum install epel-release          //安裝epel源
 [root@localhost ~]# mkdir centos7                     //新建centos7目錄  
 [root@localhost ~]# reposync -r epel -p /centos7/ &     //下載同步epel源軟體包,下載到/centos7/目錄下,&表示放到后臺下載
 [root@localhost ~]# ls /centos7
 epel

步驟2、安裝createrepo命令(建立元資料的命令),之后使用createrepo命令建立元資料,

 [root@localhost ~]# yum -y install createrepo      //安裝createrepo命令
 [root@localhost ~]# createrepo -v /centos7/epel    //建立元資料(軟體目錄、依賴關系) 
 [root@localhost ~]# cd  /centos7/epel        //切換到centos7/epel 目錄下
 [root@localhost epel]# ls              //查看軟體包和元資料
 Packages  repodata

步驟3、切換到/etc/yum.repos.d目錄,移走默認倉庫檔案,撰寫新的倉庫檔案,

 [root@localhost ~]# cd /etc/yum.repos.d/      //切換至/etc/yum.repos.d/目錄
 [root@localhost yum.repos.d]# ls
 CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
 CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
 [root@localhost yum.repos.d]# mkdir aaa      //創建一個名為aaa的新目錄
 [root@localhost yum.repos.d]# mv *.repo aaa   //將yum倉庫中以.repo結尾的檔案移動到aaa中
 [root@localhost yum.repos.d]# ls
 aaa
 [root@localhost yum.repos.d]# vim epellocal.repo    //新建yum倉庫檔案
 [epellocal]
 name=epellocal                       #設定名稱
 baseurl=file:///centos7/epel     #設定鏈接地址,路徑指向/centos7/epel目錄
 enabled=1                        #開啟此yum源
 gpgcheck=0                       #無需驗證公鑰  

其他主機如果想使用這臺機器中的epel倉庫,可以在本地使用http或ftp方式搭建:

 baseurl=http://192.168.72.10/centos7/epel      //http方式
 ?
 baseurl=ftp://192.168.72.10/centos7/epel        //ftp方式

5 小貼士

5.1 使用命令方式生成倉庫檔案

以上四種方式都是都是通過手動撰寫yum倉庫檔案來配置,也可以直接通過命令來搭建,

命令的方式配置原理和上面的檔案配置原理一樣,都是寫入/etc/yum.repos.d中,只是命令列是自動生成倉庫檔案 ,

1、外網環境搭建

命令格式:

 wget -O  /etc/yum.repos.d/name.repo(自定義以repo結尾的檔案名)  源路徑

wget 命令配置阿里云倉庫:

 wget -O  /etc/yum.repos.d/Centos-7.repo  http://mirrors.aliyun.com/repo/Centos-7.repo

2、內網環境搭建

命令格式:

 yum-config-manager --add-repo=file://
 yum-config-manager --add-repo=ftp://

示例:

 yum-config-manager --add-repo=file:///mnt           //使用本地源
 yum-config-manager --add-repo=ftp://192.168.72.10/centos7   //ftp方式搭建

5.2 下載依賴包到本地(但不安裝)

當內網的一臺主機安裝某個軟體包卻缺少依賴包時,可以先由一臺可連接外網的服務器下載依賴包,之后共享給這臺主機,

這時可以使用“yum install --downloadonly”命令,該命令可以僅下載所需軟體及其依賴包、而不安裝軟體,大大減少了無外網安裝時找依賴包的問題,命令格式如下:

 yum install --downloadonly +軟體名稱 --downloaddir=指定rpm包存放路徑

例如,下載nginx所需要的依賴包到/mnt/nginx目錄內:

 yum install nginx --downloadonly --downloaddir=/mnt/nginx

本文轉自:https://juejin.cn/post/7078172295302217735

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/449020.html

標籤:Linux

上一篇:Centos7 找回root密碼

下一篇:什么?Android上面跑Linux?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more