El perfil no se carga para todos los usuarios: linux, gcc, cross-compiling

Hace poco recibí la cadena de herramientas Arm-Linux-Gcccorriendo para mi sistema operativo Ubuntu. He configurado la variable de ruta para la cadena de herramientas en el archivo / etc / profile. Puedo acceder a la cadena de herramientas solo cuando estoy conectado como root y eso también, tengo que hacerlo

source /etc/profile

en cada sesión ¿Por qué pasó esto? ¿Por qué no puedo acceder a la cadena de herramientas desde el inicio de sesión normal?

Saludos,

Respuestas

3 para la respuesta № 1

Probablemente no estés ejecutando un login-shell.

Depende un poco del caparazón que está usando. Yo uso Bash, ¿pero tal vez use BusyBox?

Del manual de bash:

When bash is invoked as an interactive login shell, o como un no interactivo shell con la opción --login, primero lee y ejecuta comandos del archivo / etc / profile, si eso El archivo existe. Después de leer ese archivo, busca ~ / .bash_profile, ~ / .bash_login, y ~ / .profile, en ese orden, y lee y ejecuta comandos desde el primero que existe y es legible

Lo que suelo hacer para resolver este problema es:

source /etc/profile

como primera línea en mi ~ / .bashrc.

Esto funciona porque ~ / .bashrc también se ejecuta para shells que no son de inicio de sesión.

Para ver qué archivos se ejecutan, es posible que desee colocar mensajes de diagnóstico en ellos. Si no puedo recordar qué archivos se ejecutan con qué tipo de inicio de sesión, pongo:

echo /etc/profile/

como primera línea en mi / etc / profile, lo mismo para / etc / bash / bashrc, ~ / .bashrc, ~ / .profile y así sucesivamente.

Para obtener más información, consulte la parte "INVOCACIÓN" del manual de bash.


preguntas relacionadas
Menú