以安裝 MariaDB 為例,由於 CentOS YUM repository 並沒有最新版,要自己上 Maria 官網看
這個說明下載,常做也是有點麻煩。這次希望準備一個「離線版」安裝包,既不用等網路,又可減少安裝程序。首先參考
這篇的前置動作,下載與目錄準備:
- sudo yum install yum-plugin-downloadonly yum-utils createrepo
- mkdir /var/tmp/maria
- mkdir /var/tmp/maria-installroot
再來是準備 /etc/yum.repos.d/mariadb.repo,內容如下:
- [mariadb]
- name = MariaDB
- baseurl = http://yum.mariadb.org/10.3/centos7-amd64
- gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
- gpgcheck = 1
接著把 yum maria 下載安裝分開,下載是:
- sudo yum install --downloadonly --installroot=/var/tmp/maria-installroot --releasever=7 --downloaddir=/var/tmp/maria MariaDB-server MariaDB-client
- sudo curl https://yum.mariadb.org/RPM-GPG-KEY-MariaDB -o /etc/pki/rpm-gpg/RPM-GPG-KEY-MariaDB
包裹成離線安裝資源:
- createrepo --database /var/tmp/maria
- sudo rm -rf /var/tmp/maria-installroot
再準備「離線版」/etc/yum.repos.d/mariadb-offline.repo:
- [mariadb-offline]
- name = MariaDB-offline
- baseurl = file:///var/tmp/maria
- enabled = 0
- checkgpg = 1
- gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MariaDB
可以多檢查一下完整性:
- repoclosure --repoid=mariadb-offline
如果沒問題的話,把 /var/tmp/maria 目錄壓成一個檔案:
- tar -cvf mariadb-offline.tar /var/tmp/maria
未來就解壓 mariadb-offline.tar,以及 /etc/yum.repos.d/mariadb-offline.repo /etc/pki/rpm-gpg/RPM-GPG-KEY-MariaDB 搬到要安裝 MariaDB 的 CentOS 7 主機上,即使對外無網路,也可以順利安裝 MariaDB:
- tar -xvf mariadb-offline.tar -C /
- sudo yum --disablerepo=\* --enablerepo=mariadb-offline install MariaDB-server MariaDB-client
安裝後再人工啟動:
[2018/08/09]
java-1.8.0-openjdk 類似的過程:雖然官方 yum 有收此套件,省了多一組 GPG-KEY 的問題,但可能另外遇到目標主機沒有經過 yum update,以致 nss 比 openjdk 所需版本要舊。解決之道二選一:
- 出貨端要求各被安裝系統需求為「近日曾做過 yum update」,而且每次出貨前都先 yum update 再包離線安裝檔。(顯然是個爛方法)
- 離線安裝包增加 nss nss-tools(如果有需要的話,可能也要納入更多版本不符的套件),並且在安裝時額外指定一併安裝 nss 套件。