De volta ao dia, haveria repositórios da árvore portage que você poderia clonar / verificar no conteúdo do seu coração. Dentro desses repositórios você sempre seria capaz de extrair ebuilds antigos. Como o portage / gentoo coloca manifestos e checksums em todos os lugares, você não pode ter um ebuild que o upstream não queira fazer parte da árvore do portage. Apenas como uma sobreposição.
Eu pesquisei isso para você e encontrei essa pergunta no Superuser SE que informa como fazer a sobreposição e também inclui um link para um repositório CVS do portage.
Mais detalhes:
Você não está usando rsync
, você está usando emerge
O primeiro é usado pelo último, o que faz com que uma parte do emerge, na verdade, uma parte do portage , que é o que você está realmente usando para gerenciar (não apenas copiar!) seus pacotes e informações do pacote. Olhando para rsync
você está olhando para um detalhe bastante profundo do portage e não pode simplesmente mudar esse detalhe. Em vez disso, você deve considerar todo o sistema. É por isso que apenas ajustar o comportamento de rsync
nunca conseguirá o que você deseja e causará um erro em emerge
.
Outra parte do sistema portage
, que você está usando, são somas de verificação. Para cada arquivo, precisa haver uma soma de verificação. Quando você executa emerge --sync
, não apenas copia e exclui ebuilds, você também está sincronizando a lista de arquivos dentro da árvore de portage e suas somas de verificação correspondentes. Os arquivos que são removidos do upstream e, portanto, da árvore do portage, também são removidos da lista de arquivos dentro da árvore do portage (porque eles não fazem mais parte da árvore do portage).
É por isso que você falha:
Removendo --delete
você acaba com arquivos em sua árvore de portage para os quais não há checksums disponíveis. Mas, como dito acima, as somas de verificação são uma parte do sistema, então você precisa delas.
Há também uma soma de verificação na lista de arquivos e, provavelmente, uma ou outra soma de verificação adicional, então é provavelmente tedioso contornar.
Se você quiser manter seus ebuilds antigos, aqueles que os mantenedores concluíram que é uma boa ideia remover, você tem duas opções:
-
você pode quebrar o sistema do portage,
a) força o comportamento de rsync
,
b) hack emerge
para que a lista de arquivos sempre inclua seus ebuilds com checksums e
c) construa algo para garantir que todas as somas de verificação estejam sempre lá e ok, incluindo a lista de arquivos
d) crie um sistema consistente que mantenha seus ebuilds especiais, mas remova os antigos, obsoletos e defeituosos, para que você tenha um sistema operacional estável e sustentável
-
você age dentro do sistema de portabilidade, o que permite modificar a árvore do portage, por meio de sobreposições.
Você está claramente tendo um problema xy . Você afirma que gostaria de manter alguns softwares importantes ao redor. Mas, em vez de perguntar como fazer isso, você está perguntando como modificar o comportamento de uma ferramenta usada pelo emerge, que é uma ferramenta do portage.
Pode-se ver a figura como um problema wxyz, sendo w o seu problema atual, você corre ao longo de x (portage), passa em y (emerge) e finalmente corre em uma parede em z (rsync). É hora de voltar alguns passos.
Outros tiveram a mesma intenção (manter ebuilds antigos) como você faz agora. Existe uma maneira válida e documentada de atingir esse objetivo sem bagunçar todo o sistema. Eu sugiro que você vá desse jeito.