Ruby 1.9.3

Gemfile的部分

#...............
gem "pony"
gem "bcrypt-ruby", :require => "bcrypt"
gem "nokogiri" 
#..................

当我试图安装宝石时,我得到一个错误

alex@ubuntu:~/$ bundle
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Enter your password to install the bundled RubyGems to your system: 
#####............................................................
Installing bcrypt-ruby (3.0.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


Gem files will remain installed in /home/alex/.bundler/tmp/5526/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /home/alex/.bundler/tmp/5526/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out
An error occurred while installing bcrypt-ruby (3.0.1), and Bundler cannot continue.
Make sure that `gem install bcrypt-ruby -v '3.0.1'` succeeds before bundling.

然后我做这个

sudo gem install bcrypt-ruby -v '3.0.1'
Building native extensions.  This could take a while...
ERROR:  Error installing bcrypt-ruby:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out

也会得到一个错误。

我错过了什么?


当前回答

在Mac中,这对我来说是有效的:

CONFIGURE_OPTS="--enable-shared" rbenv install 2.2.2

其他回答

我正在做一个单词搜索应用程序,我必须安装cocoapods,在格式化我的mac并重新安装xcode后,当我想安装cocoapods时,我仍然得到了错误。

解决方法如下:

看起来CocoaPods 1.9.0(撰写本文时的最新版本)依赖于比2.3.7更新的Ruby版本。但是macOS Mojave只包含Ruby 2.3.7,所以你有几个不同的选择。

    Upgrade to macOS Catalina and get Ruby 2.6.3
    Use Ruby Version Manager to install a newer version of Ruby
    Install an older version of CocoaPods
    sudo gem install cocoapods -v 1.8.4

我做了3个:

Sudo gem安装cocoapods

对于WSL (Windows Subsystem For Linux),您需要安装build-essential包:

sudo apt install build-essential

首先在终端上设置Xcode版本:

sudo xcode-select -switch /Applications/Xcode.app

然后安装:

sudo gem install cocoapods

以防将来有人遇到这个问题,我使用的是Mac,必须使用“xcode-select——install”安装命令行工具。

如果你是mac用户,你必须更新正在使用的clang版本 我花了几个小时搜索这个,并安装了已卸载的xcode命令行工具,但它没有帮助。 我运行gcc -v和Apple clang版本11.0.0 (clang-1100.0.33.8是输出。 然后我运行xcode-select -s /Library/Developer/CommandLineTools/, clang版本更新为Apple clang版本12.0.0 (clang-1200.0.32.29)。 Bundle安装之后就成功了。 我希望这能有所帮助。