2015-03-14 21 views
24

Próbuję zainstalować YouCompleteMe z here.env: bash r: Brak takiego pliku lub katalogu

Kiedy wykonać:

./install.sh --clang-completer 

otrzymuję ten błąd:

env: bash\r: No such file or directory 

Nie wiem, co jest złego w zmiennych środowiskowych. Oto moja ścieżka bash:

which bash 
/bin/bash 

Czy muszę zmienić to na/usr/bash? Jeśli tak, to jak mam to zrobić? Próbowałem zmienić plik ~/.bashrc, ale nie działało.

Odpowiedz

37

Komunikat o błędzie wskazuje, że skrypt jesteś powołując został osadzony \r znaki, co z kolei sugeruje, że ma stylu Windows \r\n linia zakończeń zamiast \n -tylko zakończeń linii bash spodziewa.

Jako szybką naprawę, można usunąć znaki \r. w następujący sposób:

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

a następnie uruchomić

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

Jednak większy pytanie, dlaczego pan skończył z \r\n -Style pliki - najprawdopodobniej inne pliki są dotknięte, too.

Być może używasz Git na Windows, gdzie Typowa konfiguracja jest do konwersji stylu Unix \n -tylko linia łamie Windows stylu \r\n podziały wiersza na sprawdzanie plików z i ponownej konwersji do \n - jedyne podziały wierszy na popełnianie.

Chociaż sens rozwoju w systemie Windows, to staje na drodze instalacji scenariuszy jak te.

Aby make Git sprawdzić pliki z zakończeń plików stylu Unix Windows - przynajmniej tymczasowo - zastosowanie:

git config --global core.autocrlf false 

następnie uruchomić poleceń instalacyjnych obejmujących git clone ponownie.

Aby przywrócić zachowanie Git później, uruchom git config --global core.autocrlf true.

6

Twój plik zawiera zakończenia linii systemu Windows. Przejdź do końcówek linii Unix.

4

Wystąpiło coś podobnego. Możesz użyć dos2unix install.sh, aby przekształcić zakończenia linii.Wiele plików za pośrednictwem find [pattern] | xargs dos2unix