ruby-on-rails 错误:执行gem时...(TypeError)不兼容的封送文件格式(无法读取)

pjngdqdw  于 2023-07-01  发布在  Ruby
关注(0)|答案(5)|浏览(110)

我在Ruby 2.4.4版和macOS莫哈韦上运行bundle install时遇到了这个问题:

Fetching nokogiri 1.8.5
Installing nokogiri 1.8.5 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
ERROR: cannot discover where libxml2 is located on your system. please
make sure `pkg-config` is installed.

所以我就跑了

xcode-select --install

但是当我运行gem install nokogiri时,我得到了以下输出:

ERROR:  While executing gem ... (TypeError)
    incompatible marshal file format (can't be read)
    format version 4.8 required; 60.33 given

我试着将cookies_serializer设置为:hybrid

Rails.application.config.action_dispatch.cookies_serializer = :hybrid

但都没有用。
有办法解决吗?我现在甚至不能运行我的Rails服务器。

ds97pgxw

ds97pgxw1#

感谢Morgan Jarry的回答,这是我的工作:
我检查了我目前的来源,他们确实过时了:

gem sources

打印出来了

*** CURRENT SOURCES ***
http://gems.rubyforge.org/
http://gems.github.com

因此,我运行此脚本删除它们,并将其替换为https://rubygems.org/

gem sources -r  http://gems.rubyforge.org/
gem sources -r http://gems.github.com
gem sources -a https://rubygems.org/
omvjsjqw

omvjsjqw2#

尝试删除您的~/.gemrc。我在莫哈韦也遇到了同样的问题,这个解决了我的问题。

hc8w905p

hc8w905p3#

您必须删除所有的gem源代码,并添加https://rubygems.org/。请注意,http://gems.rubyforge.org/http://gems.github.com是永久失效的,应该删除。您可以通过运行以下命令列出源:

gem sources

你应该得到这样的东西:

*** CURRENT SOURCES ***

//gems.rubyforge.org/
//gems.github.com

1)删除所有源:

gem sources -r http://gems.rubyforge.org/
gem sources -r http://gems.github.com

2)添加正确的源:

gem sources -a https://rubygems.org/

希望这有帮助!

gg58donl

gg58donl4#

对我来说只是浏览器cookie清理修复了所有

nsc4cvqm

nsc4cvqm5#

我有类似的问题,服务器在一个branchA中响应良好,而在同一项目中的branchB失败。

解决方案:

  • 清除浏览器缓存
  • 重新启动服务器
  • 硬刷新浏览器

这对我很有效。

可能的根本原因:

特定分支中的Rails版本已更新
branchA中是Rails 6.0.4
而在branchB中是Rails 6.1.7.2
它也可以帮助你!!!

相关问题