Passen Sie ebuild in Gentoo innerhalb des Portage-Baums an

7

Wie kann ich ein Ebuild in Gentoo anpassen, ohne ein benutzerdefiniertes Paket in einem eigenen Overlay zu verwalten?

Der Fall ist, dass ich kompilierte Binärdateien mit markieren muss paxctl. Aber es gibt ungefähr 100 solcher Pakete und ich möchte nicht selbst nach Updates in lokaler Überlagerung suchen.

Portage-Ebuilds werden ohne eine solche Kennzeichnung nicht kompiliert. Jetzt muss ich ihre Kompilierungsflags im /etc/portage/package.envVerzeichnis ändern . PAX-Markierung ist eine bessere Lösung, aber ich weiß nicht, wie ich das in Gentoo innerhalb des Portage-Baums machen soll.

Trupanka
quelle

Antworten:

4

Mit Portage können Sie dies tun package.env. Der richtige Ort, um nach der Dokumentation zu suchen, ist http://dev.gentoo.org/~zmedico/portage/doc/portage.html#config-bashrc-ebuild-phase-hooks . Grundsätzlich verwenden Sie es wie folgt. Zuerst erstellen Sie (unter der Annahme eines Standard-Setups ohne benutzerdefinierte Einstellungen ROOT) eine Datei in /etc/portage/env. Sie können beispielsweise eine Datei erstellen/etc/portage/env/paxmark

#paxmark

#Set this to what you need it to be
PAXFLAGS="-p"

post_src_install() {
  find "${INSTALL}" -type x -print0 |xargs -0 -n 1 paxctl $PAXFLAGS
}

Fügen Sie dann für alle Pakete, für die dies gelten soll, einen Eintrag hinzu zu /etc/portage/package.env:

#package.env example for paxmark
sys-apps/gcc paxmark

Dadurch wird das paxmarkSkript auf das angegebene Paket angewendet. Alternativ können Sie auch ein /etc/portage/bashrcSkript für globale Überschreibungen erstellen (seien Sie dabei sehr vorsichtig).

Eine allgemeine Warnung , da Sie allen Phasen Pre- und Post-Hooks hinzufügen können, kann dies gefährlich sein. Seien Sie vorsichtig mit dem, was Sie tun, da alle Ihre Pakete, die den Hook verwenden, jetzt nicht robuster geworden sind als Ihr Hook-Skript. (Das obige Beispiel für die Passagierkennzeichnung sollte in Ordnung sein).

Paul de Vrieze
quelle
1
Vielen Dank für Ihre Antwort. Es ist hilfreich, wenn Sie weitere Schritte zu Ihrer Antwort angeben können.
Ramesh
Ich habe die Frage aktualisiert. Hoffe das hilft mehr.
Paul de Vrieze
Dieser Weg verursacht in meinem Fall eine Portage-Ausnahme. Ich habe eine neue Frage
Uroc327
1

Wenn Sie zu Paludis wechseln , einem alternativen Paketmanager für Gentoo (dh einem Ersatz für emerge), können Sie wahrscheinlich einen Hook dafür einrichten .

cjm
quelle
Kann paludismit arbeiten catalyst?
Trupanka
Ich weiß es nicht. Ich habe es nie versucht catalyst.
cjm