2012-11-14 2 views
6

Ich habe Probleme beim Ausführen des Post erhalten Haken wie folgt:git post erhalten Haken nicht läuft Bündel installieren

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

ich von der lokalen bis Remote bin Schiebe- und ich erhalte diese Störung:

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 

Wenn ich mein Repository auf dem Server klonen und drücken, läuft der Haken und alles ist großartig. Irgendwelche Ideen, warum der Push nicht die Bündelbefehle auslöst, wenn ich von meinem lokalen Rechner schiebe?

Danke!

+0

Wenn Sie auf dem Server klonen, verwenden Sie einen Dateisystem- oder SSH-Pfad? Dies hat wahrscheinlich etwas mit dem $ PATH zu tun, den Ihr SSH-Benutzer bekommt. vielleicht versuche 'echo $ PATH' in 'post-receive' und vergleiche es mit' echo $ PATH', das du in einer Shell siehst. –

+0

Hallo Ben, ich klicke den Dateipfad, nicht SSH. Ich habe versucht, mit dem SSH zu klonen und jetzt bricht es auf dem Server. Hier ist mein $ PFAD:/usr/libexec/git-core:/usr/lokal/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin – pudding

+0

Sind Ihre 'Bündel' und 'dünne' Binärdateien in diesem Pfad? Wechseln Sie zu dem Benutzer in dem SSH-Pfad, z. für git @ hostname: repo.git, do 'su git'. Kann dieser Benutzer die Befehle 'bundle' und' thin' sehen? Was passiert, wenn Sie versuchen, sie auszuführen? Ändern Sie 'PATH' im Post-Receive-Skript, wenn Sie die Befehle benötigen, wie zB 'PATH = $ PATH:/path/to/bundle ' –

Antwort

4

Versuchen Sie, diese Zeile in post erhalten Haken hinzufügen (zumindest vor der ersten bundle ... Anruf):

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

Auf Unix-Systemen ergänzt rvm diese Zeile automatisch auf die ~/.bash_profile. In jedem Nicht-Bash-Kontext (Crontab, Git-Hooks) müssen Sie es manuell hinzufügen.

+2

remote: hooks/post-receive: 2: [[: nicht gefunden – jakxnz

+0

Quellbefehl nicht gefunden – juanpastas

+1

es ist vielleicht das http://stackoverflow.com/a/5829823/1197775 – juanpastas