如何重建具有特定标志的系统的所有Debian软件包?

aur*_*ien 6 debian compilation package

我想重建/重新编译具有特定标志的机器的所有Debian软件包.

如何用尽可能少的命令做到这一点?

我发现https://debian-administration.org/article/20/Rebuilding_Debian_packages但它没有解释如何为系统上安装的所有软件包执行此操作.

kjy*_*jyv 1

您可以编写一个执行以下操作的脚本:

对于每个$pkg dpkg-query -W -f '${status} ${package}\n' | sed -n 's/^install ok installed //p'

  • 运行 apt-get source $pkg
  • 运行 apt-get build-dep $pkg
  • cd $pkg-版本/
  • 运行 DEB_CPPFLAGS_SET="-I/foo/bar/baz" DEB_CFLAGS_SET="-g -O3" DEB_LDFLAGS_SET="-L/fruzzel/frazzel/" dpkg-buildpackage
  • 使用 dpkg -i deb-file 安装软件包
  • 光盘 ..

这将遍历所有已安装的软件包并为每个软件包生成 .deb 文件。可能有一些边缘情况等需要处理。您还可以省略不是由 C 代码等构建的包。

从这些问题中获取的信息:

https://unix.stackexchange.com/questions/184812/how-to-update-all-debian-packages-from-source-code

如何覆盖 dpkg-buildflags CFLAGS?