Como instalar várias versões do mesmo pacote no Gentoo?

9

Eu gostaria de instalar duas (ou mais) versões dos mesmos pacotes no meu sistema Gentoo. Eu tenho certeza que não haverá nenhum conflito de arquivos, pois há muito poucos arquivos instalados e cada um deles tem o nome da versão.

Eu sei sobre slots, mas eles são especificados nos arquivos ebuild, e vamos assumir que não quero editar nenhum arquivo ebuild por vários motivos.

Gostaria que as versões instaladas fizessem parte do pacote mundial, para que possam ser reinstaladas ou desinstaladas como de costume.

Existe uma maneira de instalar várias versões do mesmo pacote? Você conhece alguns truques do Portage para conseguir isso?

Laurent Pireyn
fonte
É para isso que servem os slots. Se o pacote não estiver com fenda, a única coisa em que posso pensar é criar uma sobreposição pessoal e um novo pacote / ebuild que esteja com fenda.
Keith
@ Keith - Essa é a resposta certa, por que não publicá-la como resposta?
HedgeMage 2/11/11
@ Keith: Se é realmente a única maneira de fazê-lo, publique-o como resposta e terei prazer em aceitá-lo.
Laurent Pireyn

Respostas:

9

É para isso que servem os slots. Se o pacote não estiver com fenda, a única coisa em que posso pensar é criar uma sobreposição pessoal e um novo pacote / ebuild que esteja com fenda.

Keith
fonte
2
Uma pequena dica para uma forma pragmática de usar ranhuras iria ajudar os novatos :)
Stefano
1

Eu acho que na teoria você poderia fazer algo bobo como:

$ ROOT=~/package-1.0 emerge =package-1

Mas basicamente todas as coisas que não são de sobreposição estão sujeitas a algumas limitações e requisitos adicionais sobre os quais não há tanta informação.

lkraav
fonte
1

O que você pode tentar (não tenho certeza se funciona como esperado) é usar /etc/portage/envpara definir o SLOT de versões específicas de pacotes. Pode não funcionar devido ao cache de metadados. Mesmo que funcione, é uma confusão e pode resultar em comportamento inesperado. Como sempre, se quebrar, você fica com as peças.

Paul de Vrieze
fonte
1

Esta é uma pergunta antiga, mas ainda válida, e ninguém propôs a seguinte abordagem simples:

Se você não deseja criar slots, e sabe que os arquivos não colidem, simplesmente crie um novo ebuild na sua sobreposição local (depois de definir a sobreposição local no make.conf) e dê um nome diferente. Talvez algo como 'mypkg.ebuild'. Não há lei que determine o nome do ebuild e os arquivos que ele instala precisam compartilhar os mesmos nomes. Copie o arquivo pkg.ebuild do portage para /usr/local/portage/app-class/mypkg-newversion.ebuild, faça as alterações necessárias para a nova versão, ebuild e faça emergir.

Lembre-se de que você não poderá usar alguns dos nomes de variáveis ​​predefinidos ($ {P} et al) ao buscar as fontes.

Bob J
fonte
0

Outra coisa potencial a explorar é o prefixo do Gentoo

O que pode ser uma alternativa viável se você não se importar em manter 2 ecossistemas do Gentoo para fornecer o pacote "alternativo".

Isso é essencialmente criar um "subespaço" para um determinado escopo do projeto e usar o Gentoo de maneira diferente nesse escopo do projeto.

Kent Fredric
fonte