<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>по стопам webkill&#039;а &#187; bundler</title>
	<atom:link href="http://blog.lukmus.ru/tag/bundler/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lukmus.ru</link>
	<description>это наш химический дом для печальных жителей Земли</description>
	<lastBuildDate>Sat, 21 Oct 2023 19:10:13 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Apache + RVM Ruby 1.9.2 + Passenger = no such file to load &#8212; bundler</title>
		<link>http://blog.lukmus.ru/2011/06/29/apache-rvm-ruby-1-9-2-passenger-no-such-file-to-load-bundler/</link>
		<comments>http://blog.lukmus.ru/2011/06/29/apache-rvm-ruby-1-9-2-passenger-no-such-file-to-load-bundler/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 11:05:04 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[ruby & ruby on rails]]></category>
		<category><![CDATA[настройка и установка]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[ruby on rails 3]]></category>
		<category><![CDATA[RVM]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=1019</guid>
		<description><![CDATA[Довольно популярная ошибка, которая имеет вагон всяких решений в интернете, но при этом ни одно из них до конца не работает. Типичной средой ее обитания является Ruby, установленный через RVM (установлена под рутом =&#62; для всех), на который установлен Ruby on Rails 3 и все это дело запущено под Apache&#8217;м через Passenger. Т.е. когда приложение [...]]]></description>
			<content:encoded><![CDATA[<p>Довольно популярная ошибка, которая имеет вагон всяких решений в интернете, но при этом ни одно из них до конца не работает. Типичной средой ее обитания является Ruby, установленный через RVM (установлена под рутом =&gt; для всех), на который установлен Ruby on Rails 3 и все это дело запущено под Apache&#8217;м через Passenger. Т.е. когда приложение уже вот-вот должно запуститься и апачевская TestPage уже не светит появляется она.<br />
<a href="http://blog.lukmus.ru/wp-content/uploads/2011/06/bundler.png"><img class="aligncenter size-full wp-image-1020" title="bundler" src="http://blog.lukmus.ru/wp-content/uploads/2011/06/bundler.png" alt="" width="517" height="336" /></a><span id="more-1019"></span><br />
Разумеется ошибка возникает тогда, когда сам гем bundler прекрасно установлен и при запуске рельсов под webrick&#8217;ом все прекрасно работает:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ gem list <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> bundler
bundler <span style="color: #7a0874; font-weight: bold;">&#40;</span>1.0.15<span style="color: #7a0874; font-weight: bold;">&#41;</span>
$ rails s
=<span style="color: #000000; font-weight: bold;">&gt;</span> Booting WEBrick
=<span style="color: #000000; font-weight: bold;">&gt;</span> Rails 3.0.7 application starting <span style="color: #000000; font-weight: bold;">in</span> development on
http:<span style="color: #000000; font-weight: bold;">//</span>0.0.0.0:<span style="color: #000000;">3000</span>
=<span style="color: #000000; font-weight: bold;">&gt;</span> Call with <span style="color: #660033;">-d</span> to detach
=<span style="color: #000000; font-weight: bold;">&gt;</span> Ctrl-C to shutdown server
<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">2011</span>-06-<span style="color: #000000;">29</span> <span style="color: #000000;">13</span>:<span style="color: #000000;">14</span>:<span style="color: #000000;">21</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> INFO  WEBrick 1.3.1
<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">2011</span>-06-<span style="color: #000000;">29</span> <span style="color: #000000;">13</span>:<span style="color: #000000;">14</span>:<span style="color: #000000;">21</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> INFO  ruby 1.9.2 <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2011</span>-02-<span style="color: #000000;">18</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>x86_64-linux<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">2011</span>-06-<span style="color: #000000;">29</span> <span style="color: #000000;">13</span>:<span style="color: #000000;">14</span>:<span style="color: #000000;">21</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> INFO  WEBrick::HTTPServer<span style="color: #666666; font-style: italic;">#start:</span>
<span style="color: #007800;">pid</span>=<span style="color: #000000;">4240</span> <span style="color: #007800;">port</span>=<span style="color: #000000;">3000</span></pre></td></tr></table></div>

<p>Многие статьи в интернете при первых симптомах оной рекомендуют верно настроить путь Ruby в конфигурации апача, например:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">PassengerRoot <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>rvm<span style="color: #000000; font-weight: bold;">/</span>gems<span style="color: #000000; font-weight: bold;">/</span>ruby-1.9.2-p180<span style="color: #000000; font-weight: bold;">/</span>
gems<span style="color: #000000; font-weight: bold;">/</span>passenger-3.0.7
PassengerRuby <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>rvm<span style="color: #000000; font-weight: bold;">/</span>rubies<span style="color: #000000; font-weight: bold;">/</span>ruby-1.9.2-p180<span style="color: #000000; font-weight: bold;">/</span>
bin<span style="color: #000000; font-weight: bold;">/</span>ruby</pre></td></tr></table></div>

<p>Потому как они предполагают, что среда в которой запускается рельсы под апачем не подозревает о существовании bundler&#8217;а. И здесь есть рациональное зерно и даже возможно удастся подобрать такой путь к руби.</p>
<p>Как можно заметить ошибка возникает тут:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>local<span style="color: #339933;">/</span>rvm<span style="color: #339933;">/</span>rubies<span style="color: #339933;">/</span>ruby<span style="color: #339933;">-</span>1<span style="color: #339933;">.</span>9<span style="color: #339933;">.</span>2<span style="color: #339933;">-</span>p180<span style="color: #339933;">/</span>lib<span style="color: #339933;">/</span>ruby<span style="color: #339933;">/</span>site_ruby<span style="color: #339933;">/</span>1<span style="color: #339933;">.</span>9<span style="color: #339933;">.</span>1<span style="color: #339933;">/</span>
rubygems<span style="color: #339933;">/</span>custom_require<span style="color: #339933;">.</span>rb</pre></td></tr></table></div>

<p>Именно это скрипт ругается, а значит именно его мы и будем исправлять.</p>
<h2>правильная среда</h2>
<p>Прежде всего нужно найти ту правильную среду, а точнее те значения переменных окружения при которых все работает. Для этого надо с теми настройками RVM, под которыми корректно запускаются рельсы выполнить команду RVM <code>info</code>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ rvm info
&nbsp;
  ruby-1.9.2-p180:
    bla-bla-bla...
&nbsp;
  rvm:
    bla-bla-bla...
&nbsp;
  ruby:
    bla-bla-bla...
&nbsp;
  homes:
    bla-bla-bla...
&nbsp;
  binaries:
    ruby:         <span style="color: #ff0000;">&quot;/usr/local/rvm/rubies/ruby-1.9.2-p180
/bin/ruby&quot;</span>
    irb:          <span style="color: #ff0000;">&quot;/usr/local/rvm/rubies/ruby-1.9.2-p180
/bin/irb&quot;</span>
    gem:          <span style="color: #ff0000;">&quot;/usr/local/rvm/rubies/ruby-1.9.2-p180
/bin/gem&quot;</span>
    rake:         <span style="color: #ff0000;">&quot;/usr/local/rvm/gems/ruby-1.9.2-p180
/bin/rake&quot;</span>
&nbsp;
  environment:
    PATH:         <span style="color: #ff0000;">&quot;/usr/local/rvm/gems/ruby-1.9.2-p180
/bin:/usr/local/rvm/gems/ruby-1.9.2-p180@global/bin:
/usr/local/rvm/rubies/ruby-1.9.2-p180/bin:/usr/local
/rvm/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr
/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr
/bin:/root/bin&quot;</span>
    GEM_HOME:     <span style="color: #ff0000;">&quot;/usr/local/rvm/gems/ruby-1.9.2-p180&quot;</span>
    GEM_PATH:     <span style="color: #ff0000;">&quot;/usr/local/rvm/gems/ruby-1.9.2-p180:
/usr/local/rvm/gems/ruby-1.9.2-p180@global&quot;</span>
    MY_RUBY_HOME: <span style="color: #ff0000;">&quot;/usr/local/rvm/rubies/ruby-1.9.2-p180&quot;</span>
    IRBRC:        <span style="color: #ff0000;">&quot;/usr/local/rvm/rubies/ruby-1.9.2-p180
/.irbrc&quot;</span>
    RUBYOPT:      <span style="color: #ff0000;">&quot;&quot;</span>
    gemset:       <span style="color: #ff0000;">&quot;&quot;</span></pre></td></tr></table></div>

<p>И она выдаст то что нужно:</p>
<ul>
<li>на 16-й строке верный путь до правильного интерпритатора Ruby, который нужно прописать в параметре Apache&#8217;а <code>PassengerRuby</code></li>
<li>строки 26-37 &#8211; верная настройка среды под, которой все работает</li>
</ul>
<h2>ненавистный custom_require.rb</h2>
<p>Открываем тот самый<br />
<a href="http://blog.lukmus.ru/wp-content/uploads/2011/06/bundler_error.png"><img class="aligncenter size-full wp-image-1030" title="bundler_error" src="http://blog.lukmus.ru/wp-content/uploads/2011/06/bundler_error.png" alt="" width="517" height="270" /></a></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">/</span>usr<span style="color: #339933;">/</span>local<span style="color: #339933;">/</span>rvm<span style="color: #339933;">/</span>rubies<span style="color: #339933;">/</span>ruby<span style="color: #339933;">-</span>1<span style="color: #339933;">.</span>9<span style="color: #339933;">.</span>2<span style="color: #339933;">-</span>p180<span style="color: #339933;">/</span>lib<span style="color: #339933;">/</span>ruby<span style="color: #339933;">/</span>site_ruby<span style="color: #339933;">/</span>1<span style="color: #339933;">.</span>9<span style="color: #339933;">.</span>1<span style="color: #339933;">/</span>
rubygems<span style="color: #339933;">/</span>custom_require<span style="color: #339933;">.</span>rb</pre></td></tr></table></div>

<p>Находим ту самую строку ошибки:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>45
46
47
48
49
50
51
52
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#CC0066; font-weight:bold;">require</span> path
    <span style="color:#9966CC; font-weight:bold;">if</span> Gem.<span style="color:#9900CC;">unresolved_deps</span>.<span style="color:#9900CC;">empty</span>? <span style="color:#9966CC; font-weight:bold;">or</span>
          Gem.<span style="color:#9900CC;">loaded_path</span>? path <span style="color:#9966CC; font-weight:bold;">then</span>
&nbsp;
      gem_original_require path
    <span style="color:#9966CC; font-weight:bold;">else</span>
      spec = Gem.<span style="color:#9900CC;">searcher</span>.<span style="color:#9900CC;">find_active</span> path
...</pre></td></tr></table></div>

<p>И тут, чтобы убедиться что ENV там кривое либо отсутствует напрочь, можно например запилить <del datetime="2011-06-29T08:56:40+00:00">дверь</del> вывод ENV в файл:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>45
46
47
48
49
50
51
52
53
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"> <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#CC0066; font-weight:bold;">require</span> path
    <span style="color:#9966CC; font-weight:bold;">if</span> Gem.<span style="color:#9900CC;">unresolved_deps</span>.<span style="color:#9900CC;">empty</span>? <span style="color:#9966CC; font-weight:bold;">or</span>
          Gem.<span style="color:#9900CC;">loaded_path</span>? path <span style="color:#9966CC; font-weight:bold;">then</span>
&nbsp;
      <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'/tmp/envs'</span>,<span style="color:#996600;">'a'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span> f.<span style="color:#CC0066; font-weight:bold;">puts</span> path<span style="color:#006600; font-weight:bold;">&#125;</span>
      gem_original_require path
    <span style="color:#9966CC; font-weight:bold;">else</span>
      spec = Gem.<span style="color:#9900CC;">searcher</span>.<span style="color:#9900CC;">find_active</span> path
...</pre></td></tr></table></div>

<p>Однако, нам нужно не это, а наладить запуск рельсов, поэтому вместо приколов просто прописываем в начало метода <code>def require path</code> правильные настройки переменных окружения, которые мы нашли при <code>rvm info</code>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>45
46
47
48
49
50
51
52
53
54
55
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;">  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#CC0066; font-weight:bold;">require</span> path
&nbsp;
   ENV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'PATH'</span><span style="color:#006600; font-weight:bold;">&#93;</span>=<span style="color:#996600;">&quot;/usr/local/...&quot;</span>
   ENV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'GEM_HOME'</span><span style="color:#006600; font-weight:bold;">&#93;</span>=<span style="color:#996600;">&quot;/usr/local/...&quot;</span>
   ENV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'GEM_PATH'</span><span style="color:#006600; font-weight:bold;">&#93;</span>=<span style="color:#996600;">&quot;/usr/local/...&quot;</span>
   ENV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'MY_RUBY_HOME'</span><span style="color:#006600; font-weight:bold;">&#93;</span>=<span style="color:#996600;">&quot;/usr/...&quot;</span>
   ENV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'IRBRC'</span><span style="color:#006600; font-weight:bold;">&#93;</span>=<span style="color:#996600;">&quot;/usr/local/rvm/...&quot;</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">if</span> Gem.<span style="color:#9900CC;">unresolved_deps</span>.<span style="color:#9900CC;">empty</span>? <span style="color:#9966CC; font-weight:bold;">or</span> 
       Gem.<span style="color:#9900CC;">loaded_path</span>? path <span style="color:#9966CC; font-weight:bold;">then</span>
   ...</pre></td></tr></table></div>

<p>Вот и все, после этих манипуляции мои рельсы завелись.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2011/06/29/apache-rvm-ruby-1-9-2-passenger-no-such-file-to-load-bundler/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
