正如标题所说,我想制作一个人们可以下载的 ubuntu 软件包apt
,并且我想使用 System V 脚本设置该软件包,以便人们可以启动和停止服务(如mysql
)。
我已经读过这篇文章https://packaging.ubuntu.com/html/packaging-new-software.html但它太基础了,没有完全理解它,我如何告诉打包程序在哪个文件夹中做什么?
我有点迷失,我将不胜感激任何帮助。谢谢。
这个指南真的很有帮助https://blog.server密度.com/how-to-create-a-debian-deb-package/
另外,这里还有该指南正在使用的正确文档https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging
答案1
以下是包创建的基础知识。它们适用于广泛的系统,从 FreeBSD 和 OpenBSD 到 Arch Linux、Debian Linux 和 Ubuntu Linux。
一个人通过以下方式制作一个包:
- 通过 git 或 subversion 等方式获取源代码树,或者通过下载并解压存档文件来获取。
- 安装先决条件构建包,提供软件编译所需的工具。
- 对此应用每个操作系统的补丁。
- 编译二进制文件和数据文件,但是特定的软件会执行此操作。
/
构建一个暂存目录树,其中要打包的二进制文件和数据文件放置在该树中,就像它们在包安装后放置的那样。- 使用包裹创建工具,结合运输清单和一些其他元数据来制作包裹。
然后将其放入包存储库中,可以是自己运行的包存储库,也可以是操作系统维护人员发布的包存储库。后一个过程存在很多后勤和政治障碍。在这两种情况下,您都需要处理签名问题。
细节因操作系统而异,或者更确切地说,因包装系统而异。例如,包清单文件的结构各不相同。和Debianbuild-essential
元包不是一个普遍的东西。但这些是一般原则。
因此,Ubuntu 页面上的所有这些乱码工具都是此功能的高级包装器,它们执行诸如维护源代码控制存储库之类的操作,其中包含您在原始源代码之上添加的所有额外内容。
Debian 工具有些不同。事实上,Debian 工具共有三种不同风格,包括“德布帮手”。
另请注意,来自 WWW 各地不同人士的 Debian 说明通常是针对这样的想法:您正在下载现有的Debian源码包并构建它,而不是编写所有辅助Debian 打包的东西从头开始。这样的包具有 Debian 打包元数据、控制文件和补丁,这些都已在源代码树中提供。这是原始来源加上 Debian 打包的东西。
一般来说,如果给一个包一个要“安装”的目标目录而不是目录,那么它就会自己构造一个适当的暂存树/
。如果您正在打包自己的软件,则必须提供一种正确“安装”到独立暂存区域的机制。 (我有“slashpackage”包,其中的脚本可以将、、、等package/stage
中的所有内容提升到适合的暂存区域。)command/
manual/
guide/
library/
/usr
最后:不,您不提供rc
用于启动和停止服务的 van Smoorenburg 脚本。这并不是 Ubuntu 上的原生方式自2006年以来,此时已近十五年。您提供 systemd 单元文件。即使您想提供 van Smoorenbrgrc
脚本德班不使用 systemd 的人,您提供新风格van Smoorenburgrc
脚本于 2014 年引入,基于init-d-script
手册页中的示例,其内容与大多数(已经过时的)WWW 文档告诉您的内容有很大不同。
现在您可以返回到这些(和其他)WWW 页面上的debian/control
、debian/rules
、 等详细信息。
进一步阅读
- /etc/init.d/骨骼在哪里?
- https://askubuntu.com/a/707750/43344
- https://unix.stackexchange.com/a/332441/5132
- 乔纳森·德博因·波拉德 (2018)。 ”在顶部添加特定于操作系统的包”斜杠包上的 gen。常见答案。