Acabamos de instalar nuestros nuevos servidores y estamos ejecutando CentOS en todos ellos. Después de instalar con éxito Ruby Enterprise Edition, ahora me gustaría agregar el /usr/lib/ruby-enterprise/bin
directorio REE / bin (ubicado en ) para que sea el intérprete de Ruby predeterminado en el servidor.
He intentado lo siguiente, que solo lo agrega a la sesión de shell actual:
export PATH=/usr/lib/ruby-enterprise/bin:$PATH
¿Cuál sería el enfoque correcto para agregar permanentemente este directorio a $ PATH para todos los usuarios ? Actualmente estoy conectado como root.
¡Gracias por adelantado!
~/.profile
es otra opción válida tambiénDespués de seguir el consejo de fmonk, revisé
/etc/bashrc
, donde noté que decía "Las cosas del medio ambiente van en / etc / profile". Procedí a mirar/etc/profile
, vi esto:Para resolver mi problema, simplemente agregué
pathmunge /usr/lib/ruby-enterprise/bin
debajo de la declaración if. Esto resolvió mi problema.fuente
"$EUID" = "0"
significa en este contexto?/etc/profile.d/
carpeta y lo notará. Además, como dijo, una actualización del sistema podría deshacer su solución.Por lo tanto, no pondría las variables de entorno en bashrc, porque no solo va en contra de una convención común, sino que también extrañará sus variables de bashrc al invocar un terminal desde un entorno gráfico de escritorio.
En Redhat en el
/etc/profile
encontré este comentario:Entonces, si desea establecer variables de entorno en función del usuario, hágalo en el archivo .bash_profile del usuario.
Dirigiéndome a la
.bash_profile
leí:Conclusión
Si solo desea que la raíz vea los programas que residen, por ejemplo, en /
sbin
agregaría esa ruta al.bash_profile
archivo raíz . Pero si desea que cada usuario pueda ver lo que la raíz programas específicos están instalados en su caja me gustaría poner/sbin
en/etc/.profile
. Ahora cada usuario puede usar la finalización de pestañas para buscar programas específicos de raíz y elevar los derechos si es necesario.Caso especial: SSH
Cuando se inicia ssh con una línea de comandos, se inicia un shell de inicio de sesión interactivo. Pero en este caso
/etc/profile
no se lee. Cuando definí variables de entorno en el.bash_profile
archivo de cada usuario, funcionó con ssh.fuente
LO SIENTO interpretó mal la pregunta que la siguiente respuesta es para el perfil de un USUARIO dejándolo en caso de que ayude a alguien
modificar .bash_profile
luego, en algún lugar del archivo, agregue / modifique sus rutas separadas por:
luego recarga tu perfil
o cierre sesión y vuelva a iniciar sesión
si marca RUTA, debe incluir sus rutas recién agregadas
fuente
Puede establecer variables de entorno en un archivo .rc; para bash shells (creo que es el más común y predeterminado en CentOS) cada usuario tiene un archivo llamado .bashrc en su directorio de inicio.
Agregue el comando PATH = / usr / lib / ruby-enterprise / bin: $ PATH a este archivo para configurarlo para cualquier usuario en particular.
Para configurarlo para todos los usuarios (como usted menciona), cámbielo en / etc / bashrc (el .bashrc predeterminado en el directorio de inicio de cada usuario debe generar este archivo, pero debe verificarlo dos veces).
fuente