Software-Volumes
Volume beantragen
Softwarevolume
Ein Softwarevolume wird bereitgestellt für Software, die in der Standard-Distribution
- gar nicht vorliegt
- nur in einer älteren Version vorliegt
- nur in einer nicht ausreichenden oder fehlerhaften Version vorliegt (evtl. bei Funktionen,
die explizit beim kompilieren aktiviert werden müssen) - aus lizenztechnischen Gründen nicht vorliegen kann (also unfreie
Software wie Adobe-Produkte).
Zu jedem Softwarevolume gehört ein RCINFO-Paket, um Benutzern eine möglichst einfache Auswahl der Software zu ermöglichen.
Wenn Du ein Softwarevolume benötigst, kann Du es per Mail an support@techfak.uni-bielefeld.de beantragen. Es wird dann ein Volume eingerichtet, in dem Du die entsprechende Software installieren kannst. Mehr Informationen dazu finden sich weiter unten in diesem Artikel.
Softwarevolumes
Struktur
Softwarevolumes sind strukturiert nach dem üblichen FHS-Schema.
Beispiel:
bin/ | Programme des Softwarepaketes |
lib/ | Bibliotheken des Softwarepaketes |
man/ | Manpages für die entsprechenden Binaries |
share/applications/ | .desktop-Files, um GUI-Software ins Menü zu integrieren |
doc/ | Dokumentation des Softwarepaketes |
src/ | Quellcode inklusive lokale Patches |
Neben diesen Verzeichnissen gibt es noch das TechFak-spezifische .rcinfo mit folgendem Inhalt
.rcinfo/description | Beschreibung des Volumes (72 Zeichen), was man bekommt, wenn man das RCINFO-Paket für dieses Volume wählt |
.rcinfo/maintainer | TechFak-Username wer für dieses Volume verantwortlich ist |
.rcinfo/environment | Umgebungsvariablen welche benötigt werden, um die Software zu verwenden |
./configure --prefix="/vol/acme" && make && make install
unstrukturiert?
Mein (proprietäres) Softwarebundle ist aber nicht strukturiert, sondern kommt flach (alles in einem Ordner) daher. Kann ich nicht einfach ein flaches Volume bekommen?
Nein.
Flache Volumes für Softwarepakete erschweren unnötig die Pflege der Volumes und dazugehörigen RCINFO-Pakete.
Nicht gewartete RCINFO-Pakete führen dazu, dass Benutzer*innen Programme direkt aus den Unterverzeichnissen starten, oder sich die langen Pfade in Ihre Konfiguration übernehmen, mit den entsprechenden negativen Folgen bei Änderungen (z.B. Upgrades oder Umbenennung der Binaries).
Die dadurch auftretenden Fehler betreffen nicht nur die entsprechende Software, sondern führen auch zu fehlerhaftem Betrieb des gesamten Systems. Oftmals bleiben die Probleme auch lange Zeit unentdeckt, so dass der Zusammenhang nicht unmittelbar hergestellt werden kann, oder der Zustand bei Benutzer*innen als normal betrachtet wird (''Firefox stürzt immer ab, also nehme ich Opera™'').
Sollte Deine Software unstrukturiert daher kommen, empfehlen wir sie in einem Unterordner in das Verzeichnis lib/
zu legen:
/vol/acme/lib/alles-in-allem-15.0_de
und in bin/
einen Symlink auf die verfügbaren Binaries zu setzen:
/vol/acme/bin/feuerrot
→ /vol/acme/lib/alles-in-allem-15.0_de/feurrot-de-15.0.98
/vol/acme/bin/marineblau
→ /vol/acme/lib/alles-in-allem-15.0_de/marineblau-de-15.0.22
Ebenso können selbstverständlich kurze Bash-Skripte als Starter dienen.
Environmentvariablen
Damit Benutzer*innen die Software, bzw. zwischen unterschiedlichen Versionen auswählen können, benutzt RCINFO kleine Pakete, welche die Environmentvariablen definieren, die notwendig für den Betrieb der Software sind.
Das von uns bereitgestellte Standardpaket sieht wie folgt aus (wobei ${RCINFO_PACKAGE_NAME}
durch den Namen Deines Volumes ersetzt wird):
PATH=/vol/${RCINFO_PACKAGE_NAME}/bin
MANPATH=/vol/${RCINFO_PACKAGE_NAME}/man
XDG_DATA_DIRS=/vol/${RCINFO_PACKAGE_NAME}/share
Sollte es nicht vermeidbar sein, dass Deine Volumekonfiguration von diesem Standardenvironment abweicht, so kannst Du die defaults überschreiben; so lassen sich auch zusätzliche Variablen definieren oder nicht benötigte auslassen:
PATH="/vol/chaosvolume/ACME Programme"
LD_LIBRARY_PATH="/vol/chaosvolume/ACME Bibliotheken"
JAVA_HOME="/vol/chaosvolume/ACME Java"
Übliche Variablen:
Variable | Funktion |
---|---|
PATH |
Suchpfad für Programmbinaries befinden |
LD_LIBRARY_PATH |
Suchpfad für Programmbibliotheken |
MANPATH |
Suchpfad für manpages |
XDG_DATA_DIRS |
Suchpfad für Menüeinträge der grafischen Benutzeroberfläche |
Ansprechpartner
Du bist der/die Ansprechpartner*in für Nutzer*innen bei Problemen mit der von Dir bereitgestellten Software und sorgst bei Updates innerhalb der Version darum, dass sie zeitnah bereitgestellt werden.
Neuere Versionen
Bei neuen Versionen bekommst Du auf Anfrage ein weiteres Volume (z.B. /vol/NAME-1.2.3
) für den Parallelbetrieb. Der default /vol/NAME
sollte jeweils auf die Version zeigen, die die meisten Benutzer benötigen und z.B. nicht während eines Semesters oder vor wichtigen Terminen, wie Projektdemos, geändert werden.