¿Cómo instalar varias versiones del mismo paquete en Gentoo?

9

Me gustaría instalar dos (o más) versiones de los mismos paquetes en mi sistema Gentoo. Sé con certeza que no habrá ningún conflicto de archivos, ya que hay muy pocos archivos instalados y cada uno de ellos lleva el nombre de la versión.

Sé acerca de las ranuras, pero estas se especifican en los archivos de ebuild, y supongamos que no quiero editar ningún archivo de ebuild por varias razones.

Me gustaría que las versiones instaladas sean parte del paquete mundial, para que puedan reinstalarse o desinstalarse como de costumbre.

¿Hay alguna forma de instalar varias versiones del mismo paquete? ¿Conoces algunos trucos de Portage para lograrlo?

Laurent Pireyn
fuente
Para eso están las máquinas tragamonedas. Si el paquete no está ranurado, lo único que puedo pensar es crear una superposición personal y un nuevo paquete / ebuild que esté ranurado.
Keith
@Keith: esa es la respuesta correcta, ¿por qué no publicarla como respuesta?
HedgeMage
@Keith: Si es la única forma de hacerlo, publíquelo como respuesta y con gusto lo aceptaré.
Laurent Pireyn

Respuestas:

9

Para eso están las máquinas tragamonedas. Si el paquete no está ranurado, lo único que puedo pensar es crear una superposición personal y un nuevo paquete / ebuild que esté ranurado.

Keith
fuente
2
Un pequeño indicio sobre una forma pragmática de usar las tragamonedas ayudaría a los novatos :)
Stefano
1

Creo que en teoría podrías hacer algo tonto como:

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

Pero básicamente todas las cosas que no se superponen están altamente sujetas a algunas limitaciones y requisitos adicionales sobre los cuales no hay tanta información.

lkraav
fuente
1

Lo que se podría tratar (no estoy seguro si funciona como se esperaba) es utilizar /etc/portage/envpara establecer la ranura particulares versiones de los paquetes. Sin embargo, podría no funcionar debido al almacenamiento en caché de metadatos. Incluso si funciona, esto es un obstáculo y puede dar lugar a un comportamiento inesperado. Como siempre, si se rompe, puedes quedarte con las piezas.

Paul de Vrieze
fuente
1

Esta es una pregunta antigua, pero aún válida, y nadie ha propuesto el siguiente enfoque simple:

Si no desea crear ranuras y sabe que los archivos no chocan, simplemente cree un nuevo ebuild en su superposición local (después de configurar la superposición local en make.conf) y asígnele un nombre diferente. Quizás algo así como 'mypkg.ebuild'. No hay ninguna ley que establezca el nombre del ebuild y los archivos que instala tienen que compartir los mismos nombres. Copie el archivo pkg.ebuild de portage en /usr/local/portage/app-class/mypkg-newversion.ebuild, realice los cambios necesarios para la nueva versión, ebuild y emerja.

Tenga en cuenta que no podrá usar algunos de los nombres de variables predefinidos ($ {P} et al) al buscar las fuentes.

Bob J
fuente
0

Otra cosa potencial para explorar es Gentoo Prefix

Lo que podría ser una alternativa viable si no le importa mantener 2 ecosistemas de Gentoo para proporcionar el paquete "alternativo".

Esto es esencialmente crear un "subespacio" para un alcance de proyecto dado, y luego usar Gentoo de manera diferente en ese alcance de proyecto.

Kent Fredric
fuente