1. 程式人生 > >解決linux安裝軟件依賴的曲線救國方案

解決linux安裝軟件依賴的曲線救國方案

nbsp pre rep pla dir 環境 語法 class all

相信大家在一臺無法連接外網的linux上安裝軟件時,對於軟件依賴的安裝,都會特別頭疼,因為軟件依賴的安裝,不論是其數量,還是安裝的復雜度都比軟件本身要高出一個維度!

今天就和大家分享一個,解決linux安裝軟件依賴的曲線救國方案,希望大家以後都可以愉快的安裝軟件!

首先,要和大家介紹一個非常好用的插件yum-plugin-downloadonly,這個插件的作用是從yum倉庫下載目標軟件及其所需依賴。

// 安裝插件
$ sudo yum install yum-plugin-downloadonly -y

/* * 語法示例 * downloadonly:標記只下載不安裝
* setopt=protected_multilib=false:避免“Protected multilib versions”錯誤,我們只想安靜的下載所有依賴
* downloaddir:指定下載目錄
* target_dir:指定依賴的存儲位置
* soft_name:軟件名稱,可以yum search <keyword>去獲取
*/ $
yum install --downloadonly --setopt=protected_multilib=false --downloaddir=<target_dir> <soft_name>

有了插件yum-plugin-downloadonly的支持,接下來我將以安裝apache服務器為例進行本文主題的演示。

準備條件:

1、一臺CentOS 6.5的linux,無法連接外網,記為服務器A;

2、一臺CentOS 6.5的linux,可以連接外網,記為服務器B;

現在,我們需要在服務器A上安裝apache服務器,我們先在服務器B上下載軟件及依賴:

// 下載apache服務器軟件及依賴
$ sudo yum install --downloadonly --setopt=protected_multilib=false --downloaddir=/root/downloads/httpd httpd.x86_64
$ cd /root/downloads/httpd
// 查看下載好的文件
$ ls
apr-1.3.9-5.el6_9.1.x86_64.rpm apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm httpd-tools-2.2.15-69.el6.centos.x86_64.rpm
apr-util-1.3.9-3.el6_0.1.x86_64.rpm httpd-2.2.15-69.el6.centos.x86_64.rpm mailcap-2.1.31-2.el6.noarch.rpm

將下載好的文件,拷貝至服務器A上:

// 進入文件所在目錄
$ cd /root/downloads/httpd
// 忽略依賴安裝目錄下所有的軟件 $
sudo rpm -Uvh --nodeps --replacefiles *.rpm

至此,apache服務器就安裝完畢了,是不是比平時的方式要簡單很多。

凡事皆有兩面性,以下是此方案的缺點:

1)目標服務器和源服務器版本必須相同;(由於CentOS是從RedHat編譯過來的 ,因此二者可以互通,我們的生產環境就是這種情況。)

2)無法使用軟件的最新版本,只能使用yum倉庫中的版本(一般最新軟件只能在官網下載,可能未及時收錄到yum倉庫,不過軟件的依賴依然可以使用此方案。);

解決linux安裝軟件依賴的曲線救國方案