Как выполнить `emerge --sync` в Gentoo Linux, не удаляя старые ebuild-файлы?

Как выполнить `emerge --sync` в Gentoo Linux, не удаляя старые ebuild-файлы?

Когда я использую emerge --syncмои старые файлы .ebuild удаляются. Как получить более новые .ebuild-ы, но не потерять старые?

решение1

Один из способов сделать это — переопределить параметры portage rsync по умолчанию, за исключением параметров, связанных с удалением. Параметры по умолчанию в настоящее время жестко закодированы в /usr/lib/portage/pym/_emerge/actions.pyстроке 2039 у меня дома.

За исключением "--force" и "--delete" вы бы добавили

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --whole-file --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

в /etc/make.conf. В том смысле, что никакие файлы или каталоги больше не должны удаляться.

Редактировать:Обратите внимание, что обычно вам не захочется сохранятьлюбойтакие ebuild-файлы находятся в дереве портежей, с которым вы синхронизируетесь.

Если вы хотите сохранить определенные ebuild-файлы, есть два типичных сценария:

  • Вы используете устаревшую версию ebuild, которую хотите сохранить.
  • Вы написали ebuild самостоятельно или где-то нашли ebuild и добавили его в дерево portage, с которым вы синхронизируетесь.

В обоих случаях лучшим решением будет скопировать эти ebuilds в локальный оверлей. Возможно, вам также придется скопировать ebuilds, от которых они зависят. Вот как создать простой локальный оверлей:http://forums.gentoo.org/viewtopic-t-827407.html

Связанный контент