• #8 楼 @southwolf 的确,我目前用的 ruby 1.9.2 就是用这个方法才装上的,为此我还花了点时间研究了一些 C 编译环境,这里有一张图片,解释 GCC,LLVM 和 Clang 我认为最为清楚。

  • #5 楼 @huacnlee 的确有这个问题

    ~ $ rvm requirements
    
      Notes for Darwin ( Mac OS X )
        For Snow Leopard: Xcode Version 3.2.1 (1613) or later, such as 3.2.6 or Xcode 4.1.
        [ Please note that Xcode 3.x will *not* work on OS X Lion. The 'cross-over' is Xcode 4.1. ]
    
        You should download the Xcode tools from developer.apple.com, since the Snow Leopard dvd install contained bugs.
        You can find Xcode 4.1 for OS X Lion at:
        https://developer.apple.com/downloads/download.action?path=Developer_Tools/xcode_4.1_for_lion/xcode_4.1_for_lion.dmg
    
        ** Lion Users: Xcode Version 4.2.x for OS X Lion works only for ruby 1.9.3-p0 (or higher).
           It currently fails to build several other rubies and gems, as well as several Homebrew and
           Macports packages. Xcode Version 4.1 (4B110) works.
        ** NOTE: Currently, Node.js is having issues building with osx-gcc-installer. This is _not_ an RVM issue. This is
           because Node.js depends on the Carbon headers. ox-gcc-installer does not install these to the system.
           This issue only affects users using osx-gcc-installer, and not Xcode. The only fix is to install Xcode over osx-gcc-installer.
    
        For MacRuby: Install LLVM first.
        For JRuby:  Install the JDK. See http://developer.apple.com/java/download/  # Current Java version 1.6.0_26
        For IronRuby: Install Mono >= 2.6
        For Ruby 1.9.3: Install libksba # If using Homebrew, 'brew install libksba'
    
        To use an RVM installed Ruby as default, instead of the system ruby:
          rvm install 1.8.7 # installs patch 352: closest supported version
          rvm system ; rvm gemset export system.gems ; rvm 1.8.7 ; rvm gemset import system.gems # migrate your gems
          rvm --default 1.8.7
    
  • #15 楼 @ihower 真不好意思,是不是进来看了一眼,然后让你吓了一跳呢?这里的人真是太 了... 囧 rz

  • #2 楼 @KennX 那到不必,最近我重新装过一遍 Lion,也是被这个问题折腾了好久,很可能是用 XCode 编译出来的 ruby-1.9.2-p290 的问题,目前也没有完全搞定,我已经下载好了 XCode 4.1,逼急了我就把 XCode 的版本降级回去。你可以按照这篇文章里面的方案先试试看: http://rors.org/2011/10/25/compiling-ruby-on-a-fresh-lion-install.html

  • 你倒不如完整贴出 console 里面的 log,从执行开始一直到结束。

    gem install bundler rails
    

    安装过程中会安装所有的依赖包,而有些 gem 包是带有 C 扩展的,而你遇到的可能是环境依赖问题或者是编译环境的问题,你安装的是 XCode 4.2.1 么?给出你的 gcc 版本信息

    gcc -v
    

    新版本的 XCode 4.2.1 移除了 gcc , 默认使用 llvm,这个有可能是问题的根源,为了兼容性考虑,现阶段最佳方案是安装 XCode 4.1 而不是最新版本。

  • #3 楼 @huacnlee 我喊他"平",是因为他的英文名字就叫做作 PIng 啊,我们公司还有几个同事,我们喊他们分别叫

  • 本帖子将在 Topic 首页右侧的“置顶栏目”中放置一周。

  • 这周工作任务有点紧张,可能来不及准备一个技术话题,我帮你问问,顺便推广下。

  • #1 楼 @huacnlee 在转向之前,我看了一下,是指向这个网站: http://wuit.com/

  • #4 楼 @ghosTM55 恩,你说的很对,我们陆续收到非常不错的捐赠域名,都非常好,现在通过社区保有这些域名,将来可以作为 ruby-china.org 的子项目,或者用于 SEO 等,在我看来,能收到这些非常好的域名并由社区统一保有,本身就是一种团结在一起做事情的态度,呵呵。

  • 专业对口生 at 2011年11月22日

    我还真没有办法举出一个反例,能够证明还有人比你的专业更对口啊。。。。

  • Hello, world! at 2011年11月22日

    哈哈,欢迎!

  • 要 wiki 权限的人,都在这里跟帖吧,我打算计划每天固定十几分钟上来更新 wiki,持续为社区作贡献。

  • #4 楼 @huacnlee 在官方提供的 init.sh 脚步中,是这样判断的:

    upgrade)
        if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
        then
            n=$TIMEOUT
            while test -s $old_pid && test $n -ge 0
            do
                printf '.' && sleep 1 && n=$(( $n - 1 ))
            done
            echo
    
            if test $n -lt 0 && test -s $old_pid
            then
                echo >&2 "$old_pid still exists after $TIMEOUT seconds"
                exit 1
            fi
            exit 0
        fi
        echo >&2 "Couldn't upgrade, starting '$CMD' instead"
        $CMD
        ;;
    

    不过我还没有在本机测试过,我现在仍然采用手杀,晚上找个时间我试试看。

  • @huacnlee 其实这个问题在我的本机开发中我也遇到了,你的做法是对的,先用 USR2,当新的 master process 启动好了以后,需要给原有的 master process 发送一个 QUIT singal,对于这个流程官方网站解释的非常清楚: http://unicorn.bogomips.org/SIGNALS.html (Procedure to replace a running unicorn executable)

    关于自动化这个流程,可以参见 Unicorn 的官方 example: https://github.com/defunkt/unicorn/blob/master/examples/init.sh

    btw: 我用

    pstree -s unicorn
    

    来查看 unicorn 的新老进程的状态

  • #2 楼 @rockliu #3 楼 @huacnlee 我有另外一个问题,比如偶的某个帖子,已经超过三十条回复了,如果楼盖得太高了,以后分页吗?

  • 社区 Logo 出来了 at 2011年11月22日

    #12 楼 @huacnlee 恩,这个看起来好多了,字体和间距在稍微调整一下就可以了。

  • 社区 Logo 出来了 at 2011年11月22日

    #8 楼 @huacnlee 我们要不要重新发起一个 Logo 征询呢? Logo 上得有 Ruby-China.org,以后我们搞活动的话,如果在背景板上放 Logo 的话,容易让人识别。

  • #1 楼 @aNdReW_Qx 我也在上海,能跟你交换一下 Gtalk 么?我希你们能有时间的话,我去拜访你们。我的 GTalk:

    lgn21st[at]gmail.com
    
  • #30 楼 @Rei 我觉得吧,用

    touch tmp/restart.txt
    

    其实也能实现优雅的重启 Unicorn 进程。不过我在想的是服务器上跑的不仅仅只有 Rails server,还有数据库,redis,以及 resque 等等后台进程,跑一个 monitor 来监控这些所有的后台 Services,并自动完成 deploy 后重启。

    Passenger 和 Thin 以及 Unicorn 背后的 Philosophy 和 Architecture 不同,就单机 VPS,小网站而言,Passenger 没有什么不好,不过我更认可 Unicorn 用 Unix Domain Socket 来完成进程间通讯,Loading balance 基于 OS 内核调度来实现,fork 一个 worker processor 出奇的快,配合 god 或者 monit 监控并发送 singal 来管理/切换服务器进程非常平顺,然后一切都尽在 Capistrano 掌控之下。

  • #2 楼 @huacnlee 打算将来正文支持 Markdown 嘛?

  • @huacnlee 我觉得正文的 markdown 格式支持好像有 bug,比如 图灵社区 应该直接显示为文字连接,连续三个 "***" 符号


    应该是一个 HR Tag,以上文字信息我在 Mou 中测试通过。

  • #11 楼 @huacnlee 也是,我们目前的数据规模和主机资源空间看来足够我们自己跑 MongoDB。那就迁移出来吧。给这么多关注 ruby-china.org 网站的老手新手们造成不便,真太不好意思了。

  • #7 楼 @KennX 关于服务器部署,Ruby-china.org 就是一个 Nginx + Unicorn 的例子,如果你想要更加直观的了解这个方面的细节,我推荐 Railscasts.com 上的一个 Pro 的视频教程,非常好,推荐付费订阅 http://railscasts.com/episodes/293-nginx-unicorn

  • #1 楼 @Los 的确,近期两次比较长时间宕机,对于一个收费的服务来说是相当麻烦的事情,盛大方面一再向我们表示歉意,我们继续使用并观察一段时间吧。毕竟比自行管理 MongoDB,使用云服务要节约不少的时间精力。

  • #5 楼 @huacnlee 赞美,现在看起来好太多了!

  • 新的 Dropdown 按钮看起来相当不错,不过我个人的经验是,如果使用了 Bootstrap,只使用默认 style 或者小范围修改非常方便,如果需要基于 Bootstrap 实现一套完全不一样的 Style,就不那么方便了。

  • 恭喜,第一篇招聘帖,这里的 Rubyist 都非常靠谱,相信会有越来越多的人看到招聘信息。 @huacnlee 我感觉我们在处理换行的时候有些问题,你看同样一篇帖子,在 v2ex 的排版就比较正常:http://www.v2ex.com/t/21741

  • 可以有测试区吗 at 2011年11月19日

    恭喜你,你的测试通过了 :-)

  • 关于今晚宕机几小时 at 2011年11月16日

    同意继续使用盛大云得 MongoIC 服务,盛大云背后有上百人得运维团队,相信他们后面得服务会越做越好。