centos7.5離線安裝rpm包自動解決依賴
當(dāng)生產(chǎn)環(huán)境由于安全原因處于斷網(wǎng)狀態(tài)的時候。通過本地源的方式,使用yum能夠自動安裝軟件,并且自動處理好依賴關(guān)系。
然而該方法最最關(guān)鍵的一個問題是——怎么獲取該軟件及其依賴包,供本地源使用?
當(dāng)安裝軟件的依賴包較少的話,通過手動的方式,一個個查找并下載,也許是一個可以考慮的方案,而當(dāng)一個軟件有上百個依賴、并且依賴上又有依賴,這時候你再試試?
如果真的覺得很無力,那么downloadonly跟yumdownloade絕對是兩個值得嘗試的神器。本文主要介紹downloadonly的使用方法。
yum install yum-plugin-downloadonly
[root@linux-node1 ~]# yum install yum-plugin-downloadonly
Loaded plugins: fastestmirror, langpacks
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* epel: mirrors.#edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
Package yum-3.4.3-158.el7.centos.noarch already installed and latest version
Nothing to do
[root@linux-node1 ~]#
創(chuàng)建目錄用來緩存rpm包
[root@linux-node1 ~]# mkdir /data/rpm -p
[root@linux-node1 ~]#
我們還可以指定軟件包的下載路徑。需要加入?yún)?shù)–downloaddir參數(shù)。
格式:yum install –downloadonly –downloaddir= your-dir package-name,如:
執(zhí)行如下命令
[root@linux-node1 /data/rpms]# yum install --downloadonly --downloaddir=/data/rpm gem
[root@linux-node1 ~]# cd /data/rpm/
[root@linux-node1 /data/rpm]# ll
total 1012
-rw-r--r-- 1 root root 72560 Mar 5 21:47 ruby-2.0.0.648-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 84692 Mar 5 21:47 rubygem-bigdecimal-1.2.0-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 55044 Mar 5 21:47 rubygem-io-console-0.4.2-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 81180 Mar 5 21:47 rubygem-json-1.7.7-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 84160 Mar 5 21:48 rubygem-psych-2.0.0-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 329272 Mar 5 21:48 rubygem-rdoc-4.0.0-33.el7_4.noarch.rpm
-rw-r--r-- 1 root root 224400 Mar 5 21:48 rubygems-2.0.14.1-33.el7_4.noarch.rpm
-rw-r--r-- 1 root root 94056 Mar 5 21:48 ruby-irb-2.0.0.648-33.el7_4.noarch.rpm
[root@linux-node1 /data/rpms]#
離線安裝本地rpm包
[root@linux-node1 ~]# rsync -a 10.0.3.62:/data/rpm /data/
[root@linux-node1 ~]# cd /data/
[root@linux-node1 /data]# ll
total 4
drwxr-xr-x 2 root root 4096 Aug 20 14:20 rpm
[root@linux-node1 /data]# cd rpm/
[root@linux-node1 /data/rpm]# ll
total 3932
-rw-r--r-- 1 root root 56068 Jan 30 2015 libyaml-0.1.4-11.el7_0.x86_64.rpm
-rw-r--r-- 1 root root 72560 Mar 5 21:47 ruby-2.0.0.648-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 84692 Mar 5 21:47 rubygem-bigdecimal-1.2.0-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 55044 Mar 5 21:47 rubygem-io-console-0.4.2-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 81180 Mar 5 21:47 rubygem-json-1.7.7-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 84160 Mar 5 21:48 rubygem-psych-2.0.0-33.el7_4.x86_64.rpm
-rw-r--r-- 1 root root 329272 Mar 5 21:48 rubygem-rdoc-4.0.0-33.el7_4.noarch.rpm
-rw-r--r-- 1 root root 224400 Mar 5 21:48 rubygems-2.0.14.1-33.el7_4.noarch.rpm
-rw-r--r-- 1 root root 94056 Mar 5 21:48 ruby-irb-2.0.0.648-33.el7_4.noarch.rpm
-rw-r--r-- 1 root root 2931216 Mar 5 21:48 ruby-libs-2.0.0.648-33.el7_4.x86_64.rpm
[root@linux-node1 /data/rpm]# yum localinstall *.rpm -y
downloadonly的安裝和使用
1、安裝downloadonly
sudo yum install yum-plugin-downloadonly
2、downloadonly使用
格式:yum install –downloadonly+軟件名稱,如:
sudo yum install --downloadonly nano
默認情況下軟件下載的路徑在/var/cache/yum/x86_64/7/base/packages/下。如:上面命令下載的nano軟件包位置如下圖所示:

這里寫圖片描述
我們還可以指定軟件包的下載路徑。需要加入?yún)?shù)–downloaddir參數(shù)。
格式:yum install –downloadonly –downloaddir= your-dir package-name,如:
sudo yum install --downloadonly --downloaddir=/root/package/nano nano
此時,下載的nano包存放在/root/package/nano目錄下,如圖所示:

這里寫圖片描述
注:/root/package/nano目錄要先存在。
yumdownloade的安裝和使用
1、安裝yumdownloade
sudo yum install yum-utils -y
2、yumdownloade使用
格式:sudo yumdownloader 軟件名,如:
sudo yumdownloader nano
默認情況下,下載的包會被保存在當(dāng)前目錄中,我們需要使用root權(quán)限,因為yumdownloader會在下載過程中更新包索引文件。與yum命令不同的是,任何依賴包不會被下載。我們可以通過加參數(shù),使得下載包的過程中同時下載依賴以及自定義下載位置,格式為:yumdownloader 軟件名 –resolve –destdir=保存目錄
例如:
sudo yumdownloader httpd --resolve --destdir=/root/package/httpd
查看下載的httpd及其依賴,結(jié)果如圖所示:
