2014-10-28 10 views
13

byłem googling ten błąd poniżej, ale nie mogę rozwiązać ten błąd:Ruby on Rails - Błąd podczas instalowania pakietu

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

    /usr/bin/ruby2.1 extconf.rb 
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h 

extconf failed, exit code 1 

Gem files will remain installed in /home/dyego/.bundler/tmp/9200/gems/sqlite3-1.3.9 for inspection. 
Results logged to /home/dyego/.bundler/tmp/9200/extensions/x86_64-linux/2.1.0/sqlite3-1.3.9/gem_make.out 
An error occurred while installing sqlite3 (1.3.9), and Bundler cannot continue. 
Make sure that `gem install sqlite3 -v '1.3.9'` succeeds before bundling. 
     run bundle exec spring binstub --all 
/usr/lib/ruby/vendor_ruby/bundler/resolver.rb:296:in `resolve': Could not find gem 'sqlite3 (>= 0) ruby' in the gems available on this machine. (Bundler::GemNotFound) 
    from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:168:in `start' 
    from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:129:in `block in resolve' 
    from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:128:in `catch' 
    from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:128:in `resolve' 
    from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:179:in `resolve' 
    from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:114:in `specs' 
    from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:159:in `specs_for' 
    from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:148:in `requested_specs' 
    from /usr/lib/ruby/vendor_ruby/bundler/environment.rb:18:in `requested_specs' 
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:13:in `setup' 
    from /usr/lib/ruby/vendor_ruby/bundler.rb:120:in `setup' 
    from /usr/lib/ruby/vendor_ruby/bundler/setup.rb:17:in `<top (required)>' 
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 

Więc google ten błąd:

mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

i mam kilka podobnych pytań jak ten: Error while installing json gem 'mkmf.rb can't find header files for ruby'

Ale ja już zainstalowany ruby-dev:

sudo apt-get install ruby-dev 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
ruby-dev is already the newest version. 
0 upgraded, 0 newly installed, 0 to remove and 72 not upgraded. 

Naprawdę staram się rozwiązać ten problem (nawet jeśli wydaje się być prosty).

+0

czy próbowałeś zainstalować 'sudo apt-get install ruby2.1-dev'? – Alireza

+0

co się stanie, gdy uruchomisz 'gem install sqlite3 -v '1.3.9''? – Anthony

+2

Użyj 'rvm'. Nie umieszczaj Ruby w swoim środowisku, ponieważ prawdopodobnie będziesz pracował z inną wersją Rubinów w swoich projektach. – blelump

Odpowiedz

38

próby zainstalowania biblioteki ruby-dev dla danej wersji Ruby, który jest 2,1

$ sudo apt-get install ruby2.1-dev 
+2

Jeśli jesteś leniwy i nie jest to system produkcyjny, samo instalowanie 'ruby-dev' również działa. I tak, zdaję sobie sprawę, że to zabawne, że wkładam więcej wysiłku w ten komentarz, niż wymagałoby to ode mnie napisania 3 dodatkowych znaków potrzebnych do specyfiki wersji. Obwiniam społeczeństwo. –

+0

Do tej pory powinno to być 'ruby-2.3-dev'. Możesz znaleźć nazwę pakietu, uruchamiając 'apt-cache search" ruby. * - dev "' jeśli jesteś w dystrybucji opartej na Debianie (np. Ubuntu, Mint). – einpoklum

3

Gdyby podobny błąd na Fedorze, gdy próbuje zainstalować kompas dla rozwoju Sass

gem install compass 

nie powiodło się z

Budowanie rozszerzeń natywnych. To może chwilę potrwać ... BŁĄD: Błąd podczas instalowania kompasu: BŁĄD: Nie można zbudować rozszerzenia natywnego.

/usr/bin/ruby ​​extconf.rb mkmf.rb nie może znaleźć plików nagłówkowych dla Ruby w /usr/share/include/ruby.h

Ran to

yum -y install gcc ruby-devel rubygems 

i następnie udało się ponownie uruchomić instalację.

+0

Otrzymuję 'No package ruby-devel available. 'Podczas wykonywania' yum -y install ruby-devel'. Czy jest nowy pakiet do zainstalowania? –

+0

To jest odpowiedź, która pomogła mi, gdy próbowałem zainstalować kompas. Jednak rubygems nie było konieczne. Właśnie użyłem sudo yum install ruby-devel gcc -y –