为什么 bash 有时认为我的 $HOME 不是正确的目录?

为什么 bash 有时认为我的 $HOME 不是正确的目录?

正如标题所说,bash 有时会错误识别我的 $HOME。这是在一系列看似独特的事件之后发生的,现在我将大致回顾一下。

  • 使用普通本地帐户运行 OS X 10.6
  • 工作将我的帐户绑定到 Active Directory
  • 很长时间过去了,没有问题
  • 设置 rvm 来管理 Ruby 安装(这在后面会变得很重要)
  • 几天前升级到 OS X 10.7
  • 安装成功后,尝试登录时,出现“必须重置密码”对话框,但不允许重置密码。输入新密码后只需摇动盒子即可。
  • 已进行了大量谷歌搜索。
  • 进行了更多谷歌搜索。
  • 咒骂已发生。
  • 以 root 身份登录,创建新帐户,设置为管理员,删除 /Users/[新帐户],将 /Users/[旧帐户] 重命名为 /Users/[新帐户]
  • 退出 root 帐户,登录新帐户,没有任何问题

OS X 多次要求输入我的账户密码来更新 Keychain 和其他系统级内容后,一切恢复正常。

打开终端,进入项目文件夹,尝试“rails 服务器”,结果显示:

/usr/local/lib/ruby/1.9.1/rubygems/dependency.rb:247:in to_specs': Could not find rails (>= 0) amongst [] (Gem::LoadError) from /usr/local/lib/ruby/1.9.1/rubygems/dependency.rb:256:into_spec' 来自 /usr/local/lib/ruby/1.9.1/rubygems.rb:1210:in gem' from /usr/local/bin/rails:18:in'

进行了一些练习,决定 rm -rf ~/.rvm 并重新安装。在 rvm 安装程序上运行 --trace 显示它在此行终止:

mkdir:/Users/[旧帐户]:权限被拒绝

回头查看 --trace 日志,我发现 /Users/[old account] 被多次提及。检查安装脚本时,有问题的行在尝试运行 mkdir 时查看了“${HOME}/.rvm”。令我困惑的是,我还在日志中看到了 /Users/[new account] 被提及。

我尝试在我的 .bash_profile 中导出一个新的 HOME,但没有成功。

有人能猜出为什么/Users/[旧帐户]仍然存在吗?

答案1

我最终解决了这个问题,尽管这不是最优雅的解决方案。

因为 rvm 根本无法运行,所以rvm implode没办法。我只好运行rm -rf ~/.rvm并重新安装了 rvm。

这可能无关,但我还必须下载osx-gcc-安装程序export CC=/usr/bin/gcc-4.2在 rvm 和 ruby​​ 构建之前设置将正常运行。使用with-gcc=clang没有提供可用的构建。

答案2

有一些东西正在破坏你的 $HOME 变量。

将其添加到你的 .bashrc 文件中

 declare -x -r HOME=/correct/home/path

相关内容