【问题标题】:Why do I get a bcrypt-ruby gem install error?为什么我会收到 bcrypt-ruby gem 安装错误?
【发布时间】:2011-09-01 10:14:48
【问题描述】:

尝试安装 gem 设计时出错,安装正在停止 gem bcrypt-ruby:

$ gem install bcrypt-ruby
Error installing bcrypt-ruby:
ERROR: Failed to build gem native extension.

我在 RVM 下运行带有 Ruby 的 OSX 10.6.7。 我重新安装了最新版本的 xcode 并重新安装了 Ruby 64 位、Rails 和所有的 gem。

【问题讨论】:

    标签: ruby-on-rails ruby rubygems devise bcrypt


    【解决方案1】:

    嗯,它适用于 MacOS 10.6.7 上 RVM 下的 Ruby 1.9.2:

    $ ruby -v
    ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.6.0]
    
    $ gem install bcrypt-ruby
    Fetching: bcrypt-ruby-2.1.4.gem (100%)
    Building native extensions.  This could take a while...
    Successfully installed bcrypt-ruby-2.1.4
    1 gem installed
    Installing ri documentation for bcrypt-ruby-2.1.4...
    Installing RDoc documentation for bcrypt-ruby-2.1.4...
    

    试试rvm notes,看看它是否说你需要安装任何东西。

    【讨论】:

      【解决方案2】:

      如果您使用的是 1.8 版,则 bcrypt 所需的软件包位于开发包中。尝试使用

      $sudo apt-get install ruby1.8-dev
      

      然后

      $gem install bcrypt-ruby 
      

      【讨论】:

        【解决方案3】:

        我正在使用 RVM,并且在安装带有本机扩展(bcrypt-ruby、bson-ext、json、eventmachine、nokogiri、linecache19 等)的 gem 时,我一直遇到这个问题

        Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        我最终能让事情正常运行的唯一方法是卸载然后重新安装 ruby​​。

        rvm remove 1.9.2

        rvm install 1.9.2

        感谢@doublebee 的提示: https://github.com/flori/json/issues/78#issuecomment-1499920

        【讨论】:

          【解决方案4】:

          我在 OSX 10.7.3 下安装时遇到了同样的问题。安装 gem 时,我的错误消息是:

          Building native extensions.  This could take a while...
          ERROR:  Error installing bcrypt-ruby:
          ERROR: Failed to build gem native extension.
          
          creating Makefile
          
          make
          compiling bcrypt_ext.c
          make: /usr/bin/gcc-4.2: No such file or directory
          make: *** [bcrypt_ext.o] Error 1
          

          看起来 gem 正在寻找 gcc-4.2,但我只有一个名为 gcc 的文件。现在,由于我刚刚安装了最新的 Xcode (4.3),我知道我的 C 编译器是兼容的,但是 gem 已经硬编码了 gcc-4.2。所以我的解决方案是:

          sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
          

          链接就像一个魅力。

          【讨论】:

            【解决方案5】:

            在安装 bcrypt-ruby 之前需要安装 ruby​​-dev。 如果您使用的是 Ubuntu,请运行

            sudo apt-get install ruby1.9.1-dev
            

            sudo apt-get install ruby1.8-dev
            

            基于 RUby 版本。

            【讨论】:

              【解决方案6】:

              看起来这里可能缺少一些信息 - 对我来说,这是由于 brew 安装了 gcc。 gcc 在 /usr/bin 中,但不在 gcc-4.2 中。所以我只是做了以下事情:

              $ cd /usr/bin
              $ sudo ln -s gcc gcc-4.2
              

              它创建了一个链接,gcc-4.2,gem 正在寻找该链接,该链接返回到 gcc

              希望对您有所帮助。

              【讨论】:

                【解决方案7】:

                你只需要使用 rvm (ruby 版本管理器)

                rvm uninstall 1.9.3
                

                然后

                rvm install 1.9.3
                

                看起来这个错误出现在 rvm 1.9.3 的构建上,但卸载并重新安装修复了 bcrypt-ruby 3.0.1 的问题

                【讨论】:

                  【解决方案8】:

                  这个修复适用于我在 osx 上的 ubuntu 上使用自制软件,macports 什么的:

                  sudo apt-get install ruby1.9.1-dev
                  

                  【讨论】:

                    【解决方案9】:

                    sudo apt-get install ruby​​1.9.1-dev

                    我的魅力!非常感谢

                    【讨论】:

                      【解决方案10】:

                      我认为您需要重新安装 bundler gem。

                      gem install bundler 然后 bundle install

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2021-09-04
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2015-04-30
                        • 2014-01-10
                        相关资源
                        最近更新 更多