Wie installiere ich mehrere Versionen desselben Pakets in Gentoo?

9

Ich möchte zwei (oder mehr) Versionen derselben Pakete auf meinem Gentoo-System installieren. Ich weiß mit Sicherheit, dass es keine Dateikollisionen geben wird, da nur sehr wenige Dateien installiert sind und jede nach der Version benannt ist.

Ich kenne Slots, aber diese sind in den Ebuild-Dateien angegeben. Nehmen wir an, ich möchte aus mehreren Gründen keine Ebuild-Datei bearbeiten.

Ich möchte, dass die installierten Versionen Teil des Weltpakets sind, damit sie wie gewohnt neu installiert oder deinstalliert werden können.

Gibt es eine Möglichkeit, mehrere Versionen desselben Pakets zu installieren? Kennen Sie einige Portage-Tricks, um dies zu erreichen?

Laurent Pireyn
quelle
Dafür sind Slots da. Wenn das Paket nicht geschlitzt ist, kann ich mir nur vorstellen, ein persönliches Overlay und ein neues Paket / E-Build zu erstellen, das geschlitzt ist.
Keith
@Keith - Das ist die richtige Antwort, warum nicht als Antwort posten?
HedgeMage
@Keith: Wenn es tatsächlich der einzige Weg ist, es zu tun, dann poste es als Antwort und ich werde es gerne akzeptieren.
Laurent Pireyn

Antworten:

9

Dafür sind Slots da. Wenn das Paket nicht geschlitzt ist, kann ich mir nur vorstellen, ein persönliches Overlay und ein neues Paket / E-Build zu erstellen, das geschlitzt ist.

Keith
quelle
2
Ein kleiner Hinweis auf eine pragmatische Art, Slots zu verwenden, würde Neulingen helfen :)
Stefano
1

Ich denke, theoretisch könnte man etwas Dummes tun wie:

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

Grundsätzlich unterliegen jedoch alle Nicht-Overlay-Inhalte in hohem Maße zusätzlichen Einschränkungen und Anforderungen, über die nicht so viele Informationen vorliegen.

lkraav
quelle
1

Sie könnten versuchen (ich bin nicht sicher, ob es wie erwartet funktioniert) /etc/portage/env, den SLOT bestimmter Paketversionen festzulegen. Möglicherweise funktioniert dies jedoch nicht, da Metadaten zwischengespeichert werden. Selbst wenn es funktioniert, ist dies ein Problem und kann zu unerwartetem Verhalten führen. Wie immer, wenn es kaputt geht, können Sie die Teile behalten.

Paul de Vrieze
quelle
1

Dies ist eine alte Frage, aber immer noch gültig, und niemand hat den folgenden einfachen Ansatz vorgeschlagen:

Wenn Sie keine Slots erstellen möchten und wissen, dass die Dateien nicht kollidieren, erstellen Sie einfach ein neues Ebuild in Ihrem lokalen Overlay (nachdem Sie das lokale Overlay in make.conf eingerichtet haben) und benennen Sie es anders. Vielleicht so etwas wie 'mypkg.ebuild'. Es gibt kein Gesetz, das angibt, dass der Name des Ebuilds und die installierten Dateien denselben Namen haben müssen. Kopieren Sie die Datei pkg.ebuild von portage nach /usr/local/portage/app-class/mypkg-newversion.ebuild, nehmen Sie die erforderlichen Änderungen für die neue Version vor, erstellen Sie sie neu und erstellen Sie sie.

Beachten Sie, dass Sie beim Abrufen der Quellen einige der vordefinierten Variablennamen ($ {P} et al.) Nicht verwenden können.

Bob J.
quelle
0

Ein weiteres mögliches Thema ist das Gentoo-Präfix

Dies könnte eine praktikable Alternative sein, wenn es Ihnen nichts ausmacht, zwei Gentoo-Ökosysteme zu erhalten, um das "alternative" Paket bereitzustellen.

Dies bedeutet im Wesentlichen, einen "Unterraum" für einen bestimmten Projektbereich zu erstellen und Gentoo dann in diesem Projektbereich anders zu verwenden.

Kent Fredric
quelle