Symbolischer Link: Keine solche Datei oder kein solches Verzeichnis


17

Ich habe einen symbolischen Link von einer Datei unter "/ opt / bladir / bla" zu "bla" erstellt. "Bla" befindet sich jetzt in "/ usr / bin / bla". Aber wenn ich "bla" am Terminal aufrufen will, kommt der keine solche Datei oder Verzeichnisfehler. Ich habe nach "/ usr / bin / bla" gesucht und die Datei ist korrekt mit "/ opt / bladir / bla" verknüpft.

Woran kann der Fehler liegen?

PS hier ist mein Terminal "Eintrag": sudo ln -s /opt/bladir/bla bla

Vielen Dank!

€: Problem gelöst. Gemäß der Feature-Liste sollte 12.04 Multiarch-Unterstützung haben ... "sollte". Ich habe die ia32-libs von synaptic bekommen und jetzt läuft das Programm einwandfrei. Wie es aussieht, waren meine symbolischen Links korrekt.

Vielen Dank für alle Antworten!

Antworten:


13

BEARBEITEN: Die unten stehende Lösung funktioniert nicht. Es ist offensichtlich, dass die symbolische Verknüpfung unterbrochen ist, da file -Ldie symbolische Verknüpfung / usr / bin / bla nicht geöffnet werden kann. In diesem Fall gehen Sie wie folgt vor:

sudo ln -sf /opt/bladir/bla /usr/bin/bla

Verwenden vollständiger Pfade (-f dient zum Erzwingen des Überschreibens der vorherigen symbolischen Verknüpfung, falls vorhanden).

Hm. Ich denke, dass das Programm "bla" nach Dingen sucht, die in / opt / bladir installiert sind und diese nicht finden können. Beispielsweise kann es sich um einen Shell-Script-Wrapper um eine ausführbare Java-Datei handeln, dessen Pfad sich auf das aktuelle Verzeichnis bezieht. Ihr aktuelles Verzeichnis lautet jedoch / usr / bin / und nicht / opt / bladir /.

Wenn das folgende funktioniert

file -L /usr/bin/bla

... dann ist es definitiv kein Problem mit Ihrem symbolischen Link.

Überprüfen Sie, ob es sich bei "bla" um ein Shell-Skript handelt, das Sie ändern können, und werfen Sie einen Blick hinein - vielleicht finden Sie das Problem. Möglicherweise ist es eine bessere Lösung, / opt / bladir zu Ihrem PATH hinzuzufügen.


Der angegebene Befehl lautet: ERROR: / usr / bin / bla kann nicht geöffnet werden. Ich kann nicht in "bla" reinschauen, es ist ein Programm, nicht nur ein Shell-Skript.
— Sehe

OK, wiederholen Sie die symbolische Verknüpfung mit vollständigen Pfaden.
— Januar,

Auf diese Idee bin ich früher von mir aus gekommen. Selbst wenn die alten Links wiederhergestellt und neue erstellt wurden, tritt der Fehler weiterhin auf. -sf hat auch nicht funktioniert.
— Sehe

IN ORDNUNG. Plese laufen ls -l /usr/bin/blaund ls -l /opt/bladir/blaund berichten über die genaue Ausgabe dieser Befehle.
— Januar

@Januar, welche Vorgehensweise würden Sie empfehlen, wenn file -L nicht funktioniert?
— Dbliss

0

Häufig wird diese Art von Fehlermeldung angezeigt, wenn Sie das Ausführungsbit nicht aktiviert haben. Überprüfen Sie, ob sowohl die Hauptdatei als auch der Link Ausführungsberechtigungen erhalten.

Ich vermute, dass Sie /optmöglicherweise von einer separaten Partition aus gemountet wurden und diese nicht mit der execMount-Option gemountet wurde


Das Ausführungsbit ist gesetzt und / opt / befindet sich nicht auf einer separaten Partition: /
— Sehe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.