为什么捆绑器不会安装JSON gem?

 疯疯癫癫丶是一种掩饰_954 发布于 2023-02-03 11:17

尝试运行时出现以下错误cap production deploy.

DEBUG [dc362284]    Bundler::GemNotFound: Could not find json-1.8.1.gem for installation
DEBUG [dc362284]    An error occurred while installing json (1.8.1), and Bundler cannot continue.
DEBUG [dc362284]    Make sure that `gem install json -v '1.8.1'` succeeds before bundling.

值得注意的是,此部署正在运行,而不是我升级到Ruby 2.1.0以消除编码错误.我本地升级,工作正常.我跑rvm install 2.1.0,并rvm use 2.1.0随后改变了我的.ruby-version文件,以反映该红宝石升级.

bundle install命令在本地工作,但当我ssh到目标服务器并运行此命令时,会产生相同的上述错误.

如果我跑,gem list我可以在宝石列表中看到这一点.

...
jquery-rails (3.0.4)
json (1.8.1)
less (2.3.2)
...

如果我在gem install json -v '1.8.1'本地服务器上尝试推荐的解决方案,并在目标服务器上获得以下输出:

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

所以它似乎安装了宝石,对吗?为什么会这样?我怎么解决这个问题?任何帮助将不胜感激.

10 个回答
  • 如果你在MacOS Sierra,你的ruby版本是2.4.0.ruby版本与json 1.8.3不兼容.

    您可以尝试在Gemfile中添加以下行:

    gem 'json', github: 'flori/json', branch: 'v1.8'

    这适合我!

    2023-02-03 11:18 回答
  • $ bundle update json
    $ bundle install
    

    2023-02-03 11:18 回答
  • 你应该试试

    $ sudo gem install json -v '1.8.2'
    

    在我的情况下(Ubuntu 14.04)没有直接工作,我必须这样做:

    $ sudo apt-get install ruby-dev
    

    然后我可以安装宝石并继续.还有一个问题是:

    $ sudo apt-get install libsqlite3-dev
    

    希望有所帮助.

    2023-02-03 11:18 回答
  • bundle update json.帮助通过.

    2023-02-03 11:18 回答
  • 运行此命令然后一切都会好的

    sudo apt-get install libgmp-dev
    

    2023-02-03 11:19 回答
  • 如果推荐的答案没有用,因为您已经在使用更新版本的bundler.尝试适合我的解决方案.

    删除供应商文件夹中的所有内容 在gemfile中添加一行

    gem 'json', '1.8.0'
    

    然后跑 - bundle update json.

    这似乎是1.8.1的一个问题,所以回到1.8.0对我来说是个窍门.

    2023-02-03 11:19 回答
  • 我试图让一个项目在我的本地开发盒(OSX 10.6)上运行时遇到了这个错误,使用了Sinatra和Postgresql(通过activerecord),在rvm'd ruby​​ 2.1上运行.我在这里找到了答案:https://github.com/wayneeseguin/rvm/issues/2511

    我的确切问题(在第一个日志条目块之后):

    尝试为宝石构建原生扩展时,我也遇到错误

    的回答:

    rvm重新安装2.1.0 --disable-binary

    的解释:

    OSX没有包管理器,所以所有库都必须由用户手动安装,这使得几乎不可能动态链接二进制文件,正如您所看到的那样,(伪)静态链接二进制文件存在问题.

    为了完整起见,我首先忘记更新rvm(rvm get head),这会产生一些其他错误,但是--disable-binary一旦我这样做了仍然需要标志.

    2023-02-03 11:19 回答
  • 所以经过半天的这一天,几乎在发布我的问题之后,我找到了答案.Bundler 1.5.0有一个错误,它无法识别此处引用的默认gem

    解决方案是使用更新到bundler 1.5.1 gem install bundler -v '= 1.5.1'

    2023-02-03 11:19 回答
  • 我在这里找到了解决方案.json版本1.8.1和ruby 2.2.3存在问题,因此请安装json 1.8.3版本.

    gem install json -v1.8.3
    

    2023-02-03 11:19 回答
  • 要解决此问题,只需运行:

    bundle update

    它将更新您的捆绑包的版本.然后运行:

    bundle install

    你的问题会得到解决.这里解释得很清楚.

    2023-02-03 11:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有