apt passenger 包安装的 passenger_free_ruby 可执行文件是什么
What is the passenger_free_ruby executable that is installed by the apt passenger package
passenger_free_ruby 是如何工作的?
我使用phusion提供的apt包安装了phusion passenger。我的系统 ruby 是使用 brightbox apt 软件包安装的 ruby2.1。我希望 /etc/apache2/mods-enabled/passenger.conf 使用 /usr/bin/ruby 作为 PassengerDefaultRuby 的默认值。它使用 /usr/bin/passenger_free_ruby.
passenger_free_ruby 表现得像 ruby,这是预期的 ruby
/usr/bin/passenger_free_ruby -v
ruby 2.1.6p336 (2015-04-13 revision 50298) [x86_64-linux-gnu]
如果我将 ruby 升级到 ruby2.2,那么 passenger_free_ruby 将作为 ruby2.2
运行
/usr/bin/passenger_free_ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]
那么 passenger_free_ruby 到底做了什么?免费是什么意思?为什么不直接使用 /usr/bin/ruby 作为默认值 ruby?
其存在的原因记录在the executable's source code。
/*
* This is a simple program for executing either the 'ruby' command in PATH,
* or one of the Ruby versions installable by APT. This is necessary because
* Debian 6 and Debian 8 (among others) do not install /usr/bin/ruby upon
* installing one of the versioned Ruby packages (e.g. apt-get install ruby2.1).
* Commands such as 'passenger' are supposed to be runnable under any Ruby
* interpreter the user desires, including non-APT-installed Rubies, but we can't
* just set the shebang line to '#!/usr/bin/env ruby'. This problem is solved by
* setting the shebang line to '#!/usr/bin/passenger_default_ruby'.
*/
passenger_free_ruby 是如何工作的?
我使用phusion提供的apt包安装了phusion passenger。我的系统 ruby 是使用 brightbox apt 软件包安装的 ruby2.1。我希望 /etc/apache2/mods-enabled/passenger.conf 使用 /usr/bin/ruby 作为 PassengerDefaultRuby 的默认值。它使用 /usr/bin/passenger_free_ruby.
passenger_free_ruby 表现得像 ruby,这是预期的 ruby
/usr/bin/passenger_free_ruby -v
ruby 2.1.6p336 (2015-04-13 revision 50298) [x86_64-linux-gnu]
如果我将 ruby 升级到 ruby2.2,那么 passenger_free_ruby 将作为 ruby2.2
运行/usr/bin/passenger_free_ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]
那么 passenger_free_ruby 到底做了什么?免费是什么意思?为什么不直接使用 /usr/bin/ruby 作为默认值 ruby?
其存在的原因记录在the executable's source code。
/*
* This is a simple program for executing either the 'ruby' command in PATH,
* or one of the Ruby versions installable by APT. This is necessary because
* Debian 6 and Debian 8 (among others) do not install /usr/bin/ruby upon
* installing one of the versioned Ruby packages (e.g. apt-get install ruby2.1).
* Commands such as 'passenger' are supposed to be runnable under any Ruby
* interpreter the user desires, including non-APT-installed Rubies, but we can't
* just set the shebang line to '#!/usr/bin/env ruby'. This problem is solved by
* setting the shebang line to '#!/usr/bin/passenger_default_ruby'.
*/