星期日, 8月 05, 2018

offline install yum package - MariaDB

以安裝 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
安裝後再人工啟動:
  • systemctl start mariadb
[2018/08/09]
java-1.8.0-openjdk 類似的過程:雖然官方 yum 有收此套件,省了多一組 GPG-KEY 的問題,但可能另外遇到目標主機沒有經過 yum update,以致 nss 比 openjdk 所需版本要舊。解決之道二選一:
  • 出貨端要求各被安裝系統需求為「近日曾做過 yum update」,而且每次出貨前都先 yum update 再包離線安裝檔。(顯然是個爛方法)
  • 離線安裝包增加 nss nss-tools(如果有需要的話,可能也要納入更多版本不符的套件),並且在安裝時額外指定一併安裝 nss 套件。

沒有留言:

張貼留言