1

从 rails 6 升级到 rails 7,并在本地运行一些 ActiveStorage 方法时,我看到:

Could not open library 'vips.42': dlopen(vips.42, 0x0005): tried: 'vips.42' (no such file), '/usr/local/lib/vips.42' (no such file), '/usr/lib/vips.42' (no such file), '/Users/st/rails/hangswith/vips.42' (no such file), '/usr/local/lib/vips.42' (no such file), '/usr/lib/vips.42' (no such file). (LoadError)
Could not open library 'libvips.42.dylib': dlopen(libvips.42.dylib, 0x0005): tried: 'libvips.42.dylib' (no such file), '/usr/local/lib/libvips.42.dylib' (no such file), '/usr/lib/libvips.42.dylib' (no such file), '/Users/st/rails/hangswith/libvips.42.dylib' (no such file), '/usr/local/lib/libvips.42.dylib' (no such file), '/usr/lib/libvips.42.dylib' (no such file)

有许多类似的 GitHub 问题:(例如这里)。

我不确定是否需要安装 ruby​​-vips gem,或者我的操作系统/共享库是否有问题。

请注意,其他一些人报告了相同的错误。我想知道它是否可能是一个错误?

4

2 回答 2

2

如果你刚刚从 rails 6 升级到 7,并且已经config.load_defaults 7.0在 config/application.rb 中进行了设置,那么你的应用程序将默认使用 vips。

如果这是您想要的,只需确保在本地安装 vips。您可以使用自制软件安装它(感谢@timroman提供此信息):

brew install vips

但是,如果您不想使用 vips,而更喜欢在 rails 6 中使用 mini_magick,只需在 config/application.rb 中包含这一行

config.active_storage.variant_processor = :mini_magick

更多信息可以在这里这里的导轨指南中找到,在这个 PR

于 2022-01-25T13:11:35.640 回答
1

对于 Linux 用户只需使用 安装apt install libvips,如果想继续使用 Rails 7 的默认加载。

于 2022-03-04T15:31:42.987 回答