背景介紹
1、客戶的服務器在內網,且不配置yum
#解決方案:
請客戶提供系統DVD版安裝鏡像,自行搭建本地yum源
2、客戶的服務器在內網,且不配置yum,且不能提供系統安裝鏡像
#解決方案:
rpm形式自行安裝軟件及處理依賴關係
分析
由於軟件依賴關係較爲複雜,很多時候安裝A軟件依賴B、C軟件,而B軟件又依賴D、E,C軟件又依賴F、G、H。。。。
想法
針對不同版本操作系統,持久化一套軟件及其依賴的安裝腳本及RPM介質,這樣每次根據現場操作系統選取對應的安裝包進行安裝
雖然這樣很不優雅,但確實一定程度解決了集成痛點
實現
經查閱相關資料,發現yum-utils這個工具可以將軟件的rpm包及依賴,持久化到指定目錄
#命令如下(筆者本地選取的yum源爲阿里雲yum源,操作系統版本爲CentOS7.3)
yum install -y yum-utils
mkdir -p /root/gcc
yumdownloader --resolve --destdir=/root/gcc gcc pcre-devel openssl-devel unzip telnet zlib-devel net-tools
#該命令並不會執行安裝步驟,僅僅是持久化到本地目錄
#添加安裝命令(該方式較爲粗暴,是否對系統產生影響有待驗證)
cat >> /root/gcc/install.sh <<EOF
rpm -ivh *.rpm --force
EOF
#打包
cd /root && tar zcvf centos7.3.tar.gz gcc
#使用
匹配系統版本後,上傳,解壓,安裝
tar zxvf centos7.3.tar.gz && cd gcc && sh install.sh