在有外網的情況下,可以用yum很容易的完成服務及其相關依賴的安裝。而由於客戶要求,導致生產服務器上無法連通外網。於是在搭建生產環境的時候,由於外網不通,導致缺少依賴的問題頻頻出現。
現將解決此類問題的方法歸納如下:
-
直接下載(此方法適用於缺少單個或個別依賴的情況下)
- 通過有網環境下載缺少的rpm包
- 上傳至生產服務器
- 通過yum localinstall *.rpm 安裝
-
通過虛擬機安裝(此方法適用於缺少依賴數量很多的情況下)
- 在有網環境下創建一個與生產環境相同操作系統的虛擬機。
- 確認yum正常。
- 修改配置文件/etc/yum.conf,keepcache=1
# vi /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=1 ......
- 通過yum install <package_name> 安裝相關服務
- 查找yum緩存的rpm文件,並將其上傳至生產服務器
# find /var/cache/yum/ -name "*.rpm"
- 在生產服務器上,通過yum localinstall *.rpm 安裝。
-
解決包樹狀依賴的問題
- 比如yum localinstall a.rpm,提示需要安裝 b.rpm,那麼可以先yum localinstall b.rpm
-
解決包相互依賴的問題
- 比如yum localinstall a.rpm ,提示需要安裝 b.rpm ,再執行yum localinstall b.rpm ,又提示需要安裝a.rpm,那麼可以直接這樣:yum localinstall a.rpm b.rpm
-
解決與現有包版本衝突的問題
- 現有包影響不大的情況下,可卸載現有包,重新安裝與之版本相匹配的包。
- 現有包影響大的情況(比如爲linux的系統相關的包),可通過忽略版本檢驗來安裝rpm包(不確定相關服務是否會因此而運行異常),比如:
rpm -ivh nfs-utils-1.3.0-0.65.el7.x86_64.rpm gssproxy-0.7.0-26.el7.x86_64.rpm krb5-libs-1.15.1-37.el7_7.2.x86_64.rpm libini_config-1.3.1-32.el7.x86_64.rpm libref_array-0.1.5-32.el7.x86_64.rpm libverto-libevent-0.2.5-4.el7.x86_64.rpm libbasicobjects-0.1.1-32.el7.x86_64.rpm libcollection-0.7.0-32.el7.x86_64.rpm libpath_utils-0.2.1-32.el7.x86_64.rpm libevent-2.0.21-4.el7.x86_64.rpm libtirpc-0.2.4-0.16.el7.x86_64.rpm keyutils-1.5.8-3.el7.x86_64.rpm libpath_utils-0.2.1-32.el7.x86_64.rpm libnfsidmap-0.25-19.el7.x86_64.rpm quota-4.01-19.el7.x86_64.rpm rpcbind-0.2.0-48.el7.x86_64.rpm quota-nls-4.01-19.el7.noarch.rpm tcp_wrappers-7.6-77.el7.x86_64.rpm --force --nodeps
若有遺漏或偏頗之處,還請指出,以便大家共同成長。