2012-11-14 11 views
6

Mam problemy z systemem post-otrzymane hak następująco:git hak post-otrzymywać nie działa pakiet zainstalować

#!/bin/sh 
unset $(git rev-parse --local-env-vars) 
cd ~/commodity 
git pull origin master 
bundle install 
bundle exec rake assets:precompile 
thin restart 

jestem pchania od lokalnego do zdalnego i otrzymuję ten błąd:

Counting objects: 5, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (3/3), done. 
Writing objects: 100% (3/3), 319 bytes, done. 
Total 3 (delta 2), reused 0 (delta 0) 
remote: From /var/www/html/test 
remote: * branch   master  -> FETCH_HEAD 
remote: Updating a06129c..c3c3da3 
remote: hooks/post-receive: line 19: bundle: command not found 
remote: hooks/post-receive: line 20: bundle: command not found 
remote: hooks/post-receive: line 21: thin: command not found 
error: cannot run hooks/post-receive: No such file or directory 

Kiedy sklonować mojego repozytorium na serwerze i wciskanych tras hakowych i wszystko jest super. Jakieś pomysły, dlaczego naciśnięcie przycisku uruchamia komendy pakunku podczas wysyłania z mojego lokalnego komputera?

Dzięki!

+0

Podczas klonowania na serwerze, jesteś przy użyciu systemu plików lub SSH ścieżkę? Prawdopodobnie ma to związek z $ PATH, którą otrzymuje użytkownik SSH. może wypróbuj 'echo $ PATH' w' post-receive' i porównaj to z 'echo $ PATH', które widzisz w powłoce. –

+0

Witam Ben, klonuję plik, a nie SSH. Próbowałem klonować używając SSH, a teraz łamie się na serwerze. Oto moja $ PATH:/usr/libexec/git-core:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/bin:/usr/bin – pudding

+0

Czy Twój 'bundle' i "cienkie" pliki binarne w tej ścieżce? Przełącz się na użytkownika w ścieżce SSH, np. dla git @ nazwahosta: repo.git, wykonaj polecenie "su git". Czy ten użytkownik może zobaczyć polecenia 'bundle' i' thin'? Co się stanie, gdy spróbujesz je uruchomić? W razie potrzeby zmodyfikować 'PATH' w poście-otrzymywać skryptu więc można znaleźć polecenia, jak' PATH = $ PATH:/ścieżka/do/bundle' –

Odpowiedz

4

Spróbuj dodać ten wiersz do post-otrzymywać haka (przynajmniej przed pierwszym bundle ... rozmowy):

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

W systemach UNIX, RVM dodaje ten wiersz automatycznie do ~/.bash_profile. W dowolnych kontekstach bez basha (crontab, git hooks) musisz dodać go ręcznie.

+2

Pilot: haki/post-receive: 2: [[: nie znaleziono polecenia źródło – jakxnz

+0

Nie znaleziono – juanpastas

+1

to może to http://stackoverflow.com/a/5829823/1197775 – juanpastas