fpm 制作rpm包

FPM

fpm 是一个能快速生成rpm的工具

参考这里

安装

yum install -y ruby ruby-devel

使用淘宝的镜像

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

配置 gem

vim ~/.gemrc

- https://gems.ruby-china.org
:ssl_verify_mode: 0

安装 fpm

gem install fpm

运行 fpm

以httplight1.4.32为例

下载源码包 http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.32.tar.gz

执行脚本

#!/bin/bash

CWD=$(cd `dirname $0`; pwd)

TARGET=${CWD}/target
SOURECES=${TARGET}/SOURCE
INSTALL=${TARGET}/INSTALL

mkdir -p ${SOURECES}
mkdir -p ${INSTALL}
cp lighttpd-1.4.32.tar.gz ${SOURECES}

cd ${SOURECES}
tar xzvf lighttpd-1.4.32.tar.gz
cd lighttpd-1.4.32
./configure --prefix=/usr --libdir=/usr/lib64
make
make install DESTDIR=${INSTALL}

echo "#!/bin/bash" > ${SOURECES}/after_install.sh
echo "/sbin/ldconfig" >> ${SOURECES}/after_install.sh

echo "#!/bin/bash" > ${SOURECES}/after_remove.sh
echo "/sbin/ldconfig" >> ${SOURECES}/after_remove.sh

## fpm
cd ${CWD}
fpm -f -s dir \
    -t rpm \
    -n lighttpd \
    -v 1.4.32 \
    --iteration 1 \
    -C ${INSTALL} \
    -p ${TARGET} \
    --description 'lighttpd-1.4.32' \
    --url 'http://www.lighttpd.net/' \
    --after-install ${SOURECES}/after_install.sh \
    --after-remove ${SOURECES}/after_remove.sh \
    --vendor  zbq \
    --license BSD \
    --maintainer zbq \
    --category "Development/Tools"

这会在 target 目录下生成 lighttpd-1.4.32-1.x86_64.rpm

Linux系统上创建RPM可以通过多种方法实现,其中最常用的是使用`rpmbuild`工具或`FPM`工具。以下是两种主要的制作方式: ### 使用 `rpmbuild` 工具创建 RPM 1. **安装 rpmbuild 工具** 确保系统中已经安装了 `rpm-build` 软件,可以使用以下命令安装: ```bash sudo yum install rpm-build ``` 2. **准备 spec 文件** 创建一个 `.spec` 文件,该文件定义了软件的构建过程、依赖关系和文件列表。例如,可以编写一个名为 `hello-world.spec` 的文件,含如下内容: ```spec Name: hello-world Version: 1 Release: 1%{?dist} Summary: A simple Hello World example License: GPLv3+ URL: http://example.com/ Source0: %{name}-%{version}.tar.gz BuildRequires: gcc, make Requires: glibc %description This is a simple Hello World application. %prep %setup -q %build gcc -o hello-world hello-world.c %install mkdir -p %{buildroot}/usr/bin cp hello-world %{buildroot}/usr/bin/ %files /usr/bin/hello-world %changelog * Thu Jan 01 1970 Your Name <you@example.com> - 1-1 - Initial package ``` 3. **准备源代码** 将源代码打为 `.tar.gz` 格式,并将其放置在 `~/rpmbuild/SOURCES/` 目录下。 4. **执行 rpmbuild 命令** 运行以下命令来构建 RPM : ```bash rpmbuild -ba hello-world.spec ``` 成功后,生成的 RPM 会出现在 `~/rpmbuild/RPMS/x86_64/` 目录中 [^4]。 ### 使用 FPM 工具创建 RPM 1. **安装 FPM 工具** 需要先安装 Ruby 和相关依赖,然后通过 RubyGems 安装 FPM: ```bash sudo yum install ruby ruby-devel make gcc sudo gem install fpm ``` 2. **准备要打的文件** 将需要打的文件组织到某个目录中,例如 `/path/to/files`。 3. **执行 FPM 命令** 使用 FPM 命令将文件打RPM : ```bash fpm -s dir -t rpm -n hello-world -v 1.0 --prefix /usr/local/bin /path/to/files ``` 上述命令会生成一个名为 `hello-world-1.0-1.x86_64.rpm` 的 RPM [^1]。 ### 制作 RPM 时的注意事项 - 在使用 `rpmbuild` 时,确保 `.spec` 文件中的 `%files` 段落正确列出所有需要含在中的文件。 - 如果遇到依赖问题,建议使用 `yum` 或 `dnf` 来自动解决依赖关系。 - 使用 FPM 可以简化 RPM 的创建过程,但其灵活性不如 `rpmbuild`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值