Package.env

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der TIPPs & Tricks Sammlung.
Terminals / Shells X Portage System Dateisysteme Kernel Netzwerk Sonstiges alphabetischer Tipp Index


Die Datei /etc/portage/bashrc ist die bashrc, die von Portage bei jedem Aufruf der Bash benutzt wird. Diese Datei kann man für eigene Ziele missbrauchen, im Folgenden wird das Paket net-misc/openssh als Beispiel benutzt.

Achtung: Der Autor dieser Anleitung übernimmt keine Haftung für Schäden, die durch die Anwendung des Tipps entstehen. Wer nicht weiß was hier gemacht wird, sollte im Sinne seines Systems darauf verzichten. Nichtsdestotrotz: Bei mir tut's der Tipp so wie er hier steht!


[Bearbeiten] Vorgehensweise:

/etc/portage/bashrc anlegen und Folgendes eintragen:

if [ -z "${CATEGORY}" ] || [ -z "${PN}" ]; then 
       PKG_ENV_FILE="/not/exits" 
else 
       PKG_ENV_FILE="/etc/portage/package.env/${CATEGORY}/${PN}" 
fi 
if [ -r ${PKG_ENV_FILE}-${PV} ]; then 
       source ${PKG_ENV_FILE}-${PV} 
elif [ -r ${PKG_ENV_FILE} ]; then 
       source ${PKG_ENV_FILE} 
fi     

Nun kann man im Verzeichnis /etc/portage/package.env Verzeichnisse für die Kategorie anlegen. Darin legt man eine neue Datei für net-misc/openssh an (/etc/portage/package.env/net-misc/openssh) und bearbeitet diese. In unserem Beispiel also:

mkdir -p /etc/portage/package.env/net-misc 
${EDITOR} /etc/portage/package.env/net-misc/openssh

Inhalt (z.B.):

export VARIABLE="--schlagmichtod --irgendwastolles"    


Bei einem emerge kdepim wird jetzt automatisch über die bashrc die Variable VARIABLE gesetzt und beim Bauen genutzt.


[Bearbeiten] Weitere Tipps

Die bashrc von oben unterstützt auch verschiedene Versionen eines Programms. z. B.: /etc/portage/package.env/kde-base/kdepim-3.1.5 Dateien mit Versionsnummern werden dabei gegenüber Dateien ohne Versionsnummern bevorzugt behandelt.

VARIABLE ist natürlich nur ein Beispiel, Im Prinzip ist alles möglich (CFLAGS, FEATURES etc.). Über Sinn und Unsinn möge jeder selbst entscheiden.


[Bearbeiten] FEATURES

Für die FEATURES sind kleine Hilfsfunktionen ganz nützlich:

function unset_feature {
       if [ ! -z ${1} ]; then
               FEATURES=${FEATURES/${1}/}
       fi
}

function set_feature {
       if [ ! -z ${1} ]; then
               FEATURES="${FEATURES/${1}/} ${1}"
       fi
}

Damit kann man in seinen package.env-Dateien ganz einfach FEATURES setzen und entfernen

set_feature noman
unset_feature sandbox
'Persönliche Werkzeuge