3

我已经询问过在 $HOME 安装 python 包的问题。它完美无缺。

现在,我打算安装Vagrant。它是一个gem(一个 ruby​​ 包),我也想将它安装在我的 $HOME 文件夹中,但我不习惯它,所以我在这里寻求帮助。

我已经跑了,

sudo gem update --system

接下来是他们的mac教程。当我尝试使用他们的推荐安装 Vagrant 时:

gem install vagrant

我得到:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/bin directory.

(奇怪的是,gem install vagrant它不起作用,我在安装了香草的 Mac 中按照 Vagrant 官方网站的指南,从未在这里使用过 Ruby,我得到了错误。特别是在不需要使用 sudo 时。)

行。使用 sudo 可以解决它,但我不想在整个系统范围内安装这个 gem,我想像使用 pip 一样将它们安装在 $HOME - 我不知道如何在不搞砸的情况下做到这一点mac机。有人可以帮助我如何以最好的方式做到这一点吗?~/.gem如果我必须添加到 my$PATH或类似的东西,我必须导出哪些变量。(我用的时候是不是已经把所有东西都搞砸了sudo gem update --system?)

有些人建议使用rvm,但我认为这太过分了,因为我不打算针对系统 Ruby 开发 ruby​​ 应用程序,我只想运行 Vagrant。当然,如果没有其他方法,我会使用它。

我的 gem 环境命令输出:

gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.10
  - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-10
  - GEM PATHS:
     - /Library/Ruby/Gems/1.8
     - /Users/user/.gem/ruby/1.8
     - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

编辑:我找到了一个教程,说我只需要添加到我的.profile

export GEM_HOME=$HOME/.gems
export PATH=$GEM_HOME/bin:$PATH

使用这种方法是否安全?

4

1 回答 1

2

使用我发布的教程方法似乎有效。如果这种方法在我的场景中有任何警告(我只想运行 ruby​​ 应用程序,不想开发它们)并且他们会接受我自己的答案,我将等待更有经验的 ruby​​ 开发人员。:)

转录教程

推荐:将 Gems 安装到您的主目录

在可能的情况下,避免将 gem 安装到全局系统中。这可确保您安装的 gem 易于识别和管理,并且不会干扰全局 Ruby 安装。

从 RubyGems 1.3 开始,如果系统位置不可访问,RubyGems 会自动将 gems 安装到 GEM_HOME 环境变量指定的目录中。您将看到在 GEM_HOME 目录中创建了用于存储 gem 文件的目录。这意味着 RubyGems 在管理包时会做正确的事情,前提是您没有以管理权限运行 gem 实用程序。

为此,请编辑主目录中的 .profile 文件,并添加或修改它以包含以下行:

导出 GEM_HOME=$HOME/gems

导出 PATH=$GEM_HOME/bin:$PATH

这将在您下次登录或创建终端窗口时生效。

PATH 中 bin 子目录的存在使您可以使用随 gem 包一起安装的任何命令行实用程序。

于 2011-09-05T03:45:16.460 回答