正如标题所说,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:in
to_spec' 来自 /usr/local/lib/ruby/1.9.1/rubygems.rb:1210:ingem' 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