"/ Usr", "/ usr / local /", "/ sbin"

7

Newbie Linux Admin Frage hier. In den letzten 6 Monaten habe ich die meisten Standardinstallationsprogramme auf meinem Server-Setup unter Fedora aktualisiert. In den letzten Wochen habe ich festgestellt, dass dieses Dateisystem viele Instanzen derselben Software enthält und einige noch verwendet werden, andere nicht.

Zum Beispiel habe ich MySQL mindestens dreimal aktualisiert / neu installiert, einmal von RPM und zweimal von Source Tarball. Ich habe gerade festgestellt, dass es MySQL - Binärdateien in /sbin, /usr/bin, /usr/local/bin, und /usr/local/mysql/bin. Um die Sache noch schlimmer zu machen, zeigt der whichBefehl auf /sbin( wahrscheinlich dank der Reihenfolge ENV, PATHin der geschrieben ist), aber das init.dSkript verwendet /usr/local/binund alle gemeinsam genutzten Bibliotheken und Header stammen aus einer weiteren Installation. Es ist ein Chaos.

Ähnlich verhält es sich mit der aktuellen Installation von PHP und Python.

Meine Frage lautet: Wie räume ich das auf? Muss ich:

  1. Wählen Sie eine der Installationen aus, zeigen Sie mit den richtigen Pfaden darauf und löschen Sie den Rest. Kompilieren Sie alle Abhängigkeiten neu, die auf die (jetzt gelöschten) anderen Installationen verweisen, wenn sie fehlschlagen, weil ihre Abhängigkeitspfade geschrieben wurden.
  2. Alles nivellieren und von vorne anfangen.

Gibt es eine andere Lösung? Danke für deinen Rat!

Chopper3
quelle

Antworten:

3

hängt davon ab, wie viel Zeit und Mühe Sie investieren möchten. Eine Neuinstallation ist immer dann am besten, wenn Sie Zeit und Geduld haben, um alles neu zu erstellen. Die schnelle Lösung besteht darin, Ihren PFAD so zu ändern, dass er auf die gewünschten Versionen verweist. Eine andere Möglichkeit besteht darin, Symlinks zu erstellen, die auf die gewünschten Versionen verweisen. Wieder ist die beste Methode eine völlig saubere Installation

ennuikiller
quelle
1
Wenn ich beispielsweise eine neue Maschine kaufe, führe ich von Zeit zu Zeit eine Neuinstallation durch und migriere die Daten und Konfigurationen.
pcapademic
1

Die schlechte Nachricht ist, dass es keine schnelle Lösung gibt.

Die gute Nachricht ist, dass MySQL normalerweise nicht zu chaotisch ist, wo es sich selbst installiert. Ich würde Ihnen raten, sie von Hand zu reinigen. Erstellen Sie zunächst eine Liste jeder Installation. Der folgende Befehl sollte alles abfangen:

INSTALL_PATH="/"
find ${INSTALL_PATH}/{bin,sbin,share} -name 'mysql*' -type f
find ${INSTALL_PATH}/{lib,include,share} -name 'mysql' -type d

Wiederholen Sie den Vorgang mit INTSTALL_PATHwie /usrund je /usr/localnach Bedarf. Entscheiden Sie dann, welche Installation Sie behalten möchten und welche gelöscht werden soll.

Offensichtlich wird eine der Installationen von RPM stammen, daher sollten Sie diese nicht manuell löschen. Verwenden Sie den Paketmanager. Und löschen Sie natürlich keine Datenverzeichnisse oder Protokolle, ohne vorher deren Inhalt zu überprüfen.

Dan Carley
quelle