2012-03-04 13 views
5

Estoy usando Lion. Tengo un error que da salida en cada nueva sesión de terminal:¿Cómo puedo deshacerme de algo que se ejecuta en cada nueva sesión de terminal?

-bash: __rvm_add_to_path: command not found 

Es una nueva cuenta de usuario casi marca .. RVM está instalado en la otra cuenta en la máquina .. ~/.bashrc & ~/.bash_profile son tanto en blanco .. al cabo de poner env es:

TERM_PROGRAM=Apple_Terminal 
SHELL=/bin/bash 
TERM=xterm-256color 
TMPDIR=/var/folders/ry/8zsyknmx7dj4_2zzvn1n71500000gn/T/ 
Apple_PubSub_Socket_Render=/tmp/launch-jsfKPw/Render 
TERM_PROGRAM_VERSION=303 
TERM_SESSION_ID=3EBC0F1A-9867-41E5-8873-75E84B9F712F 
USER=incorvia 
COMMAND_MODE=unix2003 
SSH_AUTH_SOCK=/tmp/launch-ZQqgPj/Listeners 
Apple_Ubiquity_Message=/tmp/launch-u3d1lp/Apple_Ubiquity_Message 
__CF_USER_TEXT_ENCODING=0x1F5:0:0 
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin 
PWD=/bin 
LANG=en_US.UTF-8 
HOME=/Users/incorvia 
SHLVL=1 
LOGNAME=incorvia 
DISPLAY=/tmp/launch-0B0I8s/org.x:0 
_=/usr/bin/env 

que ver nada relacionado con RVM aquí .. ¿dónde más puedo mirar?

=====

/etc/bashrc

# System-wide .bashrc file for interactive bash(1) shells. 
if [ -z "$PS1" ]; then 
    return 
fi 

PS1='\h:\W \u\$ ' 
# Make bash check its window size after a process completes 
shopt -s checkwinsize 
# Tell the terminal about the working directory at each prompt. 
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then 
    update_terminal_cwd() { 
     # Identify the directory using a "file:" scheme URL, 
     # including the host name to disambiguate local vs. 
     # remote connections. Percent-escape spaces. 
     local SEARCH=' ' 
     local REPLACE='%20' 
     local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}" 
     printf '\e]7;%s\a' "$PWD_URL" 
    } 
    PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND" 
fi 

=========

fijo ...

En el fondo de mi/etc/profile fue la fuente /etc/profile.d/rvm.sh

No sé cómo llegó eso ...

+0

¿Ha mirado '/ etc/bashrc'? – simont

+0

Agregué el resultado de mi/etc/bashrc – Inc1982

+0

Compruebe [este enlace] (http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html) para otros lugares; '/ etc/profile' ¿quizás? Es más probable que sea una configuración global que específica del usuario. – simont

Respuesta

11

Bash carga una serie de archivos durante el inicio. Se puede encontrar una buena visión general del proceso de inicio de bash here.

En general, la configuración global, /etc/profile, /etc/bashrc, y los ajustes personalizados asociados, ~/.profile y ~/.bashrc se cargan, aunque eso es poco dependiente de la distribución (y en Mac OS X, por ejemplo, por defecto /etc/profile no existe)

Desde la página RVM Installation:

multiusuario:

La función RVM se configurará automáticamente para cada usuario en el sistema si instala como root. Esto se logra cargando /etc/profile.d/rvm.sh en el inicio de sesión. La mayoría de las distribuciones de Linux predeterminan el análisis de/etc/profile que contiene la lógica para cargar todos los archivos que residen en el directorio /etc/profile.d/. Una vez que haya agregado los usuarios que desea poder usar RVM al grupo rvm, esos usuarios DEBEN cerrar la sesión y volver a ingresar para obtener la membresía del grupo rvm porque las membresías grupales solo son evaluadas por el sistema operativo en el momento inicial de inicio de sesión.

Supongo que el otro uso se ha instalado en el modo Multi-User; /etc/profile probablemente carga /etc/profile.d/rvm.sh.

impide que sea cargado, se puede quitar la línea de source RVM/etc/profile - esto va a evitar que se carga para todos los usuarios , sin embargo.

4

Por la cuenta que tenía un perfil de trabajo, que tenía la siguiente .rvmrc:

[email protected]:~# cat .rvmrc 
export rvm_prefix="/usr/local/lib/sc" 
export rvm_path="/usr/local/lib/sc/rvm" 

para obtener el error que se fuera para mis otras cuentas, simplemente copiar este archivo a las otras cuentas y fijo los permisos (chown johndoe: johndoe /home/johndoe/.rvmrc) ...

1

En Ubuntu 12.04, de forma predeterminada, /etc/profile.d/rvm.sh no se cargará al iniciar una nueva terminal. Así, cada vez, al iniciar un nuevo termail, cmd de la siguiente debe ser utilizada para iniciar RVM:

source /etc/profile.d/rvm.sh 

Y hay dos maneras de solucionarlo:

  1. abrir una nueva Terminal-> derecha haga clic y seleccione Perfiles-> Preferencias de Perfil-> Título y Comando-> seleccione "Ejecutar comando como un shell de inicio de sesión".

  2. abrir una nueva Terminal-> cmd ejecutan como sigue a continuación, el /etc/profile.d/rvm.sh será automático cargado en un nuevo terminal:

    echo '[[-s "/ etc/profile.d/rvm.sh "]] & &. "/etc/profile.d/rvm.sh" # función de carga RVM' >> ~/.bashrc

Como alguna explicación here decir la primera solución no es un buen uno, pero se sugiere la segunda.

lo tanto, en sentido inverso, si no desea que el terminal para ejecutar algo en una nueva terminal, es necesario comprobar si la carga automática se corría por las dos maneras:

  1. comprobar si el Se selecciona "Ejecutar comando como un shell de inicio de sesión" y lo deselecciona.

  2. abra el archivo ~/.bashrc, encuentre las líneas relacionadas cargando la función y elimínela.

0

Tenía el mismo archivo (/etc/profile.d/rvm.sh) de una instalación previa de rvm. Eliminar ese archivo funcionó para mí también.

Por razones de exhaustividad, parece que es necesario desconectarse del shell.

0

En su cambio /etc/profile la línea:

source /etc/profile.d/rvm.sh

en:

if [ "${SHELL}" != "/bin/sh" ]; then 
    source /etc/profile.d/rvm.sh 
fi 

¿Por qué?

En Mac OS X, el shell predeterminado del superusuario (root) es un shell POSIX, no un Bash puro. Agregar tal condición deshabilitará rvm para (posiblemente) el shell emerygency /bin/sh, utilizado por el administrador del sistema. Eso es bueno. Si desea instalar algo utilizando la cuenta root, siempre puede escribir bash y luego rvm … en una línea de comando.

0

Debian 6.1 escanea el archivo /etc/profile.d/ para todos los archivos .sh y los incluye, por lo que no hay ningún listado para rvm en ninguno de los perfiles o archivos .bashrc en ningún lado. Eliminar rvm.sh de /etc/profile.d/ resuelve esto.

0

si tiene ZSH u OH-MY-ZSH, entonces necesita eliminar la fuente /etc/profile.d/rvm.sh de /etc/zprofile

Cuestiones relacionadas