2015-02-28 3 views
0

Когда я запускаю установку пакета, я получаю следующую ошибку. Он говорит, что проверьте файл mkmf.log. Как найти файл mkmf.log?Ошибка при запуске пакета установить в ubuntu

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    /home/.rubies/ruby-2.1.3/bin/ruby -r ./siteconf20150228-3404-1f8s19v.rb extconf.rb 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of necessary 
libraries and/or headers. Check the mkmf.log file for more details. You may 
need configuration options. 

Provided configuration options: 
    --with-opt-dir 
    --without-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/home/.rubies/ruby-2.1.3/bin/ruby 
extconf.rb:45:in `open': No such file or directory @ dir_initialize - /usr/bin/include (Errno::ENOENT) 
    from extconf.rb:45:in `<main>' 

extconf failed, exit code 1 

Gem files will remain installed in /home/.gem/ruby/2.1.3/gems/rjb-1.4.9 for inspection. 
Results logged to /home/.gem/ruby/2.1.3/extensions/x86_64-linux/2.1.0-static/rjb-1.4.9/gem_make.out 
An error occurred while installing rjb (1.4.9), and Bundler cannot continue. 
Make sure that `gem install rjb -v '1.4.9'` succeeds before bundling. 

Я получаю сообщение об ошибке при попытке установить

gem install rjb -v '1.4.9' 

Так что я нашел mkmf.log файл. Он имеет следующую ошибку. Он ищет библиотеку jni.h, которая отсутствует. Что я должен сделать, чтобы решить эту проблему?

have_header: checking for jni.h... -------------------- no 

"gcc -o conftest -I/home/.rubies/ruby-2.1.3/include/ruby-2.1.0/x86_64-linux -I/home/.rubies/ruby-2.1.3/include/ruby-2.1.0/ruby/backward -I/home/.rubies/ruby-2.1.3/include/ruby-2.1.0 -I. -I"/usr/bin/include"  -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -I"/usr/bin/include" conftest.c -L. -L/home/.rubies/ruby-2.1.3/lib -Wl,-R/home/.rubies/ruby-2.1.3/lib -L. -fstack-protector -rdynamic -Wl,-export-dynamic  -Wl,-R -Wl,/home/.rubies/ruby-2.1.3/lib -L/home/.rubies/ruby-2.1.3/lib -lruby-static -lpthread -ldl -lcrypt -lm -lc" 
checked program was: 
/* begin */ 
1: #include "ruby.h" 
2: 
3: int main(int argc, char **argv) 
4: { 
5: return 0; 
6: } 
/* end */ 

"gcc -E -I/home/.rubies/ruby-2.1.3/include/ruby-2.1.0/x86_64-linux -I/home/.rubies/ruby-2.1.3/include/ruby-2.1.0/ruby/backward -I/home/.rubies/ruby-2.1.3/include/ruby-2.1.0 -I. -I"/usr/bin/include"  -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -I"/usr/bin/include" conftest.c -o conftest.i" 
conftest.c:3:17: fatal error: jni.h: No such file or directory 
#include <jni.h> 
       ^
compilation terminated. 
checked program was: 
/* begin */ 
1: #include "ruby.h" 
2: 
3: #include <jni.h> 
/* end */ 

-------------------- 

~                                      
~                                      
~                                      
"mkmf.log" 27L, 1710C 
+0

Пожалуйста, выполните команду 'найти jni.h' из командной строки и опубликуйте свой результат здесь. – mudasobwa

+0

@mudasobwa найти jni.h /usr/lib/jvm/java-7-openjdk-amd64/include/jni.h – Zack

+0

'export CXXFLAGS = '- I/usr/lib/jvm/java-7-openjdk-amd64/include'' перед выполнением 'gem' должно помочь. – mudasobwa

ответ

3

4 максимальными возможностями для проверки:

  • текущего каталога
  • ./log
  • /home/.gem/ruby/2.1.3/gems/rjb-1.4.9
  • /home/.gem/ruby/2.1.3/extensions/x86_64-linux/2.1.0-static/rjb-1.4.9/

Если это не либо из тех, то попробуйте следующую команду для поиска всей системы:

find/-name mkmf.log 2>/dev/null

Чтобы исправить другой вопрос это сделать:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 
+0

Спасибо. Я нашел файл журнала и добавил дополнительные сведения в свой вопрос после его редактирования. Он не работает на строке #include . :( – Zack

+0

Кажется, что вам нужно установить java SDK и установить переменную среды JAVA_HOME. –

+0

У меня установлен java sdk. Раньше JAVA_HOME не был установлен, поэтому я явно экспортировал его в путь установки java. Echo $ JAVA_HOME /usr/bin – Zack