在不使用 sudo 的情况下在 MacOS 上安装捆绑器?

Install bundler on MacOS with out using sudo?

我运行正在使用 MacOS 10.14.1,如果不使用 sudo 安装捆绑程序,则无法安装 Jekyll。这里有解决方法吗?

当我运行:

gem install bundler jekyll

我得到:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

使用 sudo 安装所有东西,但我一直在阅读有关使用 sudo 安装 gems 的文章,认为这是一种不良做法。有解决方法吗?

我也是 Jekyll 用户。但是,我没有 运行 进入这个问题。我相信这是因为我使用 rbenv 来管理 Ruby,并先用它安装了 2.5.3。

我强烈建议您查看 rbenv。虽然我确实发现管理 Ruby 设置起来有点麻烦,但一旦设置好,它就会运行良好。

如果你有专用的非系统安装 Ruby,你将不需要 sudo。从那里,您还可以使用 bundle install --path vendor/bundle 将您的 gem 真正包含到您当前的项目中。

祝你好运,希望这对你有所帮助。

您始终可以安装到用户目录:

% ruby -r rubygems -e 'puts Gem.user_dir'
/Users/muru/.gem/ruby/2.3.0
% gem install bundler --user-install
WARNING:  You don't have /Users/muru/.gem/ruby/2.3.0/bin in your PATH,
      gem executables will not run.
Successfully installed bundler-2.0.2
Parsing documentation for bundler-2.0.2
Installing ri documentation for bundler-2.0.2
Done installing documentation for bundler after 3 seconds
1 gem installed

除了使用 --user-install 选项,您还可以设置并导出 GEM_HOME:

export GEM_HOME=$(ruby -r rubygems -e 'puts Gem.user_dir')
gem install bundler # will install to ~/.gem/ruby/...

要使用以这种方式安装的捆绑器,如警告所述,您需要将该路径添加到 $PATH:

PATH="$GEM_HOME/bin:$PATH"