Quiero usar el script .sh para la implementación de mi aplicación. Ese script está en mi servidor doméstico (Ubuntu 15.10 Server), marcado como ejecutable. El acceso a este script se realiza a través de ssh, utilizando este tutorial, he configurado ssh login, que ejecuta ese script. Básicamente, solo llamo ssh deployer@XXX.com someArguments
y ejecuta mi script con someArguments
parámetros. El usuario deployer
tiene uid = 0, por lo que es básicamente root
(esto cambiará en el futuro, lo configuré solo para eliminar los problemas de permisos hasta que funcione bien).
Y aquí es donde las cosas se ponen difíciles. El script informa /usr/bin/env: php: No such file or directory
en el comando /bin/composer install
(usando Composer ). Las cosas son más raras cuanto más miro ese guión. Antes de esta línea, también se llama /bin/composer self-update
y /bin/composer -V
, que se ejecuta correctamente y muestra la salida correcta.
He comprobado las siguientes cosas:
/usr/bin/env php -v
muestra la versión correcta de PHP (igual que/usr/bin/php -v
)whereis php
muestraphp: /usr/bin/php /usr/local/bin/php /usr/share/man/man1/php.1.gz
php5-cli
el paquete está instalado y la versión más nueva$PATH
contiene/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
which env
muestra/usr/bin/env
También he intentado lo siguiente:
- Ejecutar el script directamente como
bash deploy.sh
root (ya que es el mismo que el usuario): funciona perfectamente sin errores - ejecutar comandos fallidos directamente, también perfectamente sin errores
Esto me parece un caso muy específico, por qué este comando no funciona. Pasé 12 horas depurándolo y no tengo ideas aquí.
PD: Se /usr/bin/env: node: No such file or directory
produce un error similar ( ) cuando hay bower install
(usando Bower ), pero no cuando se ejecuta npm install
(usando NPM ).
sh deploy
y bash deploy
ambos dan los mismos resultados
/usr/bin/env > environment.txt
sh deploy
lugar debash deploy
(quizás algo de bashism). ¿Cómo comprobaste las " cosas siguientes "? Recomiendo verificarlos en el script, para que pueda descubrir eventuales anulaciones y desinfecciones de envs.