Как перестроить все пакеты Debian системы с определенным флагом?


Я хотел бы перестроить / перекомпилировать все пакеты Debian машины с определенными флагами.

Как я могу сделать это с меньшим количеством команд, насколько это возможно?

Я обнаружил, что https://debian-administration.org/article/20/Rebuilding_Debian_packages но он не объясняет, как это сделать для всех пакетов, установленных в системе.

2   6   2017-09-29 05:36:56

2 ответа:

Вы можете написать сценарий, который делает что-то вроде этого:

Для каждого $pkg в dpkg-query -W -f '${status} ${package}\n' | sed -n 's/^install ok installed //p':

  • run apt-get source $pkg
  • run apt-get build-dep $pkg
  • cd $pkg-version /
  • запустить DEB_CPPFLAGS_SET="-я с именем/foo/бар/баз" DEB_CFLAGS_SET="-г -О3" DEB_LDFLAGS_SET="-л/fruzzel/frazzel/" с dpkg-buildpackage используйте файл
  • установить пакет с dpkg-i deb-файлом
  • cd ..

Это будет проходить через все установленные пакеты и генерировать .файлы deb для каждого из их. Возможно, есть какие-то крайние случаи и т. д. с этим придется разобраться. Вы также можете исключить пакеты, которые не построены из кода C и т. д.

Информация взята из следующих вопросов:

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

Как переопределить dpkg-buildflags CFLAGS?

Попробуйте такой подход:

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/