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

时间:2017-09-29 02:36:57

标签: compilation debian package

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

如何尽可能少地使用命令?

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

2 个答案:

答案 0 :(得分:1)

尝试这种方法:

dpkg --get-selections > selections
sudo dpkg --clear-selections
sudo dpkg --set-selections < selections
sudo apt-get --reinstall dselect-upgrade

来源: https://www.linuxquestions.org/questions/linux-software-2/force-apt-get-to-redownload-and-reinstall-dependencies-as-well-873038/

答案 1 :(得分:1)

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

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

  • 运行apt-get source $ pkg
  • 运行apt-get build-dep $ pkg
  • cd $ pkg-version /
  • 运行DEB_CPPFLAGS_SET =“ - I / foo / bar / baz”DEB_CFLAGS_SET =“ - g -O3”DEB_LDFLAGS_SET =“ - L / fruzzel / frazzel /”dpkg-buildpackage
  • 使用dpkg -i deb-file安装包
  • cd ..

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

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

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

How to override dpkg-buildflags CFLAGS?