2015-03-14 15 views
24

Sto tentando di installare YouCompleteMe da here.env: bash r: nessun file o directory

Quando eseguo:

./install.sh --clang-completer 

ottengo questo errore:

env: bash\r: No such file or directory 

non so che cosa è sbagliato con le variabili di ambiente. Ecco il mio percorso di bash:

which bash 
/bin/bash 

Devo cambiarlo in/usr/bash? Se sì, allora come dovrei farlo? Ho provato a cambiare il file ~/.bashrc, ma non ha funzionato.

risposta

37

Il messaggio di errore suggerisce che lo script si sta invocando ha incorporato \r caratteri, che a sua volta suggerisce che ha di Windows in stile \r\n fine riga invece dei \n linea terminazioni -solo bash aspetta.

Come una correzione rapida , è possibile rimuovere i caratteri \r. come segue:

sed $'s/\r$//' ./install.sh > ./install.Unix.sh 

e quindi eseguire

./install.Unix.sh --clang-completer 

Tuttavia, la questione più grande è il motivo per cui hai finito con \r\n file -style - molto probabilmente, altri file sono interessati, anche.

Forse si sta eseguendo Git su Windows, in cui una configurazione tipica è quello di convertire Unix-style \n linea -solo interruzioni di stile Windows \r\n interruzioni di riga su file check-out e ri-conversione in \n - solo interruzioni di linea su , con il commit di.

Mentre questo ha senso per lo sviluppo su Windows, ottiene nel modo di installazione scenari come questi.

Per make Git controlla i file con terminazioni di file in stile Unix su Windows - almeno temporaneamente - l'uso:

git config --global core.autocrlf false 

quindi eseguire il comandi di installazione che coinvolgono git clone di nuovo.

Per ripristinare il comportamento di Git in un secondo momento, eseguire git config --global core.autocrlf true.

6

Il file ha terminazioni di linea Windows. Passa alle terminazioni di linea Unix.

4

Ran in qualcosa di simile. È possibile utilizzare dos2unix install.sh per convertire le terminazioni di riga.Più file tramite find [pattern] | xargs dos2unix

Problemi correlati