Linux系统构建deb包

参考

https://www.debian.org/doc/manuals/maint-guide/index.zh-cn.html

使用命令dpkg --help测试是否支持dpkg命令。centos7默认使用yum安装器,没有dkpg,需要安装dpkg安装器

yum -y install epel-release
yum repolist
yum install dpkg-devel dpkg-dev

假如deb包对应的目录是testdir

构建目录树

tree testdir
testdir
├── DEBIAN
│   ├── control
│   ├── postinst
│   ├── postrm
│   ├── preinst
│   └── prerm
└── usr
    └── bin
        └── hello.sh

DEBIAN中是包的信息control文件,和安装过程中执行的脚本文件。control文件要表明deb包信息,所以是必需的。其他几个文件是脚本(pre、post、inst、rm)表示安装前/安装后,卸载前/卸载后的脚本。这些脚本可以根据需要自行添加。

Package: testdir
Version: 1.0.0
Architecture: amd64
Maintainer: Helloworld
Secion: data
Priority: optional
Installed_Size: 20
Description: This is my test deb package

usr目录下的所有目录和文件会映射到 系统的 /usr 目录下。其他需要安装的目录可以和usr目录一样,由dpkg执行安装的时候复制到系统的目录。安装过程dpkg安装器会自行释放除DEBIAN以外的目录树。卸载的时候根据目录树删除文件。如果目录中有残留文件,目录会被保留。

目前安装的只有/usr/hello.sh

1.打包dpkg -b testdir

dpkg -b testdir
dpkg-deb: building package 'testdir' in 'testdir.deb'.

生成文件testdir.deb

2.命名deb文件dpkg-name testdir.deb 

dpkg-name testdir.deb 
dpkg-name: info: moved 'testdir.deb' to './testdir_1.0.0_amd64.deb'

源文件testdir.deb被重命名成testdir_1.0.0_amd64.deb

3.安装dpkg -i testdir_1.0.0_amd64.deb

问题:

dpkg-deb: error: package name has characters that aren't lowercase alphanums or '-+.'

因为control文件中的Package字段对应的名字里面使用了下划线,把下划线去掉或者换成减号。package名字中不能有空格和下划线

yum 安装失败,因为实体机ip换了。虚拟机中的ip没有改,

vim /etc/sysconfig/network-scripts/ifcfg-ens33

改完ip后重启网络服务

service network restart

dpkg执行安装的之后只要有preinst、postinst、prerm、postrm中任意一个脚本,就报错,即使脚本内容为空。原因不知道,换了一个系统就不报错了。

linux构建rpm包参考:

RPM Packaging Guide

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 创建一个Qt项目并编写代码。 2. 在Qt Creator中打开“Projects”视图,在“Build Settings”下选择“Release”构建类型。 3. 在Qt Creator中打开“Projects”视图,在“Build & Run”下选择“Linux Desktop”作为目标。 4. 在Qt Creator中打开“Projects”视图,在“Build & Run”下选择“Run”并运行Qt应用程序以确保它可以正常工作。 5. 从终端中进入Qt项目的根目录,并使用以下命令生成Makefile: ``` qmake -makefile ``` 6. 使用以下命令来生成可执行文件: ``` make ``` 7. 在Qt项目根目录中创建一个新目录,例如“debian”。 8. 在“debian”目录下创建名为“control”的文件,并添加以下内容: ``` Source: your-app-name Section: unknown Priority: optional Maintainer: Your Name <your-email-address> Build-Depends: debhelper (>= 9), qt5-qmake, qtbase5-dev Standards-Version: 3.9.8 Homepage: http://your-website.com Package: your-app-name Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: A description of your app. ``` 将“your-app-name”替换为你的应用程序的名称,并在“Description”下添加应用程序的描述。 9. 在“debian”目录下创建一个名为“compat”的文件,并将其内容设置为“9”。 10. 在“debian”目录下创建一个名为“rules”的文件,并添加以下内容: ``` #!/usr/bin/make -f %: dh $@ ``` 11. 在终端中进入Qt项目的根目录,并使用以下命令构建deb: ``` dpkg-buildpackage -rfakeroot -b ``` 12. 生成deb后,将其安装到系统中: ``` sudo dpkg -i your-app-name.deb ``` “your-app-name.deb”是你的应用程序的deb文件名称。 13. 运行应用程序并确保它可以正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值