【问题标题】:Windows bundle install: HOME environment variable (or HOMEDRIVE and HOMEPATH) must be set and point to a directory (RuntimeError)Windows 捆绑安装:必须设置 HOME 环境变量(或 HOMEDRIVE 和 HOMEPATH)并指向目录 (RuntimeError)
【发布时间】:2016-08-27 09:05:42
【问题描述】:

我成功安装了捆绑器

gem install bundler

那我试着做

bundle install

我收到以下错误:

C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rbreadline.rb:1097:in `<module:RbReadline>': HOME environment variable (or HOMEDRIVE and HOMEPATH) must be set and point to a directory (RuntimeError)
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rbreadline.rb:17:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/readline.rb:10:in `<module:Readline>'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/readline.rb:8:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb:2:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/line_editor.rb:2:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/base.rb:8:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor.rb:2:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/vendored_thor.rb:3:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:4:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/exe/bundle:18:in `<top (required)>'
    from C:/Ruby22-x64/bin/bundle:22:in `load'
    from C:/Ruby22-x64/bin/bundle:22:in `<main>'

似乎是环境变量错误,但在我的系统中设置正确

set HOME
HOMEDRIVE=C:
HOMEPATH=\Users\My Näme

是的,我的名字中有斯堪的纳维亚字母,所以我想知道这是否是问题所在。我认为我以前在使用 web2py 安装程序时遇到过这种情况。

无论如何,有什么想法可以解决这个问题吗?

【问题讨论】:

    标签: windows rubygems bundler


    【解决方案1】:

    如果您在域 PC 上并且您的 PC 设置为活动目录的一部分,则您可能会遇到此问题。在这种情况下,您的HOMEPATHHOMEDRIVEHOME 环境变量在您的企业活动目录或域中设置。一旦离开域组或与公司网络断开连接,您就会失去对这些变量的访问权限,因此会出现错误。使用setxin windows 永久环境变量覆盖企业环境变量并重新启动系统使其生效。

    SETX HOMEDRIVE %SYSTEMDRIVE% -m
    SETX HOMEPATH \Users\%username% -m
    SET HOME=%SYSTEMDRIVE%\Users\%USERNAME%
    SETX HOME "%HOME%"
    SET TEMP=%HOME%\Local Settings\Temp
    SETX TEMP "%TEMP%"
    SETX TMP "%TEMP%"
    

    这是在 Windows 10 上测试的,它可以工作。将其复制并粘贴到脚本中并放入您的启动文件夹或将其逐行粘贴到CMDPowerShell。或者,使用Task Scheduler 将其设置为任务。 注意 使用setx 时,使用双引号将带有空格的字符串包装起来。

    【讨论】:

    • 我试过了,但没有效果。 “捆绑安装”后仍然显示相同的错误消息
    • 您在域 PC 上吗?尝试运行echo %HOMEPATH%echo %HOMEDRIVE%。确保控制台窗口中打印的内容已解析为本地驱动器和路径。应用我建议的更改后重新启动计算机很重要。它可能不适用于 Windows XP 和 Vista
    • 也可以在 Windows 7 中使用,无需完全重启 - 只需重启 cmd shell
    • 对我也不起作用,在我的工作笔记本电脑上使用 Win 10 企业版。
    【解决方案2】:

    运行Get-ChildItem Env: 它将返回您所有的环境变量。检查以确保 HOME 和 HOMEPATH 正确。

    HOME -&gt; C:\Users\Eric HOMEPATH -&gt; \Users\Eric

    您可以使用以下命令来修复: Remove-Variable -Force HOME Set-Variable HOME "C:\Users\(enter your username)"

    【讨论】:

      【解决方案3】:

      我在执行“bundle exec jekyll s”时遇到了同样的错误,这太奇怪了,我以前从未遇到过错误。然后我尝试使用“gem install bundler”重新安装捆绑包。然后另一个警告显示:

      ERROR:  While executing gem ... (Errno::EACCES)
          Permission denied @ rb_file_s_stat - C:/WINDOWS/system32/config/systemprofile
      

      它给了我一个线索。我只是导航到目录并授予它所需的权限。那么问题就解决了。
      这是多么美好的一天!

      【讨论】:

        猜你喜欢
        • 2016-08-02
        • 1970-01-01
        • 2010-10-11
        • 1970-01-01
        • 1970-01-01
        • 2022-07-19
        • 1970-01-01
        • 2019-08-27
        • 1970-01-01
        相关资源
        最近更新 更多