Musiałem zainstalować git ze źródła na RHEL. Po zainstalowaniu polecenia git pojawia się /usr/local/bin/git
podczas próby wykonania polecenia whereis
. Ta ścieżka jest dostępna w $PATH
również.
Kiedy piszę git, nadal wyświetla komunikat „Polecenie nie znaleziono”. Jak rozwiązać ten problem?
EDYCJA: wyjście różnych poleceń
$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
EDYCJA: Działa teraz, ale nie wiem dlaczego
Rozłączyłem połączenie telnet i zalogowałem się ponownie kilka minut temu i stwierdziłem, że polecenie git działa. Nie jestem pewien, co spowodowało, że zaczął działać. To jest mylące.
Komentarze
Odpowiedź
Z komunikatów o błędach, których „używasz” (t) csh. Wspomnienie o tym w pytaniu byłoby pomocne, zwłaszcza gdy „pokazujesz $
jako zachęta, a to „tradycyjnie zachęta Bournea, a nie zachęta csh.
type
jest wbudowaną powłoką w stylu Bournea. nie istnieje w csh. Po uruchomieniu type git
zostanie wyświetlony komunikat, że polecenie type
nie zostało znalezione.
Wiele powłok przechowuje informacje o lokalizacja poleceń w ścieżce wyszukiwania w pamięci podręcznej. Nie wiem, czy jakakolwiek wersja csh buforuje negatywne wyszukiwania, ale wydaje się, że tak jest. Uruchom polecenie rehash
, aby odświeżyć pamięć podręczną. Po uruchomieniu nowej instancji powłoki ma nową pamięć podręczną, więc nie pamięta, że git
nie było wcześniej obecne.
Komentarze
- Cześć Gilles, powinienem był wspomnieć o muszli. Przepraszam za to. Ale w monicie pojawia się znak $ zarówno dla bash, jak i tcsh. w tsch jest to format [nazwa_użytkownika @ nazwa_systemu] $, aw bash to format bash-3.2 $.
- Myślę, że jest to najbliższe możliwe wyjaśnienie tego, co się stało. Spróbuję to odtworzyć, zweryfikować i wrócić. Dzięki …
Odpowiedź
Upewnij się, że tak jak w ten wątek , twoja powłoka nie zmieniła się w stosunku do tej, którą powinieneś dostać:
Właśnie odkryłem, że moja powłoka została zmieniona na csh i tworzyła problem.
[root@localhost ~]# grep ^"$USER" /etc/passwd root:x:0:0:root:/root:/bin/csh
Zmieniłem to na bash i problem został rozwiązany!
[root@localhost ~]# type export export is a shell builtin
To by wyjaśniało dlaczego otrzymujesz komunikat o błędzie „type: Command not found.
„.
Eksperymentowałem z tymi poleceniami:
[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
Komentarze
- Zmiana powłoki na bash powoduje ' wpisz ' polecenie, aby działało. Polecenie git działa teraz nawet bez wchodzenia w bash. Nie wiem dlaczego! Zobacz edycję.
Odpowiedź
Najbardziej prawdopodobnym powodem jest to, że masz prawidłową PATH
, ale nie prawidłową LD_LIBRARY_PATH
.
Najnowszy git
plik wykonywalny to plik binarny, który jest dowiązany dynamicznie. Po wykonaniu instrukcji instalacji prawdopodobnie umieściłeś biblioteki (pliki .so
) w /usr/local/lib
, musisz dodać tę ścieżkę do swojego LD_LIBRARY_PATH
. Spróbuj, a następnie uruchom git:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib git
Jeśli to nie zadziała, czy możesz podać wynik ldd /usr/local/bin/git
. Dzięki.
PS: jeśli rozwiązanie zadziałało, musisz dodać wiersz LD_LIBRARY_PATH do swojego .bash_profile
type git
,which git
,ls -l /usr/local/bin/git
wyjścia.file
, a nietype
;-), więc on chce (i ja też) aby zobaczyć wynik działaniafile /usr/local/bin/git
type
jest wbudowaną powłoką wdash
,bash
izsh
. Jeśli używaszksh
, możesz mieć dobrą wymówkę, aby o tym nie wiedzieć. (W moimksh
jest tylko alias dowhence
o nazwietype
. Nie upewnij się, jak powszechne jest takie ustawienie). pastebin.com/VzScxzRg