如何建立 RPM private repository (私有 RPM 倉庫)

By | July 18, 2016

在 Linux deploy 軟件,最簡單又穩陣的方法,當然是使用 package。即 RHEL/CentOS/Fedora 就用 RPM,Debian/Ubuntu 就用 DEB。首先把自己的軟件 compile 再包裝成 RPM。當有了 RPM 後,可以直接 "yum install package.rpm"

不過,當 packages 比較多,又或需要做版本 update 時,就會顯得麻煩,比較理想是建立私有 package repository。以下以 MySQL 為例,自從 MariaDB 成為各大版本標準 package,MySQL 就被踢出了。

Oracle 有提供 MySQL 的 CentOS 7 RPM。首先,下載整個 bundle.tar,之後 untar 放進自己部機的 directory 或 Web Server。接著,把簽署 package "rpm --addsign *.rpm"﹐就可 "createrepo ."。你會發現多了一個 叫 repodata 的 folder,那即是成功了。

最後,整一個 xxxx.repo 放進 /etc/yum.repos.d/ 便可。xxxx.repo 的範例如下:

[aboutmyinfo]
name=About My Info
baseurl=http://www.aboutmy.info/repo/centos/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=http://www.aboutmy.info/repo/centos/$releasever/$basearch/RPM-GPG-KEY

大功告成後,便可 "yum install MySQL-server"

add private repo

import self sign key

第一次從私有 repository 安裝 package 時,系統會詢問是否 import 自己的 sign key,答 Y 便可。