2012-07-30 14 views
6

Si ingreso a mi VPS como usuario de implementación y ejecuto bundle -v obtengo Bundler version 1.1.5 como esperaba.paquete no encontrado a través de ssh

Si me quedo ssh [email protected] bundle -v, entonces veo bash: bundle: command not found

¿Por qué no es un paquete mostrándose la ejecución de comandos a través de ssh?

Más información

$ cat ~/.bashrc 

# ~/.bashrc: executed by bash(1) for non-login shells. 
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) 
# for examples 

if [ -d "${RBENV_ROOT}" ]; then 
    export PATH="${RBENV_ROOT}/bin:${PATH}" 
    eval "$(rbenv init -)" 
fi 

# If not running interactively, don't do anything 
[ -z "$PS1" ] && return 

Respuesta

4

Cuando se ejecuta:

ssh [email protected] 

Se obtiene una shell de entrada en la máquina remota, lo que significa que su cáscara se ejecutará (... para la fiesta. ..) .bash_profile o .profile o equivalente ASÍ COMO su archivo de inicialización por shell.

Al ejecutar:

ssh [email protected] some_command 

Esto no se inicia un shell de entrada, por lo que sólo se ejecuta el archivo de inicialización per-shell (por ejemplo, .bashrc).

El problema que ha descrito normalmente significa que necesita algo en su archivo .profile (generalmente una configuración de variable de entorno) para que todo funcione.

0

.profile solo se carga para inicios de sesión.

ssh [email protected] 

le dará un shell de entrada, pero

ssh [email protected] bundle -v 

no lo hará.

se puede poner la belleza rbenv en .bashrc, pero si se trata de un solo disparo frente podría ser más limpio sólo para virar a su comando ssh, así:

ssh [email protected] "export PATH=\$HOME/.rbenv/bin:\$PATH; eval \"\$(rbenv init -)\"; bundle -v" 
Cuestiones relacionadas