问
有一个开源软件是这样编译安装的,我想将它编译成 deb 安装包,怎么做?
确保已经安装所有依赖库。
$ git clone https://github.com/linuxdeepin/deepin-unioncode.git
(gitee: $ git clone https://gitee.com/deepin-community/deepin-unioncode.git)
$ cd deepin-unioncode
$ sudo apt build-dep ./
构建:
$ cmake -B build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
$ cmake --build build
安装:
$ sudo cmake --build build --target install
答
要将一个开源软件编译成DEB安装包,您可以使用Debian打包工具来创建一个Debian软件包。以下是将deepin-unioncode编译成DEB包的步骤:
- 确保您的系统上安装了
dpkg-dev
和devscripts
工具,这些工具对于创建DEB软件包是必需的。您可以使用以下命令来安装它们:
sudo apt-get install dpkg-dev devscripts
- 在您的源代码目录中,创建一个Debian目录以包含打包相关的文件:
cd deepin-unioncode
mkdir debian
- 在
debian
目录下,创建一个changelog
文件来描述软件包的更改历史。您可以使用dch
工具来生成changelog
文件:
dch --create
这将会打开一个文本编辑器,您可以编辑并保存changelog
文件。填写软件包的版本、发行版、作者等信息。
- 在
debian
目录下,创建一个control
文件来指定软件包的控制信息,例如软件包名称、依赖关系、描述等。一个示例的control
文件可能如下所示:
Source: deepin-unioncode
Section: misc
Priority: optional
Maintainer: Your Name <your@email.com>
Build-Depends: debhelper (>= 12), cmake
Standards-Version: 4.5.0
Homepage: https://github.com/linuxdeepin/deepin-unioncode
Package: deepin-unioncode
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Description of the deepin-unioncode package
A longer description of the package goes here.
请确保适当替换信息,如Maintainer
和Description
。
- 在
debian
目录下,创建一个rules
文件来指定如何构建软件包。一个示例的rules
文件可能如下所示:
#!/usr/bin/make -f
%:
dh $@
- 编译源代码并创建二进制文件:
cmake -B build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
cmake --build build
- 创建DEB软件包:
debuild -us -uc
这将在上一步构建的build
目录中生成DEB软件包文件,通常在上层目录。
- 安装生成的DEB软件包:
sudo dpkg -i ../deepin-unioncode_版本号_amd64.deb
请将版本号
替换为实际的软件包版本号。安装后,您的软件包将被安装在系统中。
这样,您就可以将deepin-unioncode编译成DEB安装包并在系统中安装。确保按照Debian软件包的规范进行操作,以便它能够顺利集成到您的系统中。
来源于:ChatGPT 23.11.08