【发布时间】:2010-11-11 23:14:15
【问题描述】:
我最近为我的 Ubuntu 操作系统启动并运行了 arm-linux-gcc 工具链。我已经在 /etc/profile 文件中配置了工具链的路径变量。只有当我以 root 身份登录时,我才能访问工具链,我也必须这样做
source /etc/profile
在每个会话中。为什么会这样?为什么我无法通过正常登录访问工具链。
问候,
【问题讨论】:
标签: linux gcc cross-compiling
我最近为我的 Ubuntu 操作系统启动并运行了 arm-linux-gcc 工具链。我已经在 /etc/profile 文件中配置了工具链的路径变量。只有当我以 root 身份登录时,我才能访问工具链,我也必须这样做
source /etc/profile
在每个会话中。为什么会这样?为什么我无法通过正常登录访问工具链。
问候,
【问题讨论】:
标签: linux gcc cross-compiling
可能您没有运行登录外壳。
这在一定程度上取决于您使用的外壳。我使用 Bash,但也许你使用 BusyBox?
来自 bash 手册:
当 bash 作为交互式调用时 登录外壳,或作为非交互式 带有 --login 选项的 shell,它 首先读取并执行命令 从文件 /etc/profile 中,如果是的话 文件已存在。读完那个文件后, 它寻找〜/ .bash_profile, ~/.bash_login 和 ~/.profile,其中 命令,并从第一个命令中读取并执行命令 存在且可读。
我通常会做些什么来解决这个问题:
source /etc/profile
作为我的 ~/.bashrc 的第一行。
这是因为 ~/.bashrc 也对非登录 shell 执行。
要查看执行了哪些文件,您可能需要将诊断消息放入其中。如果我不记得在我登录的类型下执行了哪些文件,我输入:
echo /etc/profile/
作为我的 /etc/profile 中的第一行,对于 /etc/bash/bashrc、~/.bashrc、~/.profile 等也是如此。
有关更多信息,请参阅 bash 手册的“INVOCATION”部分。
【讨论】: