git-kommandot hittades inte

Jag var tvungen att installera git från källan på RHEL. Efter installationen visas git-kommandot i /usr/local/bin/git när du försöker kommandot whereis. Den här sökvägen finns i $PATH också.

När jag skriver git står det fortfarande ”Kommando hittades inte.” Hur löser man detta?

EDIT: utdata från olika kommandon

$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 

EDIT: Det fungerar nu men vet inte varför

Jag kopplade bort telnet-anslutningen och loggade in igen några minuter tillbaka och upptäck att git-kommandot fungerar. Jag är inte säker på vad som fick det att börja fungera. Det här är förvirrande.

Kommentarer

  • Lägg till type git, which git, ls -l /usr/local/bin/git utgångar.
  • @manatwork se redigeringen.
  • @Marco lade till utdata från echo $ PATH .
  • Jag antar att @manatwork menade file och inte type 😉 så han vill (och jag också) för att se utdata från file /usr/local/bin/git
  • @Huygens, type är ett inbyggt skal i dash, bash och zsh. Om du använder ksh kan du ha en bra ursäkt för att inte veta det. (I mitt ksh finns det bara ett alias till whence med namnet type. säker på hur utbredd denna inställning är.) pastebin.com/VzScxzRg

Svar

Från felmeddelandena använder du (t) csh. Det skulle hjälpa att nämna det i din fråga, särskilt när du visar $ som din uppmaning, och det är traditionellt en Bourne-uppmaning, inte en csh-uppmaning.

type är ett inbyggt skal i Bourne-stil. Det gör det inte ” finns inte i csh. När du kör type git berättar det att kommandot type inte hittas.

Många skal håller information om placeringen av kommandon i sökvägen i en cache. Jag vet inte om någon version av csh cachar negativa sökningar, men det verkar som om din gör det. Kör kommandot rehash för att uppdatera cachen. När du startar en ny skalinstans, har en ny cache och så kommer inte ihåg att git inte var närvarande tidigare.

Kommentarer

  • Hej Gilles, jag borde ha nämnt skalet. Förlåt för det. Men jag får $ i prompten för både bash och tcsh. i tsch är det [username @ systemname] $ format och i bash är det bash-3.2 $ format.
  • Jag tror att detta är den närmast möjliga förklaringen till vad som hände. Jag kommer att försöka återskapa detta och verifiera och komma tillbaka. Tack …

Svar

Se till att, som i den här tråden , ditt skal har inte ändrats från det du ska få:

Jag har just upptäckt att min skalet ändrades till csh och det skapade problemet.

[root@localhost ~]# grep ^"$USER" /etc/passwd root:x:0:0:root:/root:/bin/csh 

Jag ändrade det till bash och problemet löstes!

[root@localhost ~]# type export export is a shell builtin 

Det skulle förklara varför får du ett ”type: Command not found.” felmeddelande.

Jag experimenterade med dessa kommandon:

[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 

Kommentarer

  • Om du byter skal till bash ' skriv ' kommando för att fungera. Git-kommandot fungerar nu även utan att gå in i bash. Vet inte varför! Se redigeringen.

Svar

Den mest troliga orsaken är att du har rätt PATH men inte rätt LD_LIBRARY_PATH.

Den senaste git körbar är en binär fil som är dynamiskt länkad. När du följde installationsanvisningarna placerade den antagligen bibliotek (.so filer) i /usr/local/lib, du måste lägga till den här sökvägen till din LD_LIBRARY_PATH. Testa det och kör sedan git:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib git 

Om det inte fungerar kan du ge utdata från ldd /usr/local/bin/git . Tack.

PS: om lösningen fungerade måste du lägga till LD_LIBRARY_PATH-raden i din .bash_profile

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *