<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>djeffray (Jeffray Ding)</title>
    <link>https://ruby-china.org/djeffray</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>CentOS 7 配置 Rails 环境记录</title>
      <description>&lt;p&gt;#CentOS 7 配置 Rails 环境记录&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. 下载 ISO&lt;/strong&gt;
 选择从&lt;a href="http://mirrors.163.com/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso" rel="nofollow" target="_blank" title=""&gt;网易镜像&lt;/a&gt;下载 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. 安装 CentOS 7&lt;/strong&gt;
&lt;strong&gt;本记录基于 Mac OS X 10.9.4 + Parallels Desktop Build 9.0.23140 完成&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;####2.0 安装
具体过程略。&lt;/p&gt;

&lt;p&gt;####2.1 配置网络
说明：CentOS 7.0 默认安装好之后是没有自动开启网络连接的！&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /etc/sysconfig/network-scripts
vi ifcfg-eth0

&lt;span class="nv"&gt;TYPE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Ethernet
&lt;span class="nv"&gt;BOOTPROTO&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;static  &lt;span class="c"&gt;#启用静态IP地址&lt;/span&gt;
&lt;span class="nv"&gt;DEFROUTE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;yes
&lt;/span&gt;&lt;span class="nv"&gt;PEERDNS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;yes
&lt;/span&gt;&lt;span class="nv"&gt;PEERROUTES&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;yes
&lt;/span&gt;&lt;span class="nv"&gt;IPV4_FAILURE_FATAL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;no
&lt;span class="nv"&gt;IPV6INIT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;yes
&lt;/span&gt;&lt;span class="nv"&gt;IPV6_AUTOCONF&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;yes
&lt;/span&gt;&lt;span class="nv"&gt;IPV6_DEFROUTE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;yes
&lt;/span&gt;&lt;span class="nv"&gt;IPV6_PEERDNS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;yes
&lt;/span&gt;&lt;span class="nv"&gt;IPV6_PEERROUTES&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;yes
&lt;/span&gt;&lt;span class="nv"&gt;IPV6_FAILURE_FATAL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;no
&lt;span class="nv"&gt;NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;eno16777736
&lt;span class="nv"&gt;UUID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ae0965e7-22b9-45aa-8ec9-3f0a20a85d11
&lt;span class="nv"&gt;ONBOOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;yes&lt;/span&gt;  &lt;span class="c"&gt;#开启自动启用网络连接&lt;/span&gt;
&lt;span class="nv"&gt;IPADDR0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;192.168.21.128  &lt;span class="c"&gt;#设置IP地址&lt;/span&gt;
&lt;span class="nv"&gt;PREFIXO0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;24  &lt;span class="c"&gt;#设置子网掩码&lt;/span&gt;
&lt;span class="nv"&gt;GATEWAY0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;192.168.21.2  &lt;span class="c"&gt;#设置网关&lt;/span&gt;
&lt;span class="nv"&gt;DNS1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;8.8.8.8  &lt;span class="c"&gt;#设置主DNS&lt;/span&gt;
&lt;span class="nv"&gt;DNS2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;8.8.4.4  &lt;span class="c"&gt;#设置备DNS&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;保存退出&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;systemctl restart network ##Cent OS 7新用法
#service network restart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;测试
 &lt;code&gt;ping 192.168.21.2&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;####2.3 设置主机名&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;hostname  &lt;/span&gt;www  &lt;span class="c"&gt;#设置主机名为www&lt;/span&gt;
vi /etc/hostname &lt;span class="c"&gt;#编辑配置文件&lt;/span&gt;
www   &lt;span class="c"&gt;#修改localhost.localdomain为www&lt;/span&gt;
:wq!  &lt;span class="c"&gt;#保存退出&lt;/span&gt;
vi /etc/hosts &lt;span class="c"&gt;#编辑配置文件&lt;/span&gt;
127.0.0.1   localhost  www   &lt;span class="c"&gt;#修改localhost.localdomain为www&lt;/span&gt;
:wq!  &lt;span class="c"&gt;#保存退出&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;####2.4 更新系统
首先备份/etc/yum.repos.d/CentOS-Base.repo&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo curl -O http://mirrors.163.com/.help/CentOS6-Base-163.repo
yum clean all  ##运行以生成缓存
yum makecache

yum update

yum info updates ##查看系统更新的版本
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;*&lt;em&gt;3. 安装 Ruby 和 Rails   *&lt;/em&gt;&lt;br&gt;
####3.1 安装 Ruby
本节内容参考 Ruby-China Wiki 和 Ruby.taobao.org
#####3.1.1 rvm 安装
因 yum 系统所带的 Ruby 版本为 2.0，故采用 RVM 安装，也便于今后更新&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;curl &lt;span class="nt"&gt;-L&lt;/span&gt; get.rvm.io | bash &lt;span class="nt"&gt;-s&lt;/span&gt; stable
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bash_profile
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;######3.1.2 修改 RVM 的 Ruby 安装源到国内的 淘宝镜像服务器，这样能提高安装速度&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sed -i -e 's/ftp\.ruby-lang\.org\/pub\/ruby/ruby\.taobao\.org\/mirrors\/ruby/g' ~/.rvm/config/db&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;####3.2 安装 Rails&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;sources&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;remove&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rubygems&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;org&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;sources&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;taobao&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;org&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;sources&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;
&lt;span class="o"&gt;***&lt;/span&gt; &lt;span class="no"&gt;CURRENT&lt;/span&gt; &lt;span class="no"&gt;SOURCES&lt;/span&gt; &lt;span class="o"&gt;***&lt;/span&gt;

&lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;taobao&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;org&lt;/span&gt;
&lt;span class="c1"&gt;# 请确保只有 ruby.taobao.org&lt;/span&gt;

&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;rails&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;####3.3 生成测试项目&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;rails&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;demo&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;/&lt;/span&gt;&lt;span class="n"&gt;demo&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;vi&lt;/span&gt; &lt;span class="no"&gt;Gemfile&lt;/span&gt; &lt;span class="n"&gt;修改第一行为https&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;taobao&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;org&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;bundle&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;rails&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;Ip&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;注：此时其他机器无法访问，需进行下一步设置&lt;/p&gt;

&lt;p&gt;####3.4 添加 Firewalld 规则
从 CentOS 7 起，默认防火墙为 Firewalld，具体参见&lt;a href="https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html" rel="nofollow" target="_blank" title=""&gt;Red Hat Enterprise 7&lt;/a&gt;手册&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;systemctl status firewalld
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;firewall-cmd &lt;span class="nt"&gt;--state&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;firewall-cmd &lt;span class="nt"&gt;--zone&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;public &lt;span class="nt"&gt;--add-interface&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;em1
&lt;span class="nb"&gt;sudo &lt;/span&gt;firewall-cmd &lt;span class="nt"&gt;--zone&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;public &lt;span class="nt"&gt;--add-forward-port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3000:proto&lt;span class="o"&gt;=&lt;/span&gt;tcp:toport&lt;span class="o"&gt;=&lt;/span&gt;3000
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时外机可以访问&lt;/p&gt;</description>
      <author>djeffray</author>
      <pubDate>Mon, 25 Aug 2014 20:04:30 +0800</pubDate>
      <link>https://ruby-china.org/topics/21216</link>
      <guid>https://ruby-china.org/topics/21216</guid>
    </item>
    <item>
      <title>请教 Ruby 2.1.0 升级问题</title>
      <description>&lt;p&gt;各位大大们，升级 2.1.0 没成功，请帮忙指点。
通过&lt;code&gt;rbenv install -k -v 2.1.0&lt;/code&gt;安装后，&lt;code&gt;rbenv version&lt;/code&gt;显示当前版本是 2.1.0，但在终端里却仍显示为 2.0.0，何故？？&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rbenv version&lt;/code&gt;结果：
&lt;img src="//l.ruby-china.com/photo/2013/f98f6bf0a3c65b8e7835b032da199cb5.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ruby -v&lt;/code&gt;结果：
&lt;img src="//l.ruby-china.com/photo/2013/53a9e59221fc3c8037135c89af173cbe.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>djeffray</author>
      <pubDate>Mon, 30 Dec 2013 23:20:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/16528</link>
      <guid>https://ruby-china.org/topics/16528</guid>
    </item>
    <item>
      <title>Rails 4 下运行老项目 attr_accessible 错误解决方法</title>
      <description>&lt;p&gt;随着 Ruby 2.0 和 Rails 4.0.0 beta1 的相继发布，许多 Rails 迷都会去尝试，Rails 3、4 之间存有一定差异。对于在 Rails 3 下运行正常的项目，切换到 Rails4 下运行时会出现一些小小的问题。
目前已经遇到的问题，运行时提示：`&lt;code&gt;attr_accessible` is extracted out of Rails into a gem. Please use new recommended protection model for params(strong_parameters) or add `protected_attributes` to your Gemfile to use old one.&lt;/code&gt;
&lt;strong&gt;偷懒的解决是&lt;/strong&gt;：1、在 Gemfile 中加入&lt;code&gt;gem 'protected_attributes'&lt;/code&gt;
2、重新&lt;code&gt;bundle install&lt;/code&gt;&lt;/p&gt;</description>
      <author>djeffray</author>
      <pubDate>Fri, 01 Mar 2013 23:34:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/9061</link>
      <guid>https://ruby-china.org/topics/9061</guid>
    </item>
  </channel>
</rss>
