Terminal und Bash können nicht mit dem libiconv-Fehler beginnen

1

Ich habe gerade versucht, Terminal.app in Mac OS X 10.6.8 zu starten, und erhielt folgende Fehlermeldung:

 dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib   Referenced
    from: /bin/bash   Reason: Incompatible library version: bash requires
    version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0

 [Process completed]

Ich habe MacPorts installiert, daher vermute ich, dass die libiconv-Version irgendwie durcheinander ist. Da ich jedoch keine Terminalsitzung starten kann, weiß ich nicht einmal, wie ich diesen Fehler beheben oder beheben kann.

Was soll ich machen? Vielen Dank.

hpy
quelle
3
Haben Sie / bin / bash durch eines ersetzt, das von MacPorts stammt? Das System benötigt keine libiconv. Alles in / bin sollte nicht auf / opt / local referenzieren. Sie können die Datei / bin / bash von einem anderen Computer kopieren oder 10.6 neu installieren. Es kann sich lohnen, den neuesten Kombinationsaktualisierer zu installieren ... / bin / bash könnte sich dort befinden.
Alan Shutko

Antworten:

1

Ohne bash Sie können sich nicht im Terminal oder über ssh anmelden. Du könntest es versuchen zsh stattdessen ist dies aber wahrscheinlich auch von der Bibliothek abhängig.

Option 1

Terminal öffnen, Fehlermeldung im Fenster ignorieren, drücken Shift-Cmd-N und Renn /bin/sh. /bin/zsh oder /bin/csh anstelle von bash Dann korrigieren Sie die Symlinks.

Option 2

Starten Sie von der Installations-DVD aus, starten Sie von dort das Terminal und prüfen Sie, ob Version 8 der Bibliothek noch vorhanden ist /usr/lib (oder verwenden Sie libiconv. * von der Installations-DVD). Wenn ja, korrigieren Sie die Symlinks und starten Sie den Computer neu.

OTOH wie OS X 10.8 wird mit ausgeliefert libiconv.2 Sie könnten kein Glück haben:

lrwxr-xr-x  1 root  wheel       16 Oct 16 20:50 libiconv.2.4.0.dylib@ -> libiconv.2.dylib
-r-xr-xr-x  1 root  wheel  2113600 Oct 16 20:50 libiconv.2.dylib*
lrwxr-xr-x  1 root  wheel       20 Oct 16 20:50 libiconv.dylib@ -> libiconv.2.4.0.dylib

Option 3

Wie Option 1, aber versuchen Sie, die MacPorts zu ersetzen /bin/bash mit dem Original. Ich weiß nicht, wie MacPorts funktioniert, aber der ursprüngliche hängt vielleicht noch herum /bin/bash.orig oder ähnliches.

Option 4

Installieren Sie das Betriebssystem von der Installations-DVD neu (wirkt sich nicht auf den Rest aus), und installieren Sie die OS X-Upgrades erneut.

nohillside
quelle
1
Es sieht so aus, als würde bash nicht gestartet werden, da sich die Bibliothek im Macports-Verzeichnis befindet. Es lohnt sich möglicherweise zu prüfen, wie bash diese Datei nicht lesen kann, bevor das gesamte Betriebssystem neu installiert wird. (Was, wenn es ein Problem mit PATH ist, nicht helfen würde, da bei einer Neuinstallation der Home-Ordner und die Einstellung nicht gelöscht werden.)
Jonathan
1
@ Jonathan: Es ist das Betriebssystem, das Bash nicht ausführen kann. Macports haben die Bibliotheken möglicherweise durcheinander gebracht, aber Sie können dies nicht ohne eine funktionierende Shell ändern. Aber das gibt mir eine andere Idee :-)
nohillside
Schließlich fand ich es durch eine Kombination der Optionen 1 und 2 heraus. Ich verwendete zsh, um herauszufinden, dass es tatsächlich ein Problem mit Symlinks war und dass die ursprüngliche Bash ersetzt wurde. Das zu beheben war wahrscheinlich genug, aber ich habe die meisten MacPorts trotzdem neu installiert ... Vielen Dank für Ihre Hilfe!
hpy
0

Öffnen Sie TextEdit, laden Sie das Dialogfeld "Datei öffnen" und drücken Sie "Cmd-Shift-". (das ist ein Punkt am Ende). Laden Sie die Datei .bash_profile

Kopieren Sie aus der Zeile, die beginnt:

# MacPorts Installer addition

bis die Zeile endet:

# Finished adapting your PATH environment variable for use with MacPorts.

in einem separaten Dokument. Löschen Sie dann diese Zeilen aus der Originaldatei und speichern Sie sie. Speichern Sie die entfernten Zeilen zur Aufbewahrung in einer neuen Datei.

Ihr Terminal sollte jetzt funktionieren, aber dies hilft Ihrer Macports-Installation nicht. Von hier aus können Sie versuchen, Probleme zu beheben, oder Sie können Macports erneut installieren, indem Sie zuerst / opt / local entfernen (oder sichern).

Jonathan
quelle
1
Wenn ich die Fehlermeldung richtig gelesen habe, kann bash nicht einmal vom Betriebssystem ausgeführt werden. Das Ändern von .bashrc hilft in diesen Fällen nicht.
nohillside
Richtig, aber es hört sich an, als ob Bash nicht startet, weil die Bibliothek von Macintosh die Bibliothek libiconv nicht verwendet. Es scheint also, als sei Macports im $ PATH zu früh, und durch Entfernen des Macports-Eintrags in .bash_profile sollte dies beachtet werden.
Jonathan
.bash_profile wird von bash gelesen, nachdem bash vom Betriebssystem gestartet wurde. Wenn das Betriebssystem nicht einmal bash starten kann (wie es hier der Fall ist), lösen Änderungen in einer Datei, die ohnehin nicht gelesen wird, das Problem nicht. Aber es wäre schön, wenn es würde ...
nohillside