当gem失败时,在哪里可以找到mkmf.log文件?


76

找不到'libpq-fe.h标头

** extconf.rb失败**

由于某些原因(可能缺少必要的库和/或标头)而无法创建Makefile。检查mkmf.log文件以获取更多详细信息。

在哪里可以找到mkmf.log文件?

Answers:


65

可以在gem的安装目录下找到mkmf.log文件。

rvm

如果使用的是RVM,则查找类似于以下目录

〜/ .rvm / gems / ruby​​-1.9.3-p194 / gems / some-cool-gem-name / ext / mkmf.log

您可以列出此命令可用的所有mkmf.log文件:

find ~/.rvm -name mkmf.log

伦本

find ~/.rbenv -name mkmf.log

14
..或避免不必要地更改目录或grep-ing,请find ~/.rvm -name mkmf.log改用。它也会运行得更快;)
KomodoDave

2
添加到givanse的答案:find / var / lib -name mkmf.log查找mkmf.log文件。
Anwar

在OSX 10.10.5上,我正在illegal option使用-name标志。那是Linux的东西吗?
2015年

@ sixty4bit是您通过尝试进行任何更改吗find -name mkmf.log?find的第一个参数必须是开始目录,find . -name mkmf.log例如
morksinaanab '16

@morksinaanab已经有一段时间了,但我认为一定是这样
sixty4bit

3

Windows解决方案

正如@givanse所说,mkmf日志位于gem安装目录中。因为那可能很复杂,所以您应该只搜索mkmf文件。您可以在Windows资源管理器或PowerShell中执行此操作

cd C:\Dev\Ruby22 # Change to reflect your Ruby install dir
Get-ChildItem mkmf* -Recurse

0
find $GEM_HOME -name mkmf.log

要么

$GEM_HOME/extensions/$arch/$ruby_version-static/$gem_name-$gem_version/mkmf.log

chrubyruby-2.6.3

GEM_HOME: /home/yuri/.gem/ruby/2.6.3
arch: x86_64-linux
ruby_version: 2.6.0
gem_name: openssl
gem_version: 2.0.0

/home/yuri/.gem/ruby/2.6.3/extensions/x86_64-linux/2.6.0-static/openssl-2.0.0/mkmf.log

rvmruby-2.6.3

GEM_HOME: /home/yuri/.rvm/gems/ruby-2.6.3
arch: x86_64-linux
ruby_version: 2.6.0
gem_name: nokogiri
gem_version: 1.10.3

/home/yuri/.gem/ruby/2.6.3/extensions/x86_64-linux/2.6.0-static/nokogiri-1.10.3/mkmf.log
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.