Existe uma maneira de evitar que emerge --sync exclua arquivos da árvore de portage?

2

Embora a opção PORTAGE_RSYNC_OPTS , a make.conf , permita alterar as opções de rsync, mas a remoção de --delete faz com que emerge falhe. Eu acho que com isso comentando sobre a falta de entradas md5-cache ou algo assim.

Eu gostaria de manter os antigos arquivos ebuild por um tempo maior do que a portage upstream.

    
por Dan D. 08.07.2013 / 11:22

2 respostas

0

Existe uma razão pela qual este ebuild foi deletado da árvore principal. Se o seu objetivo é manter o ebuild porque você quer ser capaz de construí-lo depois que ele é deletado da árvore principal, então eu sugiro que você crie uma sobreposição local e extraia os ebuilds deletados de sources.gentoo.org .

    
por 08.07.2013 / 20:36
0

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:

  1. 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

  2. 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.

    
por 08.07.2013 / 15:38