Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Mehrere Versionen in /opt per environment oder symlinks lösen?

  1. #1
    Registrierter Benutzer Avatar von ThorstenHirsch
    Registriert seit
    Nov 2002
    Beiträge
    6.558

    Mehrere Versionen in /opt per environment oder symlinks lösen?

    Hallo erst mal.

    Ich bin mit einem Kollegen uneins darüber, wie wir mit mehreren Versionen eines Programms umgehen sollen bezüglich Paketierung/Installation. Nehmen wir mal an, die beiden Versionen des Programms "foo" sehen so aus:
    Code:
    /opt/foo/1.0/bin/foo
    /opt/foo/1.0/include/foo.h
    /opt/foo/1.0/lib/libfoo.so
    
    /opt/foo/2.0/bin/foo
    /opt/foo/2.0/include/foo.h
    /opt/foo/2.0/lib/libfoo.so
    Und wir haben ein (eigenentwickeltes) Programm "bar", das die libfoo.so benutzt. Das Programm "bar" wird immer von user "Udo" ausgeführt (er hat es auch entwickelt), das Programm "foo" von user "Ulf". Beide user wollen immer die gleiche Version von "foo" benutzen (also muss auch "bar" immer genau die Version von libfoo.so benutzen, dessen bin/foo "Ulf" benutzt.

    Variante A
    Alles wird über's Environment gelöst. User "Ulf" schreibt für jede Version von "foo" eine Environment-Datei, die sich "Ulf" und "Udo" in ihrer ~/.profile sourcen. Diese enthält:
    Code:
    export PATH=/opt/foo/2.0/bin:$PATH
    export LD_LIBRARY_PATH=/opt/foo/2.0/lib
    Diese Datei kommt mit ins foo-Paket rein, also bspw. /opt/foo/2.0/env.sh. User "Udo" hatte sein "bar" zwar gebaut als foo 1.0 aktuell war, aber es funktioniert auch mit 2.0. Da der LD_LIBRARY_PATH gesetzt ist, findet "bar" auch die libfoo.so von Version 2.0 ohne dass "bar" neu gelinkt werden muss.

    => Jeder User kontrolliert in seinem Environment, welche Environment-Datei er sourcet und somit auch, welche Version benutzt wird. (Wobei sich Ulf nur um die runtime gekümmert hat und Udo beim Kompilieren/Linken von "bar" im Makefile noch angeben muss, ob er Version 1.0 oder 2.0 nutzt. So lange die Versionen der libfoo.so (binär) kompatibel sind, muss er kein neues "bar" bauen.

    Variante B
    Alles wird über einen Symlink gelöst. User "Ulf" schreibt eine Environment-Datei, die für alle Versionen von "foo" gleich aussieht:
    Code:
    export PATH=/opt/foo/current/bin:$PATH
    Das ominöse "current" ist hierbei ein Symlink, der auf "1.0" oder "2.0" zeigt. Der Symlink ist Teil der Installation von "foo", wird also bei jeder Installation einer neuen Version umgebogen auf die zuletzt installierte Version. Außerdem kann "Ulf" den Symlink ändern auf eine ältere Version, wenn er das möchte. Da "Udo" beim Kompilieren sein "bar" gegen /opt/foo/current/lib/libfoo.so gelinkt hat, muss kein LD_LIBRARY_PATH gesetzt werden.

    => Ulf kontrolliert durch die Installation der foo-Pakete bzw. manuelles Anpassen des Symlinks, welche Version von "foo" alle nutzen.

    Was meint Ihr dazu? A? B? ...oder ganz anders?
    ¡Nuestro amigo... el Computador!

  2. #2
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.819
    B - eine weiter Option wird hier (ganz unten) vorgestellt - http://superuser.com/questions/19257...a-binary-linux
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  3. #3
    Fieses Frettchen Avatar von DrunkenFreak
    Registriert seit
    Dec 2003
    Beiträge
    3.315
    Ich würde die erste Variante bevorzugen. Wenn noch Uwe hinzukommt, der eine andere Version nutzen möchte/muss als Udo und Ulf, wirst du mit Symlinks nicht mehr glücklich imho.

Ähnliche Themen

  1. bash Skript: Mehrere Prüfungen, eleganter lösen
    Von karl-heinz-lnx im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 04.02.13, 20:22
  2. mehrere php-Versionen installieren
    Von Stiftmaster im Forum Linux als Server
    Antworten: 5
    Letzter Beitrag: 14.11.11, 08:29
  3. mehrere Versionen vom gcc
    Von bluelight im Forum Anwendungen Allgemein, Software
    Antworten: 4
    Letzter Beitrag: 09.04.06, 22:02
  4. winex3 mehrere Versionen
    Von chrissy.koenig im Forum Emulatoren für Spiele
    Antworten: 0
    Letzter Beitrag: 03.07.04, 19:25
  5. Mehrere Versionen von QT -> Update?
    Von zorin im Forum Kompilieren von Kernel und Sourcen
    Antworten: 1
    Letzter Beitrag: 19.12.03, 23:10

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •