0

我只是想从 ImageMagick v7 转换为 ImageMagick v6。这样做时,发生了这个错误。

捆绑安装无法正常工作。

好像 json 版本有问题。

如何修复此错误?

下面的环境

  1. ruby 2.3.1p112(2016-04-26 修订版 54768)[x86_64-darwin17]
  2. Rails -v(找不到 gem)(因为 bundle install 不能工作)
  3. json 列表 / json (默认: 1.8.3) multi_json (1.13.1, 1.11.2, 1.11.0)
  4. 捆绑器版本 1.16.4
  5. 麦克莫哈韦 10.14

当我在终端上进行捆绑安装时,出现此错误

Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies.......
Using rake 12.3.2
Using concurrent-ruby 1.1.4
Using i18n 0.9.5
Fetching json 1.8.6
Installing json 1.8.6 with native extensions
Errno::EPERM: Operation not permitted @ chmod_internal -
/Users/***/projects/***/vendor/bundle/ruby/2.3.0/gems/json-1.8.6/tests/test_json.rb
An error occurred while installing json (1.8.6), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.6' --source 
'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
rails was resolved to 4.2.6, which depends on
actionmailer was resolved to 4.2.6, which depends on
  actionpack was resolved to 4.2.6, which depends on
    actionview was resolved to 4.2.6, which depends on
      rails-dom-testing was resolved to 1.0.9, which depends on
        rails-deprecated_sanitizer was resolved to 1.0.3, which depends on
          activesupport was resolved to 4.2.6, which depends on
            json

我试图这样做是因为错误声明说确保
gem install json -v '1.8.6' --source 'https://rubygems.org/'在捆绑之前成功

但结果显示如下

ERROR:  While executing gem ... (Errno::EPERM)
Operation not permitted @ chmod_internal - /Users/***/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/json-1.8.6/tests/test_json.rb

我无法理解这个错误声明

Errno::EPERM: Operation not permitted @ chmod_internal -

另外,我看了很多,然后我按照这个 https://howchoo.com/g/m2u0mmuwzda/macos-mojave-fix-invalid-active-developer-path更新命令行工具

然后,我再次执行此命令,

sudo gem install json -v '1.8.6' --source 'https://rubygems.org/'

然后,就这样彻底成功了。

Building native extensions. This could take a while...
Successfully installed json-1.8.6
Parsing documentation for json-1.8.6
Installing ri documentation for json-1.8.6
Done installing documentation for json after 1 seconds
1 gem installed

但是,如果我进行捆绑安装,仍然无法正常工作:它们显示相同的错误。

4

2 回答 2

0

我的建议是尽可能重新开始。可能你的 rbenv 没有正确安装,尝试重新安装,我建议使用brew install rbenv https://github.com/rbenv/rbenv#homebrew-on-macos

确保将其添加eval "$(rbenv init -)"到您的~/.bash_profile然后打开一个新终端。

导航到项目目录并安装所需的 Ruby 版本:rbenv install 2.3.1

rbenv use 2.3.1您可以通过发出和来确保您使用的是该版本ruby --version

现在为那个 Ruby 版本安装 bundler,我现在建议 1.17.3(2.0.1 之前的最新版本)gem install bundler -v '1.17.3'

你应该准备好了bundle install

Installing ... with native extensions我看到的消息导致错误的最常见情况通常是由于缺少二进制文件、头文件和 C 相关代码来构建该本机扩展,在您的情况下,问题是由于权限引起的,因此我建议一些全新安装。

于 2019-02-08T23:58:29.267 回答
0

如果可以的话,我赞同@Danilo Cabello 的建议,重新开始。我只是有一些其他的故障排除想法:

您的捆绑包正在安装 gems 的事实/vendor/bundle意味着在某些时候,您必须使用bundle install --path vendor/bundle@mogbee 所暗示的那样指定路径。该路径标志会将与您的 gem 关联的文件加载到vendor/bundle而不是您的系统 gem 位置。如果您试图将项目的 gem 与任何其他项目分开,您可能已经这样做了,但如果没有,您将需要更新捆绑程序的 gem 路径。

为此,首先,通过运行检查任何问题bundle doctor。如果未发现问题,请使用 . 检查您的捆绑包配置bundle env。确保您的 RubyGems Gem Home 和 Gem Path 是通过 .rbenv 路由的,因此它们应该匹配并且看起来像/Users/***/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0. 如果它们不匹配,请运行下面的 rbenv-doctor 命令,该命令应确保您的 rbenv 安装正确导出了路径。

如果 的输出bundle env告诉您您实际上正在运行旧版本的捆绑程序(早于 1.16.4),我肯定会更新,并会像 @Danilo Cabello 那样推荐版本 1.17.3。

其次,我会运行这个 rbenv-doctor curl 命令来检查 rbenv 安装的状态:(curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bashhttps://github.com/rbenv/rbenv-installer#rbenv-doctor

第三,根据ls -l项目文件夹中的输出,您可能还希望递归更改~/.rbenv文件夹的所有者/组,以确保所有内容都归您所有而不是roothttps://superuser.com/questions/260925/how- can-i-make-chown-work-recursively/260939#260939

于 2019-02-11T20:40:25.387 回答