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

也会得到一个错误。

我错过了什么?


当前回答

我创建了一个小hackMD来在MacOS 10.15 (Catalina)和11 (Big Sur)上安装cocoapods

https://hackmd.io/@sBJPlhRESGqCKCqV8ZjP1A/S1UY3W7HP

在 MacOS Catalina (MacOS 10.15.X) 和 Big Sur (MacOS 11) 上安装 Cocoapods

确保你安装了xcode组件。 直接从这个链接下载“命令行工具”(约500MB)(需要你有苹果账号) https://developer.apple.com/downloads/index.action 安装下载的文件 点击安装 在终端安装COCOAPODS文件 Sudo gem install -n /usr/local/bin cocoapods . sh

其他回答

我发现我需要安装另一个版本的ruby。所以运行命令

$ sudo apt-get install ruby1.9.1-dev

然后尝试安装扩展

如果您遇到问题,它告诉您没有g++,您可以运行以下命令来安装它

$ sudo apt-get install g++

它还有助于确保libmysqlclient-dev已安装(Ubuntu 14.04)

在寻找了一些解决方案后,发现-dev包是需要的,而不仅仅是ruby1.8。如果你有ruby1.9.1

sudo apt-get install ruby1.9.1-dev

或者安装通用ruby版本,使用(根据@lamplightdev comment):

sudo apt-get install ruby-dev

应该把它修好。

尝试定位mkmf以查看该文件是否确实存在。

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

sudo apt install build-essential

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