Uma maneira de fazer isso deve ser substituir as opções padrão do portage rsync, excluindo as opções relacionadas à exclusão. As opções padrão estão atualmente codificadas em /usr/lib/portage/pym/_emerge/actions.py
da linha 2039 em minha casa.
Excluindo "--force" e "--delete" você adicionaria
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --whole-file --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
para /etc/make.conf
. No sentido de que nenhum arquivo ou diretório deveria ser mais deletado.
Editar: Note que normalmente você não gostaria de manter qualquer tais ebuilds dentro da portage tree que você está sincronizando.
Se você deseja preservar ebuilds específicos, há dois cenários típicos:
- Você está usando um ebuild desatualizado que deseja manter.
- Você mesmo escreveu um ebuild, ou encontrou um ebuild em algum lugar, e o adicionou ao portage tree ao qual está sincronizando.
Em ambos os casos, a melhor solução é copiar esses ebuilds para uma sobreposição local. Você também pode ter que copiar ebuilds que eles estão dependendo. Veja como criar uma sobreposição local simples: link