相信你們在一臺沒法鏈接外網的linux上安裝軟件時,對於軟件依賴的安裝,都會特別頭疼,由於軟件依賴的安裝,不管是其數量,仍是安裝的複雜度都比軟件自己要高出一個維度!node
今天就和你們分享一個,解決linux安裝軟件依賴的曲線救國方案,但願你們之後均可以愉快的安裝軟件!linux
首先,要和你們介紹一個很是好用的插件yum-plugin-downloadonly,這個插件的做用是從yum倉庫下載目標軟件及其所需依賴。apache
// 安裝插件 $ 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服務器爲例進行本文主題的演示。centos
準備條件:服務器
一、一臺CentOS 6.5的linux,沒法鏈接外網,記爲服務器A;spa
二、一臺CentOS 6.5的linux,能夠鏈接外網,記爲服務器B;插件
如今,咱們須要在服務器A上安裝apache服務器,咱們先在服務器B上下載軟件及依賴:code
// 下載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上:blog
// 進入文件所在目錄
$ cd /root/downloads/httpd
// 忽略依賴安裝目錄下全部的軟件 $ sudo rpm -Uvh --nodeps --replacefiles *.rpm
至此,apache服務器就安裝完畢了,是否是比平時的方式要簡單不少。get
凡事皆有兩面性,如下是此方案的缺點:
1)目標服務器和源服務器版本必須相同;(因爲CentOS是從RedHat編譯過來的 ,所以兩者能夠互通,咱們的生產環境就是這種狀況。)
2)沒法使用軟件的最新版本,只能使用yum倉庫中的版本(通常最新軟件只能在官網下載,可能未及時收錄到yum倉庫,不過軟件的依賴依然可使用此方案。);