use*_*236 37 macos install rubygems bundler atom-editor
下面是我需要做的。
要运行规格,您需要安装RSpec。首先,在项目的根目录中运行gem install bundler。然后,运行bundle install。要运行单个规格文件,请运行如下命令:bundle exec rspec spec / 00_hello_spec.rb。要一次运行所有规格,请运行bundle exec rspec。
因此,我在终端输入了gem install bundler,并得到了 您对/Library/Ruby/Gems/2.3.0目录没有写权限。
这是在项目文件中的原子* source“ https://rubygems.org ” gem“ rspec”,“〜> 3.2.0” *
我的问题是:
似乎终端机给了我响应,因为我不应该更改ruby上的任何内容,而需要将安装包捆绑在atom内吗?谁能告诉我如何使用原子或在原子中运行任何东西?
非常感谢!
Ste*_*ein 111
使用--user-install运行以下命令的参数为我工作:
gem install name_of_gem --user-install
Run Code Online (Sandbox Code Playgroud)
编辑
有一个 gem 我仍然无法安装(它需要 Ruby 开发工具包的 Ruby.h 头文件或其他东西),然后我尝试了不同的版本管理器,但不知何故,它仍然没有真正起作用,因为它在文档中说明如何只是安装和切换(它只是没有切换版本)。然后我删除了所有已安装的版本管理器,然后安装brew install ruby了最新版本,并设置了 PATH 变量。(从 brew 安装 ruby 后会提到),有效。
mon*_*esh 83
您是正确的,macOS不允许您使用Mac随附的Ruby版本进行任何更改。但是,可以安装宝石,例如bundler使用不干扰Apple提供的Ruby的单独版本。
sudo即使您知道自己在做什么,也强烈建议不要使用安装gem或更改系统文件和目录的权限。我们可以停止提供这个坏建议吗?
该解决方案包括两个主要步骤:
PATH的代码,使新Ruby版本的位置在中PATH。目录列表以及计算机查找可执行程序的顺序PATH。如果键入echo $PATHTerminal,您将看到目录列表,以冒号分隔。有几种方法可以在Mac上安装Ruby。我建议并希望在各种安装说明中更加流行的最佳方法是使用自动脚本,该脚本将为您设置合适的Ruby环境。这将大大减少由于指令不足而导致出错的可能性,这些指令会使用户手动执行大量操作,然后由用户自己决定所有必要步骤。
您可以采取的另一种方法是花费额外的时间手动执行所有操作,并希望做到最好。首先,您将需要安装Homebrew,这使得安装其他工具和macOS应用程序变得容易。
然后,安装单独的Ruby版本的4种最流行的方法是:
brew install ruby,然后PATH通过运行echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile,source ~/.bash_profile要检查您是否正在使用非系统版本的Ruby,可以运行以下命令:
which ruby
Run Code Online (Sandbox Code Playgroud)
应该不是 /usr/bin/ruby
ruby -v
Run Code Online (Sandbox Code Playgroud)
它应该不是2.3.7。到目前为止,2.6.1是最新的Ruby版本。
一旦安装了这个新版本的Ruby,现在就可以安装bundler:
gem install bundler
Run Code Online (Sandbox Code Playgroud)
Sar*_*gis 22
尝试这个:
sudo gem install cocoapods --user-install
Run Code Online (Sandbox Code Playgroud)
为我工作
Pee*_*bib 13
您没有 /Library/Ruby/Gems/2.3.0 目录的写入权限。
就我而言,问题与 ruby 访问有关,以及我的系统中 ruby 路径如何混乱。
以下步骤帮助我解决了问题
打开终端
使用自制程序安装 ruby
[全新安装]
brew install ruby
[用于重新安装]
brew reinstall ruby
使用以下命令检查 ruby 的路径
which ruby
它应该安装在以下路径中
/usr/bin/ruby
将 ruby 路径更改为用户路径
检查您的系统使用哪个 shell
echo $0
-zsh
Run Code Online (Sandbox Code Playgroud)
对于 zshrc
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >>~/.zshrc
对于bash
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >>~/~/.bashrc
退出并重新启动终端
通过步骤 5 更改路径后
再次检查 ruby 的路径(执行步骤 3 - 请确保路径显示如下)
/usr/local/opt/ruby/bin/ruby
[如果不退出并启动终端,将显示第 4 步路径]
检查安装的pod版本
pod --version
如果安装的版本是1.11.0
gem uninstall cocoapods -v 1.11.0
安装特定版本的Cocoapods
gem 安装 cocoapods -v 1.11.0
更改项目目录的路径 cd {项目目录的路径}
在项目目录中安装捆绑程序
bundle install
pod install
Arj*_*tel 10
安装 macOS Catalina 后,我遇到了同样的问题。我尝试了以下命令及其工作。
sudo gem update
Run Code Online (Sandbox Code Playgroud)
Muh*_*cha 10
只需导出 GEM_HOME:
export GEM_HOME="$HOME/.gem"
Run Code Online (Sandbox Code Playgroud)
然后尝试:
gem install cocoapods
Run Code Online (Sandbox Code Playgroud)
如果您不想运行,sudo请使用自制软件安装ruby
brew install ruby
export GEM_HOME="$HOME/.gem"
gem install rails
Run Code Online (Sandbox Code Playgroud)
您可能要添加export GEM_HOME="$HOME/.gem"到您的文件中,~/.bash_profile或者.zshrc如果您正在使用zsh
在 M1 MacBook Air 上测试(假设安装了 Homebrew)
根据最上面的答案,我们可以运行:
brew install chruby ruby-install
Run Code Online (Sandbox Code Playgroud)
要安装最新的稳定版 ruby:
ruby-install ruby
Run Code Online (Sandbox Code Playgroud)
然后通过运行获取版本号:
chruby
Run Code Online (Sandbox Code Playgroud)
在你的 ~/.zshrc 文件中:
export PATH=/opt/homebrew/bin:$PATH
source /opt/homebrew/opt/chruby/share/chruby/chruby.sh
source /opt/homebrew/opt/chruby/share/chruby/auto.sh
chruby 3.1.2
Run Code Online (Sandbox Code Playgroud)
“3.1.2”是我运行 chruby 时得到的输出。确保在最后添加这一行。
请记住每次安装新 gem 时重新启动终端。
正如@idleberg 提到的,在 Mac OS 上,最好安装rbenv以避免在使用手动安装的 ruby 时出现权限错误。
$ brew update
$ brew install rbenv
Run Code Online (Sandbox Code Playgroud)
在.bashrc文件中添加以下内容:
$ brew update
$ brew install rbenv
Run Code Online (Sandbox Code Playgroud)
现在,我们可以查看可供安装的 ruby 版本列表
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)
例如安装版本 2.3.8
$ rbenv install -l
Run Code Online (Sandbox Code Playgroud)
现在我们可以全局使用这个 ruby 版本
$ rbenv install 2.3.8
Run Code Online (Sandbox Code Playgroud)
最后运行
$ rbenv global 2.3.8
Run Code Online (Sandbox Code Playgroud)
$ rbenv rehash
Run Code Online (Sandbox Code Playgroud)
现在安装捆绑器
$ which ruby
/Users/myuser/.rbenv/shims/ruby
$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-darwin17]
Run Code Online (Sandbox Code Playgroud)
全部完成!
小智 7
为了解决这个问题,我跑了
brew reinstall ruby
Run Code Online (Sandbox Code Playgroud)
这向我展示了这条消息
Run Code Online (Sandbox Code Playgroud)==> Caveats ==> ruby By default, binaries installed by gem will be placed into: /opt/homebrew/lib/ruby/gems/3.1.0/bin You may want to add this to your PATH. ruby is keg-only, which means it was not symlinked into /opt/homebrew, because macOS already provides this software and installing another version in parallel can cause all kinds of trouble. If you need to have ruby first in your PATH, run: echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.profile
所以我将这两行添加到我的~/.bashrc文件中
==> Caveats
==> ruby
By default, binaries installed by gem will be placed into:
/opt/homebrew/lib/ruby/gems/3.1.0/bin
You may want to add this to your PATH.
ruby is keg-only, which means it was not symlinked into /opt/homebrew,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have ruby first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.profile
Run Code Online (Sandbox Code Playgroud)
然后我打开一个新的 Terminal.app 窗口并再次运行我的gem install命令,它起作用了。
运行这个
$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)
按照说明进行操作(在我的情况下添加到~/.zshrc);)
同样重要的是:更改仅在您重新启动控制台时生效。两种选择
source <modified file>尝试 1 或 2
1 - $ gem install cocoapods
2 - $ sudo gem install cocoapods
Run Code Online (Sandbox Code Playgroud)
如果不起作用,则导出 GEM_HOME:
export GEM_HOME="$HOME/.gem"
Run Code Online (Sandbox Code Playgroud)
然后再试一次:
gem install cocoapods
Run Code Online (Sandbox Code Playgroud)
请记住官方文档说您可以使用 sudo (https://guides.cocoapods.org/using/getting-started.html#getting-started)。
如果您单独安装了 ruby 并使用 rbenv/rvm 安装了 ruby,则 budler 可能会指向不同的版本。
尝试
gem env home
Run Code Online (Sandbox Code Playgroud)
和
ruby -v
Run Code Online (Sandbox Code Playgroud)
两者应该指向相同的版本。检查您是否使用 rbenv/rvm 安装了 ruby,如果是,请删除您单独安装的 ruby 版本。
为了让 gem 工作,你必须调用 rbenv,
rbenv shell <ruby version>
Run Code Online (Sandbox Code Playgroud)
和
rbenv global <ruby version>
Run Code Online (Sandbox Code Playgroud)
我不确定 RVM 是如何工作的。让我知道这个是否奏效。
| 归档时间: |
|
| 查看次数: |
37312 次 |
| 最近记录: |