尝试在 Mac 上使用全新安装的 Mavericks 开发现有的 Rails 3.0 应用程序。在 Mountain Lion 下,Passenger Standalone 运行良好。我升级到 Mavericks,安装了命令行工具、ruby、bundler 等。当我到这一步时:
passenger start
乘客尝试编译 nginx,但失败并出现以下错误:
adding module in /Users/ben/.passenger/standalone/3.0.21-x86_64-ruby1.9.3-macosx-10.9/support/ext/nginx
*** The Phusion Passenger support files are not yet compiled. Compiling them for you... ***
*** Running 'rake nginx RELEASE=yes' in /Users/ben/.passenger/standalone/3.0.21-x86_64-ruby1.9.3-macosx-10.9/support/ext/nginx... ***
(in /Users/ben/.passenger/standalone/3.0.21-x86_64-ruby1.9.3-macosx-10.9/support)
g++ -Iext -D_REENTRANT -I/usr/local/include -DHASH_NAMESPACE="__gnu_cxx" -DHAS_ALLOCA_H -DHAS_SFENCE -DHAS_LFENCE -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-long-long -Wno-missing-field-initializers -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/common/libboost_oxt/aggregate.o -c ext/common/libboost_oxt/aggregate.cpp
In file included from ext/common/libboost_oxt/aggregate.cpp:8:
In file included from ext/oxt/system_calls.cpp:26:
In file included from ext/boost/thread.hpp:24:
In file included from ext/boost/thread/future.hpp:14:
In file included from ext/boost/exception_ptr.hpp:9:
In file included from ext/boost/exception/detail/exception_ptr.hpp:19:
In file included from ext/boost/exception/info.hpp:15:
In file included from ext/boost/exception/to_string_stub.hpp:15:
In file included from ext/boost/exception/detail/object_hex_dump.hpp:14:
ext/boost/exception/detail/type_info.hpp:53:9: error: cannot define the implicit default assignment operator for 'boost::exception_detail::type_info_', because non-static reference member 'type_' can't use default assignment operator
type_info_
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:1246:35: note: in instantiation of member function 'std::__1::pair<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base> >::operator=' requested here
__cache->__value_ = *__first;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__tree:1187:9: note: in instantiation of function template specialization 'std::__1::__tree<std::__1::pair<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base> >, std::__1::__map_value_compare<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base>, std::__1::less<boost::exception_detail::type_info_>, true>, std::__1::allocator<std::__1::pair<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base> > > >::__assign_multi<std::__1::__tree_const_iterator<std::__1::pair<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base> >, const std::__1::__tree_node<std::__1::pair<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base> >, void *> *, long> >' requested here
__assign_multi(__t.begin(), __t.end());
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/map:766:21: note: in instantiation of member function 'std::__1::__tree<std::__1::pair<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base> >, std::__1::__map_value_compare<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base>, std::__1::less<boost::exception_detail::type_info_>, true>, std::__1::allocator<std::__1::pair<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base> > > >::operator=' requested here
__tree_ = __m.__tree_;
^
ext/boost/exception/info.hpp:160:26: note: in instantiation of member function 'std::__1::map<boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base>, std::__1::less<boost::exception_detail::type_info_>, std::__1::allocator<std::__1::pair<const boost::exception_detail::type_info_, boost::shared_ptr<boost::exception_detail::error_info_base> > > >::operator=' requested here
c->info_ = info_;
^
ext/boost/exception/detail/type_info.hpp:55:41: note: declared here
detail::sp_typeinfo const & type_;
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/utility:255:15: note: implicit default copy assignment operator for 'boost::exception_detail::type_info_' first required here
first = __p.first;
^
1 error generated.
rake aborted!
Command failed with status (1): [g++ -Iext -D_REENTRANT -I/usr/local/inclu...]
Tasks: TOP => nginx => agents/nginx/PassengerHelperAgent => ext/common/libboost_oxt.a => ext/common/libboost_oxt/aggregate.o
(See full trace by running task with --trace)
*** ERROR: command failed: sh ./configure --prefix=/tmp --with-cc-opt='-Wno-error' --without-pcre --without-http_rewrite_module --without-http_fastcgi_module '--add-module=/Users/ben/.passenger/standalone/3.0.21-x86_64-ruby1.9.3-macosx-10.9/support/ext/nginx'