<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>xlian (charlene)</title>
    <link>https://ruby-china.org/xlian</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>[求助] ActionCable Finished 之后不再 Start，是怎么回事</title>
      <description>&lt;p&gt;使用 Passenger + Nginx&lt;/p&gt;

&lt;p&gt;发现运行一段时间后，查看日志发现 ActionCable Finished 之后不再 Start&lt;/p&gt;

&lt;p&gt;运行 rvmsudo passenger-status, 打印结果部分如下：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Requests &lt;span class="k"&gt;in &lt;/span&gt;queue: 0
 &lt;span class="k"&gt;*&lt;/span&gt; PID: 19277   Sessions: 8       Processed: 111     Uptime: 8d 19h 45m 48s
   CPU: 0%      Memory  : 54M     Last used: 1h 3
 &lt;span class="k"&gt;*&lt;/span&gt; PID: 19288   Sessions: 8       Processed: 218     Uptime: 8d 19h 45m 48s
   CPU: 0%      Memory  : 51M     Last used: 28m 
 &lt;span class="k"&gt;*&lt;/span&gt; PID: 19300   Sessions: 8       Processed: 115     Uptime: 8d 19h 45m 48s
   CPU: 0%      Memory  : 50M     Last used: 59m 
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>xlian</author>
      <pubDate>Fri, 04 May 2018 14:45:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/36681</link>
      <guid>https://ruby-china.org/topics/36681</guid>
    </item>
    <item>
      <title>select2 计算 width 后，不会再改变的 bug，可以试下这个解决方案</title>
      <description>&lt;p&gt;在 select 元素上是有 select2 插件，select2 会根据当前窗口大小计算 width，且只计算这一次，后面不会随着窗口变化而变化&lt;/p&gt;

&lt;p&gt;如果父元素的宽度是自适应的，子元素 select 宽度又没有变化，就会可能引起子元素被部分覆盖的尴尬&lt;/p&gt;

&lt;p&gt;其实，只要设置 select 元素的 width 为 100%，select2 插件的这个 bug 就不会影响自适应了 &lt;img title=":grin:" alt="😁" src="https://twemoji.ruby-china.com/2/svg/1f601.svg" class="twemoji"&gt; &lt;/p&gt;</description>
      <author>xlian</author>
      <pubDate>Wed, 11 Apr 2018 14:49:08 +0800</pubDate>
      <link>https://ruby-china.org/topics/35429</link>
      <guid>https://ruby-china.org/topics/35429</guid>
    </item>
    <item>
      <title>离线安装 Ruby</title>
      <description>&lt;h2 id="第一种方法：先下载好 Ruby 对应版本的 binaries，然后放到 rvm 的 archives文件夹下，再使用 rvm install [Ruby 版本号]"&gt;第一种方法：先下载好 Ruby 对应版本的 binaries，然后放到 rvm 的 archives 文件夹下，再使用 rvm install [Ruby 版本号]&lt;/h2&gt;
&lt;p&gt;可以下载 binaries 的地址链接：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://rvm.io/binaries/" rel="nofollow" target="_blank"&gt;https://rvm.io/binaries/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;rvm 的 archives 文件夹目录一般是 &lt;code&gt;~/.rvm/archives&lt;/code&gt; 或者 &lt;code&gt;/usr/local/rvm/archives&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;下载下来的 binaries 文件名比如说 &lt;code&gt;ruby-2.5.0.tar.bz2&lt;/code&gt;，需要改成 &lt;code&gt;bin-ruby-2.5.0.tar.bz2&lt;/code&gt; 后再放到 archives 目录下&lt;/p&gt;

&lt;p&gt;最后，就可以直接使用 &lt;code&gt;rvm install [ruby版本号]&lt;/code&gt; 离线安装 ruby 啦~~~&lt;/p&gt;

&lt;p&gt;正常在线使用 rvm install, 会优先寻找 ruby  binaries，因为这个安装速度会快很多。当然，也可以使用源码编译安装。&lt;/p&gt;

