You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ubuntu系统上安装rpmdevtools并构建RPM包?

在Ubuntu上构建RPM包的完整入门流程

兄弟,我明白你在Ubuntu上搞RPM打包的痛苦——毕竟Ubuntu是deb系发行版,默认和RPM那套工具生态不怎么适配,先帮你解决最开始的依赖安装问题,再一步步带你走完从环境搭建到打包完成的全流程:

一、先搞定依赖安装的坑

你遇到的yum命令报错很正常,因为yum是RHEL/CentOS这类rpm系发行版的包管理器,Ubuntu根本没预装;而apt-get找不到rpmdevtools,大概率是没启用Ubuntu的universe源。按下面的步骤来:

  1. 启用universe源并更新apt索引:
sudo add-apt-repository universe
sudo apt update
  1. 安装RPM打包所需的核心工具:
sudo apt install rpm rpmdevtools alien
  • rpm:提供RPM包的基础管理能力
  • rpmdevtools:包含rpmdev-setuptree这类构建必备工具
  • alien:可以在deb和rpm包格式之间转换,方便你在Ubuntu上测试rpm包

二、搭建RPM构建环境

RPM打包需要标准的目录结构,用一条命令就能自动生成:

rpmdev-setuptree

执行后,你的~/rpmbuild目录下会出现以下子目录:

  • BUILD:构建过程中临时存放文件的目录
  • RPMS:最终生成的二进制RPM包存放位置
  • SOURCES:存放软件源码包(比如tar.gz)的目录
  • SPECS:存放SPEC配置文件(打包核心)的目录
  • SRPMS:生成的源码RPM包存放位置

三、准备待打包的软件源码

把你要打包的软件整理成标准的源码包格式(比如myapp-1.0.tar.gz),然后放到~/rpmbuild/SOURCES目录下。如果是自己写的脚本或者简单程序,也可以手动打包:

# 假设你的软件文件都在当前目录的myapp-1.0文件夹里
tar czf myapp-1.0.tar.gz myapp-1.0
mv myapp-1.0.tar.gz ~/rpmbuild/SOURCES/

四、编写SPEC配置文件(核心步骤)

SPEC文件是RPM打包的灵魂,所有打包规则、安装逻辑都在这里定义。进入SPECS目录新建一个myapp.spec文件(文件名和软件名对应):

cd ~/rpmbuild/SPECS
touch myapp.spec

然后用编辑器打开,填入以下示例内容(根据你的软件修改):

Name:           myapp
Version:        1.0
Release:        1%{?dist}
Summary:        一个测试用的简单应用
License:        GPLv3
URL:            https://example.com/myapp
Source0:        %{name}-%{version}.tar.gz

%description
这是一个在Ubuntu上用于练习RPM打包的测试应用,包含一个简单的执行脚本。

%prep
# 自动解压源码包到BUILD目录
%setup -q

%build
# 如果是编译型软件,这里放编译命令(比如make);脚本类软件可以留空或加提示
echo "开始构建myapp..."

%install
# 将脚本安装到系统的/usr/bin目录(先放到构建根目录,最终打包时会同步到系统)
install -Dm755 myapp %{buildroot}/usr/bin/myapp

%files
# 列出需要打包的文件路径
/usr/bin/myapp

%changelog
* Tue Oct 10 2024 你的名字 <your.email@example.com> - 1.0-1
- 首次发布myapp的RPM包

简单解释几个关键段:

  • %prep:预处理阶段,负责解压源码
  • %build:构建阶段,编译代码(脚本类可以跳过)
  • %install:安装阶段,定义文件要放到系统的哪个位置
  • %files:明确要打包进RPM的文件列表

五、构建RPM包

一切准备就绪后,进入SPECS目录执行构建命令:

cd ~/rpmbuild/SPECS
rpmbuild -ba myapp.spec
  • -ba参数表示同时构建二进制RPM包和源码RPM包
  • 构建成功后:
    • 二进制RPM包会出现在~/rpmbuild/RPMS/$(arch)/目录下(比如x86_64架构就是~/rpmbuild/RPMS/x86_64/)
    • 源码RPM包会出现在~/rpmbuild/SRPMS/目录下

六、测试安装RPM包

在Ubuntu上测试RPM包有两种方式:

  1. 直接用rpm命令安装:
sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/myapp-1.0-1ubuntu1.x86_64.rpm
  1. 转换成deb包安装(更符合Ubuntu的使用习惯):
sudo alien -i ~/rpmbuild/RPMS/x86_64/myapp-1.0-1ubuntu1.x86_64.rpm

七、常见问题排查

  • 如果构建时提示缺少编译工具(比如gcc、make):直接用apt install gcc make安装对应依赖
  • 如果SPEC文件报错:仔细检查路径是否正确、命令是否存在,或者参考官方文档调整语法

内容的提问来源于stack exchange,提问作者Shah Ritesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:59:56