0

0

c++怎么将程序打包成deb或rpm安装包_c++应用程序Linux发行版打包教程

下次还敢

下次还敢

发布时间:2025-11-22 18:37:47

|

846人浏览过

|

来源于php中文网

原创

首先创建deb或rpm包的目录结构并编写control或spec元数据文件,然后编译程序并放入指定路径,设置权限后使用dpkg-deb或rpmbuild打包,最后通过CPack或CI/CD实现自动化。

c++怎么将程序打包成deb或rpm安装包_c++应用程序linux发行版打包教程

将C++程序打包成deb(Debian/Ubuntu)或rpm(Red Hat/CentOS/Fedora)安装包,是发布Linux应用程序的重要步骤。这个过程不只是编译代码,还包括设置依赖、创建元信息、配置安装路径等。下面介绍如何为两种主流发行版格式进行打包。

生成deb包(适用于Debian、Ubuntu等)

deb是Debian系发行版的标准安装包格式。你可以通过简单的目录结构和控制文件来创建一个deb包。

1. 准备项目结构
在项目根目录下创建如下结构:

myapp/
├── DEBIAN/
│   └── control
├── usr/
│   └── bin/
│       └── myapp
└── etc/
    └── myapp.conf

2. 编写control文件
DEBIAN/control中写入包的元数据:

Package: myapp
Version: 1.0.0
Section: utils
Priority: optional
Architecture: amd64
Depends: libc6 (>= 2.34)
Maintainer: Your Name 
Description: A simple C++ application
 This is a demo C++ program packaged as a deb.

注意: Architecture根据你的目标平台填写,如amd64、arm64等。

3. 编译并放入指定路径
确保你的可执行文件已编译完成,并复制到usr/bin/myapp

4. 设置权限
确保文件权限正确:

chmod 755 DEBIAN
chmod 755 usr/bin/myapp

5. 打包成deb
myapp目录外运行:

dpkg-deb --build myapp myapp_1.0.0_amd64.deb

6. 安装测试

立即学习C++免费学习笔记(深入)”;

sudo dpkg -i myapp_1.0.0_amd64.deb

生成rpm包(适用于CentOS、Fedora、RHEL等)

rpm是Red Hat系系统的标准格式,使用rpmbuild工具链来构建。

1. 安装rpmbuild工具

# Ubuntu/Debian
sudo apt install rpm

CentOS/Fedora

sudo dnf install rpm-build

豆绘AI
豆绘AI

豆绘AI是国内领先的AI绘图与设计平台,支持照片、设计、绘画的一键生成。

下载

2. 创建rpmbuild目录结构
运行以下命令初始化:

mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

3. 准备源码压缩包
将你的程序打包成tar.gz:

tar czf ~/rpmbuild/SOURCES/myapp-1.0.0.tar.gz myapp-src/

4. 编写spec文件
~/rpmbuild/SPECS/myapp.spec中添加内容:

Name:           myapp
Version:        1.0.0
Release:        1%{?dist}
Summary:        A C++ application
License:        MIT
URL:            https://example.com/myapp
Source0:        %{name}-%{version}.tar.gz

BuildRequires: gcc-c++ Requires: glibc >= 2.34

%description A demo C++ program packaged as an RPM.

%prep %setup -q

%build g++ -o myapp main.cpp

%install rm -rf %{buildroot} mkdir -p %{buildroot}/usr/bin cp myapp %{buildroot}/usr/bin/myapp

%files /usr/bin/myapp

%changelog

  • Initial build

5. 构建rpm包

rpmbuild -ba ~/rpmbuild/SPECS/myapp.spec
成功后,rpm包会生成在~/rpmbuild/RPMS/x86_64/目录下。

6. 安装测试

立即学习C++免费学习笔记(深入)”;

sudo rpm -ivh myapp-1.0.0-1.x86_64.rpm

自动化建议与最佳实践

手动打包适合学习,但实际项目推荐自动化。

  • 使用CMake配合CPack:CMake提供CPack模块,支持自动生成deb/rpm。
  • 在CMakeLists.txt中加入:
    include(CPack)
    set(CPACK_GENERATOR "DEB")
    set(CPACK_PACKAGE_NAME "myapp")
    set(CPACK_PACKAGE_VERSION "1.0.0")
    set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Your Name ")
    include(CPack)
        
  • 运行cpack命令即可生成对应包。
  • 使用CI/CD(如GitHub Actions)自动构建并发布deb/rpm包。

基本上就这些。掌握deb和rpm打包,能让你的C++程序更容易被Linux用户安装和使用。关键是理解目录结构和元信息配置,后续可逐步引入自动化工具提升效率。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1347

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

700

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

776

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

571

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

545

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

297

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

377

2023.07.25

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

3

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.9万人学习

Git 教程
Git 教程

共21课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号