git commando niet gevonden

Ik moest git installeren vanaf de broncode op RHEL. Na installatie wordt getoond dat het git-commando zich in /usr/local/bin/git bevindt bij het proberen van het whereis commando. Dit pad is beschikbaar in $PATH ook.

Als ik git typ, staat er nog steeds “Commando niet gevonden.” Hoe dit op te lossen?

EDIT: uitvoer van verschillende commandos

$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: het werkt nu maar weet niet waarom

Ik verbrak de telnet-verbinding en logde een paar minuten geleden opnieuw in en ontdekte dat het git-commando werkt. Ik weet niet zeker waardoor het begon te werken. Dit is verwarrend.

Reacties

  • Voeg de type git, , ls -l /usr/local/bin/git outputs.
  • @manatwork zie de bewerking.
  • @Marco heeft de output van echo $ PATH toegevoegd .
  • Ik denk dat @manatwork file betekende en niet type 😉 dus hij wil (en ik ook) om de uitvoer van file /usr/local/bin/git
  • @Huygens te zien, type is een shell ingebouwd in dash, bash en zsh. Als je ksh gebruikt, heb je misschien een goed excuus om het niet te weten. (In mijn ksh staat alleen een alias voor whence met de naam type. Niet zeker hoe wijdverbreid is een dergelijke instelling.) pastebin.com/VzScxzRg

Antwoord

Van de foutmeldingen gebruik je (t) csh. Het zou helpen om het in je vraag te vermelden, vooral omdat je “$ als uw prompt, en dat is traditioneel een Bourne-prompt, geen csh-prompt.

type is een ingebouwde shell in Bourne-stijl. t bestaat in csh. Als je type git uitvoert, vertelt het je dat het type commando niet gevonden wordt.

Veel shells bewaren informatie over de locatie van opdrachten in het zoekpad in een cache. Ik weet niet of een versie van csh negatieve lookups in de cache opslaat, maar het lijkt erop dat die van jou dat wel doet. Voer de opdracht rehash uit om de cache te vernieuwen. Als je een nieuwe shell-instantie start, heeft een nieuwe cache en “kan zich dus niet herinneren dat git niet eerder aanwezig was.

Reacties

  • Hallo Gilles, ik had de schaal moeten noemen. Sorry daarvoor. Maar ik krijg $ in de prompt voor zowel bash als tcsh. in tsch is het [gebruikersnaam @ systeemnaam] $ formaat en in bash is het bash-3.2 $ formaat.
  • Ik denk dat dit de beste verklaring is voor wat er is gebeurd. Ik zal proberen dit opnieuw te creëren en te verifiëren en terug te komen. Bedankt …

Antwoord

Zorg ervoor dat, zoals in deze thread , is je shell niet “veranderd van degene die je zou moeten krijgen:

Ik heb zojuist ontdekt dat mijn shell is veranderd in csh en het veroorzaakte het probleem.

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

Ik veranderde het in bash en het probleem was opgelost!

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

Dat zou verklaren waarom je een “type: Command not found.” foutmelding krijgt.

Ik heb geëxperimenteerd met deze opdrachten:

[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 

Reacties

  • Het veranderen van de shell naar bash zorgt ervoor dat de ' typ ' commando om te werken. Het git commando werkt nu zelfs zonder in bash te gaan. Weet niet waarom! Zie de bewerking.

Antwoord

De meest waarschijnlijke reden is dat je de juiste PATH hebt, maar niet de juiste LD_LIBRARY_PATH.

Het laatste git uitvoerbare bestand is een binair bestand dat dynamisch is gekoppeld. Toen je de installatie-instructies volgde, plaatste het waarschijnlijk bibliotheken (.so bestanden) in /usr/local/lib, je moet dit pad toevoegen aan je LD_LIBRARY_PATH. Probeer het en voer git:

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

Als dat niet werkt, zou je dan de uitvoer van ldd /usr/local/bin/git kunnen geven . Bedankt.

PS: als de oplossing werkte, moet je de regel LD_LIBRARY_PATH toevoegen aan je .bash_profile

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *