Ich musste git von der Quelle auf RHEL installieren. Nach der Installation wird der Befehl git in /usr/local/bin/git
angezeigt, wenn der Befehl whereis
ausgeführt wird. Dieser Pfad ist in auch.
Wenn ich git eingebe, wird immer noch „Befehl nicht gefunden“ angezeigt. Wie kann das behoben werden?
BEARBEITEN: Ausgabe verschiedener Befehle
$type git type: Command not found. $which git git: Command not found. $ls -l /usr/local/bin/git -rwxr-xr-x 112 root users 5851488 Mar 15 20:07 /usr/local/bin/git $whereis git git: /usr/local/bin/git $echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
BEARBEITEN: Es funktioniert jetzt, weiß aber nicht warum
Ich habe die Telnet-Verbindung getrennt und mich vor einigen Minuten erneut angemeldet und festgestellt, dass der Befehl git funktioniert. Ich bin mir nicht sicher, warum es funktioniert hat. Dies ist verwirrend.
Kommentare
- Bitte fügen Sie die
type git
, , ls -l /usr/local/bin/git
Ausgaben.
- @manatwork siehe Bearbeitung.
- @Marco hat die Ausgabe von echo $ PATH hinzugefügt .
- Ich denke, @manatwork bedeutete
file
und nicht type
😉 also will er (und ich auch) type
ist eine in iv id = „31082eb4f1 integrierte Shell, um die Ausgabe von file /usr/local/bin/git
- @Huygens anzuzeigen „>
, bash
und zsh
. Wenn Sie ksh
verwenden, haben Sie möglicherweise eine gute Entschuldigung dafür, es nicht zu wissen. (In meinem ksh
gibt es nur einen Alias für whence
mit dem Namen type
. Nicht sicher, wie weit verbreitet eine solche Einstellung ist.) pastebin.com/VzScxzRg
Antwort
Aus den Fehlermeldungen, die Sie verwenden (t) csh. Es wäre hilfreich, dies in Ihrer Frage zu erwähnen, insbesondere wenn Sie $
als Ihre Eingabeaufforderung, und das ist traditionell eine Bourne-Eingabeaufforderung, keine csh-Eingabeaufforderung.
type
ist eine integrierte Shell im Bourne-Stil. t existieren in csh. Wenn Sie type git
ausführen, wird angezeigt, dass der Befehl type
nicht gefunden wurde.
Viele Shells enthalten Informationen zu Die Position von Befehlen im Suchpfad in einem Cache. Ich weiß nicht, ob eine Version von csh negative Lookups zwischenspeichert, aber es scheint, dass Ihre Version dies tut. Führen Sie den Befehl rehash
aus, um den Cache zu aktualisieren. Wenn Sie eine neue Shell-Instanz starten, wird diese ausgeführt hat einen neuen Cache und kann sich daher nicht erinnern, dass git
nicht früher vorhanden war.
Kommentare
- Hallo Gilles, ich hätte die Shell erwähnen sollen. Das tut mir leid. Aber ich bekomme $ in der Eingabeaufforderung für bash und tcsh. in tsch ist es das Format [Benutzername @ Systemname] $ und in bash das Format bash-3.2 $.
- Ich denke, dies ist die bestmögliche Erklärung für das, was passiert ist. Ich werde versuchen, dies neu zu erstellen und zu überprüfen und zurück zu kommen. Danke …
Antwort
Stellen Sie sicher, dass wie in In diesem Thread hat sich Ihre Shell nicht von der geändert, die Sie erhalten sollen:
Ich habe gerade festgestellt, dass meine Die Shell wurde in csh geändert und verursachte das Problem.
[root@localhost ~]# grep ^"$USER" /etc/passwd root:x:0:0:root:/root:/bin/csh
Ich habe es in bash geändert und das Problem wurde behoben!
[root@localhost ~]# type export export is a shell builtin
Das würde erklären Warum wird die Fehlermeldung „type: Command not found.
“ angezeigt?
Ich habe mit den folgenden Befehlen experimentiert:
[root@localhost ~]# csh [root@localhost ~]# type export type: Command not found. [root@localhost ~]# bash [root@localhost ~]# type export export is a shell builtin [root@localhost ~]# grep ^"$USER" /etc/passwd root:x:0:0:root:/root:/bin/bash
Kommentare
- Wenn Sie die Shell auf bash ändern, wird die ' Geben Sie den Befehl ' ein, um zu funktionieren. Der Befehl git funktioniert jetzt auch ohne Bash. Sie wissen nicht warum! Bitte lesen Sie die Bearbeitung.
Antwort
Der wahrscheinlichste Grund ist, dass Sie die richtige PATH
haben, aber nicht die richtige LD_LIBRARY_PATH
.
Die neueste git
ausführbare Datei ist eine Binärdatei, die dynamisch verknüpft ist. Wenn Sie die Installationsanweisungen befolgt haben, wurden wahrscheinlich Bibliotheken (.so
-Dateien) in /usr/local/lib
abgelegt. Sie müssen diesen Pfad zu Ihrem LD_LIBRARY_PATH
. Probieren Sie es aus und führen Sie dann git aus:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib git
Wenn dies nicht funktioniert, können Sie die Ausgabe von ldd /usr/local/bin/git
bereitstellen . Vielen Dank.
PS: Wenn die Lösung funktioniert hat, müssen Sie die Zeile LD_LIBRARY_PATH zu Ihrer .bash_profile
hinzufügen. div>