asc*_*man 5 ruby ruby-on-rails passenger nginx rbenv
最近,我从RVM移至Rbenv。我跑了一堆不同的Rails应用程序(每个人都有不同的红宝石版)与passenger和nginx。但是,尝试加载两个应用程序时出现错误:
/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)>'
Run Code Online (Sandbox Code Playgroud)
其他应用程序运行良好,而当我使用webrick(独立)时,这些应用程序也可以运行。但是由于某种原因,我在使用时遇到了问题passenger。
我不确定这是否是巧合,但是我遇到问题的两个应用程序都在运行ruby v2.3.3。
有什么想法吗?
你应该删除rvm
这篇文章解释了如何删除 rvm,此外还有一个危险但有效的rvm 内爆脚本。
您收到的输出不是来自rbenvbut 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.
Run Code Online (Sandbox Code Playgroud)
这可能是由不同的问题引起的,我将完成整个rvm拆卸和rbenv安装过程。
rbenv并rvm使用环境变量来拦截您的命令。
您的系统中没有passenger或二进制文件(这是目录中的文件夹列表),二进制文件是从该文件夹安装并存储在该文件夹内的。passenger-config$PATHhomepassengerrbenv.rbenv/<ruby-version>
每个版本ruby都有单独的依赖项。
rbenv拦截您的命令 ( ) 并根据您设置的或passenger-config运行正确的binary( ) 。.rbenv/<ruby-version>/gems/passenger/passenger-configruby-versiongloballylocally
rvm可能适用于类似的方法,但与rbenv.
因此,您需要检查您的~/.bash_profile或~/.bashrc任何其他终端配置文件设置的rvm环境变量并将其删除。
正确安装后rbenv,运行command line interface命令passenger-config
passenger-config build-native-support
Run Code Online (Sandbox Code Playgroud)
并考虑查看Passenger + Nginx安装说明。