我只想从ImageMagick v7转换为ImageMagick v6。 这样做时发生了此错误。
捆绑安装无法正常工作。
似乎json版本有问题。
如何解决此错误?
下面的环境
当我在终端上捆绑安装时,出现此错误
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 -
此外,我进行了很多检查,然后我按照以下步骤更新了commandlinetool 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
但是,如果我捆绑安装,仍然无法正常工作:它们显示相同的错误。
答案 0 :(得分: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版本安装捆绑程序,我建议现在为1.17.3(在2.0.1之前的最新版本)gem install bundler -v '1.17.3'
。
您应该准备bundle install
。
我看到的消息Installing ... with native extensions
最常见的情况是导致错误,通常是由于缺少二进制文件,头文件和与C有关的代码来构建本机扩展,在这种情况下,问题是由于权限,因此为什么我建议重新安装。
答案 1 :(得分:0)
如果可以的话,我第二次@Danilo Cabello的建议重新开始。我还有其他一些疑难解答的想法:
您的捆绑包正在/vendor/bundle
中安装gem的事实意味着,在某些时候,您必须已指定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 | bash
(https://github.com/rbenv/rbenv-installer#rbenv-doctor)。
第三,根据项目文件夹中ls -l
的输出,您可能还需要递归更改~/.rbenv
文件夹的所有者/组,以确保所有内容都归您所有,而不是{{ 1}}(https://superuser.com/questions/260925/how-can-i-make-chown-work-recursively/260939#260939)