Linux 非互聯網環境安裝依賴包


1 介紹

有的生產環境是沒有網絡的,我們部署rpm包的時候會出現缺少很多rpm包的依賴問題,都去網上下載實在太麻煩,今天介紹一個辦法可以解決這一問題。

2 解決方案

找一台可以聯網的機器,在上邊下載相應的rpm包。

使用命令:

#yum install rpmname--downloadonly --downloaddir=/rpmpath 

命令解釋:

此命令只是下載相關的rpm包,並下載相應的依賴。

Rpmname為rpm包的名字如httpd等

/rpmpath為下載的rpm包存放位置。

之后會下載很多依賴包,我們可以打包下載下來,通過移動設備傳輸到沒有網的設備上之后就可以安裝了。

3 安裝rpm及相關依賴

3.1 方法一(推薦)

一個一個安裝,但是比較麻煩,看這個包缺哪些依賴。依此安裝。

使用rpm –ivh ****進行安裝

3.2 方法二

如果能保證聯網的機器和沒有聯網的機器環境一樣,可以直接使用rpm –ivh –nodeps來進行安裝。因為環境一樣缺少的依賴包都相同,但是很少有這樣的情況,因為聯網的機器可能依賴包會安裝。所以不建議這樣操作。

4 舉例說明

比如我使用要通過rpm包安裝docker但是生產環境沒有外網。我通過我的雲服務器下載rpm及其依賴包。

4.1 下載依賴包

# yum install yum-utils --downloadonly --downloaddir=/root/dockerrpm/ # yum install policycoreutils-python --downloadonly --downloaddir=/root/dockerrpm/ # yum install docker-ce-18.06.1.ce --downloadonly --downloaddir=/root/dockerrpm/ # ls /root/dockerrpm/ #會下載以下包 audit-2.8.1-3.el7_5.1.x86_64.rpm libsemanage-python-2.5-11.el7.x86_64.rpm python-kitchen-1.1.1-5.el7.noarch.rpm audit-libs-2.8.1-3.el7_5.1.x86_64.rpm libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm setools-libs-3.3.8-2.el7.x86_64.rpm audit-libs-python-2.8.1-3.el7_5.1.x86_64.rpm policycoreutils-python-2.5-22.el7.x86_64.rpm yum-utils-1.1.31-46.el7_5.noarch.rpm checkpolicy-2.5-6.el7.x86_64.rpm python-chardet-2.2.1-1.el7_1.noarch.rpm libcgroup-0.41-15.el7.x86_64.rpm python-IPy-0.75-6.el7.noarch.rpm 

4.2 安裝

# rpm -ivh audit-libs-2.8.1-3.el7_5.1.x86_64.rpm # rpm -ivh audit-2.8.1-3.el7_5.1.x86_64.rpm # rpm -ivh audit-libs-python-2.8.1-3.el7_5.1.x86_64.rpm # rpm -ivh checkpolicy-2.5-6.el7.x86_64.rpm # rpm -ivh libcgroup-0.41-15.el7.x86_64.rpm # rpm -ivh libsemanage-python-2.5-11.el7.x86_64.rpm # rpm -ivh python-IPy-0.75-6.el7.noarch.rpm # rpm -ivh setools-libs-3.3.8-2.el7.x86_64.rpm # rpm -ivh policycoreutils-python-2.5-22.el7.x86_64.rpm # rpm -ivh container-selinux-2.68-1.el7.noarch.rpm # rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm # rpm -ivh docker-ce-18.06.1.ce-3.el7.x86_64.rpm 

這樣就解決了所有的依賴問題。可以成功的把docker安裝到沒有互聯網的機器上

當生產環境由於安全原因處於斷網狀態的時候。通過本地源的方式,使用yum能夠自動安裝軟件,並且自動處理好依賴關系。然而該方法最最關鍵的一個問題是——怎么獲取該軟件及其依賴包,供本地源使用?當安裝軟件的依賴包較少的話,通過手動的方式,一個個查找並下載,也許是一個可以考慮的方案,而當一個軟件有上百個依賴、並且依賴上又有依賴,這時候你再試試?如果真的覺得很無力,那么downloadonly跟yumdownloade絕對是兩個值得嘗試的神器。本文簡單介紹downloadonly跟yumdownloade的使用方法。
downloadonly的安裝和使用
1、安裝downloadonly
 
sudo yum install yum-plugin-downloadonly1
2、downloadonly使用
格式:yum install –downloadonly+軟件名稱,如:
 
sudo yum install --downloadonly nano1
默認情況下軟件下載的路徑在/var/cache/yum/x86_64/7/base/packages/下。如:上面命令下載的nano軟件包位置如下圖所示:
 
我們還可以指定軟件包的下載路徑。需要加入參數–downloaddir參數。
格式:yum install –downloadonly –downloaddir= your-dir  package-name,如:
 
sudo yum install --downloadonly --downloaddir=/root/package/nano nano1
此時,下載的nano包存放在/root/package/nano目錄下,如圖所示:
 
注:/root/package/nano目錄要先存在。
 
yumdownloade的安裝和使用
1、安裝yumdownloade
 
sudo yum install yum-utils -y1
2、yumdownloade使用
格式:sudo yumdownloader 軟件名,如:
 
sudo yumdownloader nano 1
默認情況下,下載的包會被保存在當前目錄中,我們需要使用root權限,因為yumdownloader會在下載過程中更新包索引文件。與yum命令不同的是,任何依賴包不會被下載。我們可以通過加參數,使得下載包的過程中同時下載依賴以及自定義下載位置,格式為:yumdownloader 軟件名 –resolve –destdir=保存目錄
例如:
 
sudo yumdownloader httpd --resolve --destdir=/root/package/httpd
12
查看下載的httpd及其依賴,結果如圖所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM