Comment installer plusieurs versions du même package dans Gentoo?

9

Je voudrais installer deux (ou plus) versions des mêmes packages sur mon système Gentoo. Je sais qu'il n'y aura aucun conflit de fichiers, car il y a très peu de fichiers installés et chacun d'eux porte le nom de la version.

Je connais les emplacements, mais ceux-ci sont spécifiés dans les fichiers ebuild, et supposons que je ne souhaite modifier aucun fichier ebuild pour plusieurs raisons.

Je souhaite que les versions installées fassent partie du package mondial, afin qu'elles puissent être réinstallées ou désinstallées comme d'habitude.

Existe-t-il un moyen d'installer plusieurs versions du même package? Connaissez-vous des astuces Portage pour y parvenir?

Laurent Pireyn
la source
C'est à ça que servent les machines à sous. Si le package n'est pas fendu, la seule chose à laquelle je peux penser est de créer une superposition personnelle et un nouveau package / ebuild qui est fendu.
Keith
@Keith - C'est la bonne réponse, pourquoi ne pas l'afficher comme réponse?
HedgeMage
@Keith: Si c'est en effet la seule façon de le faire, postez-le comme réponse et je l'accepterai avec plaisir.
Laurent Pireyn

Réponses:

9

C'est à ça que servent les machines à sous. Si le package n'est pas fendu, la seule chose à laquelle je peux penser est de créer une superposition personnelle et un nouveau package / ebuild qui est fendu.

Keith
la source
2
Un petit indice vers une manière pragmatique d'utiliser les machines à sous aiderait les débutants :)
Stefano
1

Je pense qu'en théorie, vous pourriez faire quelque chose de stupide comme:

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

Mais fondamentalement, tous les éléments non superposés sont fortement soumis à certaines limitations et exigences supplémentaires sur lesquelles il n'y a pas beaucoup d'informations.

lkraav
la source
1

Ce que vous pourriez essayer (je ne suis pas sûr que cela fonctionne comme prévu) est d'utiliser /etc/portage/envpour définir le SLOT de versions de packages particulières. Cela pourrait ne pas fonctionner en raison de la mise en cache des métadonnées. Même si cela fonctionne, c'est un cludge et peut entraîner un comportement inattendu. Comme toujours, s'il se casse, vous gardez les morceaux.

Paul de Vrieze
la source
1

C'est une vieille question, mais toujours valable, et personne n'a proposé l'approche simple suivante:

Si vous ne voulez pas créer d'emplacements et que vous savez que les fichiers ne se heurtent pas, créez simplement un nouvel ebuild dans votre superposition locale (après avoir défini la superposition locale dans make.conf) et nommez-le différemment. Peut-être quelque chose comme «mypkg.ebuild». Aucune loi n'indique le nom de l'ebuild et les fichiers qu'il installe doivent partager les mêmes noms. Copiez le fichier pkg.ebuild de portage dans /usr/local/portage/app-class/mypkg-newversion.ebuild, apportez les modifications nécessaires à la nouvelle version, construisez et sortez-la.

Gardez à l'esprit que vous ne pourrez pas utiliser certains des noms de variables prédéfinis ($ {P} et al) lors de la récupération des sources.

Bob J
la source
0

Un autre élément potentiel à explorer est le préfixe Gentoo

Ce qui pourrait être une alternative viable si cela ne vous dérange pas de maintenir 2 écosystèmes de Gentoo afin de fournir le package "alternatif".

Il s'agit essentiellement de créer un "sous-espace" pour une portée de projet donnée, puis d'utiliser Gentoo différemment dans cette portée de projet.

Kent Fredric
la source