gpt4 book ai didi

ruby-on-rails - Passenger 和 rbenv 问题 - 库版本不兼容

转载 作者:数据小太阳 更新时间:2023-10-29 07:20:06 25 4
gpt4 key购买 nike

最近我从 RVM 转到了 Rbenv。我使用 passengernginx 运行一堆不同的 Rails 应用程序(每个都有不同的 ruby​​ 版本)。但是,我在尝试加载两个应用程序时遇到错误:

/user_folder/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': incompatible library version - /usr/local/Cellar/passenger/6.0.2_1/libexec/buildout/ruby/ruby-2.3.3-x86_64-macosx/passenger_native_support.bundle (fatal)
from /user_folder/.rbenv/versions/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:427:in `load_native_extension'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:103:in `load_from_buildout_dir'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:39:in `try_load'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:50:in `start'
from /usr/local/Cellar/passenger/6.0.2_1/libexec/src/ruby_supportlib/phusion_passenger/native_support.rb:443:in `<top (required)>'

其他应用程序工作正常,而当我使用 webrick(独立)时,这些应用程序工作正常。但出于某种原因,我在处理 passenger 时遇到了问题。

我不确定这是否是巧合,但我遇到问题的两个应用程序都在运行 ruby​​ v2.3.3

知道发生了什么事吗?

最佳答案

你应该删除 rvm

post explains how to remove rvm ,另外还有一个危险,但是yet effective rvm implode script .

您收到的输出不是来自 rbenv但是rvm .

build-native-support. [passenger_native_support.bundle] trying to compile for the current user and Ruby interpreter... (set PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 to disable) Compilation successful. The logs are here: /var/folders/_n/pb7r0l3x4kjgcvbdxj30nyn00000gn/T/passenger_native_support-142p5a1.log [passenger_native_support.bundle] successfully loaded.

这可能是由不同的问题引起的,我会通过 rvm 的整个过程删除和 rbenv安装。

rbenvrvm使用环境变量来拦截您的命令。

您没有 passengerpassenger-config系统中的二进制文件 $PATH (这是您的 home 目录中的文件夹列表),passenger二进制文件是从 rbenv 安装的并存储在 .rbenv/<ruby-version> 中文件夹。

ruby的每个版本有单独的依赖关系。

rbenv拦截你的命令(passenger-config)并运行正确的binary ( .rbenv/<ruby-version>/gems/passenger/passenger-config ) 基于 ruby-version你设置了globallylocally .

rvm可能使用类似的方法,它与 rbenv 不兼容.

因此,您需要检查您的 ~/.bash_profile , ~/.bashrcrvm 的任何其他终端配置文件设置env 变量并删除它们。

正确安装后rbenv , 运行 command line interface命令 passenger-config

passenger-config build-native-support

并考虑查看 Passenger + Nginx installation instructions .

关于ruby-on-rails - Passenger 和 rbenv 问题 - 库版本不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55670847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com