FPM取巧
构建像含有spec文件的RPM这样的操作系统包是非常有用的知识。不过,有些时候并不需要像真正的spec文件那么严格。毕竟sepc文件优化的是你的场景而非代码库创始者的场景。
有一个基于Ruby的名为FPM的工具可以直接从命令行生成适合构建的源代码RPM包。
以在GitHub上获得这个工具:https://github.com/jordansissel/fpm。
在Fedora上可以这样安装FPM:
Yum install rubygems
Yum install ruby
Yum install ruby-devel gcc
Gem install fpm
这样就可以安装一个包装了FPM Ruby程序的shell脚本。
FPM有意思的一个地方是它可以生成不同类型的包,其中就有RPM和Debian所支持的类型。
这里有一个制作“Hello world”的shell脚本的简单例子:
我们想要把shell脚本安装在/usr/local/bin里,所以在主目录下创建一个如下结构的目录:
$HOME/hello/usr/local/bin/hello.sh
设置脚本可执行,然后打包:
这样的结果是一个名为hello-world、版本为1的RPM包。
为了测试这个包,我们首先列出内容,然后安装:
这个shell脚本现在应该被顺利安装到/usr/local/bin里了。
FPM是创建RPM、Debian还有其他种类包的一个非常便利的方法。有点投机取巧的感觉!