&lt;hr&gt;
&lt;h2 id="第二种方法：下载 source code，还是放到 rvm 的 archives文件夹下，再使用 rvm install [Ruby 版本号]"&gt;第二种方法：下载 source code，还是放到 rvm 的 archives 文件夹下，再使用 rvm install [Ruby 版本号]&lt;/h2&gt;
&lt;p&gt;可以下载 source code 的地址链接：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://cache.ruby-china.org/pub/ruby/" rel="nofollow" target="_blank"&gt;https://cache.ruby-china.org/pub/ruby/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ftp.ruby-lang.org/pub/ruby/" rel="nofollow" target="_blank"&gt;https://ftp.ruby-lang.org/pub/ruby/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cache.ruby-lang.org/pub/ruby/" rel="nofollow" target="_blank"&gt;https://cache.ruby-lang.org/pub/ruby/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;注意：请下载以 .tar.bz2 为后缀的文件&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;最后，运行命令 &lt;code&gt;rvm install ruby-x.x.x[ruby版本号] --disable-binaries --verify-downloads 2&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;运行过程中，会出现错误
&lt;img src="https://l.ruby-china.com/photo/2018/d3b43c39-b9ac-4b10-bcc7-367b4123affe.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;其实这时候是已经安装好 ruby 的了，运行 &lt;code&gt;gem -v&lt;/code&gt; 也能正确显示所安装 ruby 版本携带的 gem 版本号。&lt;/p&gt;

&lt;p&gt;如果介意且想安装其他版本 rubygems 的话，可以预先下载比如 &lt;code&gt;rubygems-2.7.6.tgz&lt;/code&gt;，然后放到 rvm 的 archive 目录下（即和 ruby 源码放置的路径一样，且必须以&lt;code&gt;.tgz&lt;/code&gt;为后缀）。这时候再运行命令 &lt;code&gt;rvm install ruby-x.x.x[ruby版本号] --disable-binaries --verify-downloads 2 --rubygems 2.7.6&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;或者干脆运行 &lt;code&gt;rvm install ruby-x.x.x[ruby版本号] --disable-binaries --verify-downloads 2 --rubygems ignore&lt;/code&gt;, 这样也可以避免出现错误。&lt;/p&gt;

&lt;hr&gt;
&lt;h2 id="第三种方法：下载 source code，编译好后使用 rvm mount 命令把 ruby 置于 rvm 的管理下"&gt;第三种方法：下载 source code，编译好后使用 rvm mount 命令把 ruby 置于 rvm 的管理下&lt;/h2&gt;
&lt;p&gt;进入解压后的源文件目录，运行以下命令：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ ./configure
$ make
$ sudo make install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认情况下，命令运行后会把 ruby 安装到 &lt;code&gt;/usr/local&lt;/code&gt;，可以在 &lt;code&gt;./configure&lt;/code&gt; 后加上参数 &lt;code&gt;--prefix=DIR&lt;/code&gt;，&lt;code&gt;DIR&lt;/code&gt;是你希望 ruby 安装的路径。&lt;/p&gt;

&lt;p&gt;最后，&lt;code&gt;rvm mount /path/to/your/ruby安装的位置 -n [ruby版本号]&lt;/code&gt;&lt;/p&gt;

&lt;hr&gt;
&lt;h3 id="最后的最后，比较推荐第一、二种方法。因为第三种方法最后 rvm list 会出现两个类似的 ruby 版本，一个以 ext- 开头，一个正常。"&gt;最后的最后，比较推荐第一、二种方法。因为第三种方法最后 rvm list 会出现两个类似的 ruby 版本，一个以 &lt;code&gt;ext-&lt;/code&gt; 开头，一个正常。&lt;/h3&gt;
&lt;p&gt;比如：
&lt;img src="https://l.ruby-china.com/photo/2018/687ed6f6-cc19-4e46-96d4-71dcd5f9b7d2.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;只有 ext-ruby-2.4.3 可用！&lt;/p&gt;</description>
      <author>xlian</author>
      <pubDate>Thu, 08 Mar 2018 11:23:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/35193</link>
      <guid>https://ruby-china.org/topics/35193</guid>
    </item>
  </channel>
</rss>
