198

红宝石 1.9.3

Gemfile 部分

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

当我尝试安装 gems 时,出现错误

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

并得到一个错误。

我错过了什么?

4

16 回答 16

457

有类似的问题:

通常,解决方案是:

sudo apt-get install ruby​​-dev

或者,如果这不起作用,根据您的 ruby​​ 版本,运行类似:

sudo apt-get install ruby​​1.9.1-dev

应该解决你的问题。


还是行不通?安装 ruby​​-dev 后尝试以下操作:

sudo apt-get install make

于 2012-12-07T17:13:20.137 回答
22

对于 WSL(Linux 的 Windows 子系统),您需要安装build-essential包:

sudo apt install build-essential
于 2019-04-25T18:10:01.840 回答
11

刚刚完成了 2 小时的野鹅追逐,试图解决这个问题。发布的答案都不适合我。我在 Mac 上(Mojave 版本 10.14.6,Xcode 版本 11.3)。

原来 ruby​​ 文件头丢失了,所以我不得不运行open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

起初这对我不起作用,因为我安装的 CommandLineTools 版本没有“Packages”文件夹。所以我像这样卸载并重新安装:

rm -rf /Library/Developer/CommandLineTools

xcode-select --install

然后我再次运行前面的命令:

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

安装后错误已修复!

于 2019-12-12T15:25:24.503 回答
9

我在尝试安装 jquery-rails 时遇到了同样的问题。修复是

sudo apt-get install zlibc zlib1g zlib1g-dev
于 2015-11-11T04:31:51.180 回答
7

万一将来有人遇到这个问题,我使用的是 Mac,只需要使用“xcode-select --install”安装命令行工具

于 2015-07-11T22:32:01.523 回答
5

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

$ sudo apt-get install ruby1.9.1-dev

然后尝试安装扩展

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

$ sudo apt-get install g++
于 2015-11-19T09:18:44.990 回答
5

我创建了一个小型 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

  1. 确保您已安装 xcode 组件。

  2. 直接从此链接下载“命令行工具”(约 500MB)(要求您拥有苹果帐户) https://developer.apple.com/downloads/index.action

  3. 安装下载的文件

  4. 点击安装

  5. 在终端中安装 COCOAPODS 文件 sudo gem install -n /usr/local/bin cocoapods

于 2020-09-19T05:09:56.703 回答
3
  1. 确保ruby-dev已安装
  2. 确保make已安装
  3. 如果您仍然收到错误,请查找建议的软件包。如果您尝试安装类似的东西,gem install pg您还需要安装 lib libpq-dev( sudo apt-get install libpq-dev)。
于 2015-05-29T05:21:11.693 回答
3

对于 MacOS 用户:

只需这样做,它就可以轻松解决您的问题:

brew install cocoapods
于 2021-01-22T04:01:23.087 回答
2

这对我有用。 bundle config --global build.snappy --with-opt-dir="$(brew --prefix snappy)"

于 2020-05-08T18:16:37.073 回答
1

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

于 2021-03-03T23:35:13.990 回答
1

我正在制作一个单词搜索应用程序,我必须安装 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 install cocoapods -v 1.8.4

于 2021-04-22T22:46:32.240 回答
1

What ended up working for me after a few hours of pain..

if you're running brew..

brew install ruby

in the terminal output/log, identify the path where ruby was installed, brew suggests 'You may want to add this to your PATH', so that's what we'll do. For example, mine is

/usr/local/lib/ruby/gems/3.0.0/bin

Add this to your path by running (omitting braces)

echo 'export PATH"{the_path_you_found_above}:$PATH"' >> ~/.bash_profile

然后通过运行更新您的环境

source ~/.bash_profile

现在,尝试运行您的安装,即

sudo gem install middleman
于 2021-01-22T07:09:05.090 回答
1

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

于 2015-12-10T21:45:02.310 回答
0

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

CONFIGURE_OPTS="--enable-shared" rbenv install 2.2.2
于 2016-08-19T08:24:51.570 回答
0

经过一番寻找解决方案后,事实证明需要 -dev 包,而不仅仅是 ruby​​1.8。所以如果你有 ruby​​1.9.1 做

sudo apt-get install ruby1.9.1-dev

或安装通用 ruby​​ 版本,使用(根据@lamplightdev 评论):

sudo apt-get install ruby-dev

应该修复它。

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

于 2017-08-01T10:20:49.223 回答