git-Befehl nicht gefunden

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.