git-kommandoen blev ikke fundet

Jeg var nødt til at installere git fra kilden på RHEL. Efter installationen vises git-kommandoen i /usr/local/bin/git når du prøver kommandoen whereis. Denne sti er tilgængelig i $PATH også.

Når jeg skriver git, står der stadig “Kommando ikke fundet.” Hvordan løses dette?

EDIT: output af forskellige kommandoer

$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 fungerer nu, men ved ikke hvorfor

Jeg afbrød telnetforbindelsen og loggede ind igen for få minutter tilbage og fandt ud af, at git-kommandoen fungerer. Jeg er ikke sikker på, hvad der fik det til at begynde at arbejde. Dette er forvirrende.

Kommentarer

  • Tilføj venligst type git, which git, ls -l /usr/local/bin/git output.
  • @manatwork se redigeringen.
  • @Marco tilføjede output af ekko $ PATH .
  • Jeg antager, at @manatwork betød file og ikke type 😉 så han vil (og jeg også) for at se output fra file /usr/local/bin/git
  • @Huygens, type er en shell indbygget i dash, bash og zsh. Hvis du bruger ksh, har du muligvis en god undskyldning for ikke at vide det. (I mit ksh er der bare et alias til whence med navnet type. sikker på, hvor udbredt denne indstilling er.) pastebin.com/VzScxzRg

Svar

Fra de fejlmeddelelser, du bruger (t) csh. Det ville hjælpe at nævne det i dit spørgsmål, især da du viser $ som din prompt, og det er traditionelt en Bourne-prompt, ikke en csh-prompt.

type er en indbygget shell i Bourne-stil. Det gør det ikke ” findes ikke i csh. Når du kører type git, fortæller det dig, at kommandoen type ikke findes.

Mange skaller holder oplysninger om placeringen af kommandoer i søgestien i en cache. Jeg ved ikke, om nogen version af csh cacher negative opslag, men det ser ud til, at din gør det. Kør kommandoen rehash for at opdatere cachen. Når du starter en ny shell-forekomst, er den har en ny cache og husker ikke, at git ikke var til stede tidligere.

Kommentarer

  • Hej Gilles, jeg skulle have nævnt skallen. Ked af det. Men jeg får $ i prompt til både bash og tcsh. i tsch er det [brugernavn @ systemnavn] $ format og i bash er det bash-3.2 $ format.
  • Jeg tror, det er den tættest mulige forklaring på, hvad der skete. Jeg vil forsøge at genskabe dette og kontrollere og komme tilbage. Tak …

Svar

Sørg for, som i denne tråd , din shell er ikke ændret fra den, du skal få:

Jeg har lige fundet, at min shell blev ændret til csh, og det skabte problemet.

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

Jeg ændrede det til bash, og problemet blev løst!

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

Det ville forklare hvorfor du får en “type: Command not found.” fejlmeddelelse.

Jeg eksperimenterede med disse kommandoer:

[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

  • Ændring af shell til bash forårsager ' skriv ' kommando til at arbejde. Git-kommandoen fungerer nu selv uden at gå i bash. Ved ikke hvorfor! Se redigeringen.

Svar

Den mest sandsynlige årsag er, at du har den korrekte PATH men ikke den korrekte LD_LIBRARY_PATH.

Den seneste git eksekverbar er en binær fil, der er dynamisk forbundet. Når du fulgte installationsinstruktionerne, placerede den sandsynligvis biblioteker (.so filer) i /usr/local/lib, skal du tilføje denne sti til din LD_LIBRARY_PATH. Prøv det og kør derefter git:

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

Hvis det ikke virker, kan du give output fra ldd /usr/local/bin/git . Tak.

PS: hvis løsningen fungerede, skal du tilføje LD_LIBRARY_PATH-linjen til din .bash_profile

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *