构建 CentOS RPM 包

引言

之前说过 Murder 安装方式,提到打包成 rpm 并放到 yum 的方式。所以下面来说说这种方法。

构建 rpm 包

构建 rpm 包一般有 2 种方法:

  1. 使用 rpmbuild 指定 spec 文件构建 RPM 包
  2. 使用命令行打包工具 FPM

我大概看了下第一种方法,太复杂了,Murder 实际上就一些 py 文件, 我只是想把这些 py 文件打包成 rpm,所以选择使用 FPM 来打包。

我想设置 Murder 的 rpm 安装好后的目录为/usr/local/murder,于是首先将 Murder 相关 py 文件放到这个目录下。
然后开始打包,命令如下:

fpm -s dir -t rpm -n murder -v 0.1.3 /usr/local/murder/

具体命令选项请 man。

生成 rpm 包后,就可以放在公司内部的 yum 源上。

遇到的问题

需要gem install fpm,安装报错如下:


ERROR:  Could not find a valid gem 'fpm' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://rubygems.org/latest_specs.4.8.gz)

国内网络原因连接不到国外的 gem 源,解决方法是使用淘宝的 gem 源:


gem sources -l
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l

Ref

《网站运维技术与实践》7.4 搭建私有软件仓库
用 fpm 便捷地打 RPM 包
GitHub FPM
基于官方 rpm 快速创建自定义 rpm