如何修改 deb 包?

Kim*_*Kim 9 linux package-management deb ubuntu

到目前为止我所做的

  • 我从 ubuntu-repositories 下载了官方 deb 包的源代码。
  • 我应用了一个补丁。
  • 成功配置并制作。
  • 测试了程序。

我想做什么

  • 我想使用旧包中的所有信息(依赖项等)从中创建一个 deb 包。

我的问题是(它们密切相关)

  1. 有没有一种简单的(=主要是自动化的)方法来做到这一点?
  2. 我可以将二进制文件复制到旧的 deb 文件中吗?
  3. 一旦原始包在存储库中更新,我的更改会被覆盖吗?
  4. 如果是这样,如何避免?
  5. 有没有办法将它标记为满足原始包的所有“传入”依赖项的“替代”版本?

附加信息

  • 我运行 Ubuntu 9.04,32 位,目前我不关心其他架构/版本。
  • 有问题的包是 compiz-gnome。
  • 更改非常小,不会添加任何依赖项。

Rya*_*son 5

我使用的程序是这样的:

获取源代码(通过 apt-get src)。

应用补丁,或者做任何需要改变的事情。

运行debchange --nmu并输入您所做更改的描述。这将自动增加版本号,以便系统不会尝试将您的自定义包“升级”回标准包。

运行debuild

享受您的 deb 文件。


lya*_*ood 3

我在 Ubuntu 论坛上找到了以下用于重建网络管理器包的指南

回复:如何修补 deb 源

引用: 最初由 cord 发表

我想基本上使用自定义补丁来重建网络管理器包来测试某些东西。所以我想: 1.获取ubuntu“版本”网络管理器的源代码

代码:

sudo apt-get source network-manager
Run Code Online (Sandbox Code Playgroud)

引用: 2.用我的补丁打补丁源文件将被下载到工作目录。请参阅了解更多信息。

Quote: 3.制作一个deb文件,我可以安装它来代替当前的网络管理器。

执行代码:

dpkg-buildpackage -rfakeroot -uc -b
Run Code Online (Sandbox Code Playgroud) 在创建的目录中。

还找到了这篇文章:Debian 新维护者指南第 6 章 - 构建软件包


至于您的更改因官方存储库的更新而丢失,我不确定。您始终可以将补丁发送回上游到 compiz-gnome软件包 维护者,或者为更新的软件包创建您自己的存储库。

  • 避免私有包被破坏的一种方法是在“debian/changelog”顶部添加具有更高版本号的条目,然后构建您的包。 (2认同)