Tutorial: Fehler "Failed to build gem native extension" beheben

Melden

Hier ist ein ausführliches Tutorial, wie du den häufigen Fehler bei der Installation von Ruby on Rails beheben kannst.

Dieser Fehler tritt auf, wenn Ruby versucht, ein Gem zu installieren, das C-Erweiterungen enthält (z. B. nokogiri, sqlite3 oder pg), aber die dafür notwendigen System-Header oder Compiler-Tools auf deinem Betriebssystem fehlen.


1. Die Ursache verstehen

Ruby-Gems sind oft in Ruby geschrieben, aber performante Teile nutzen C-Code. Damit dieser Code auf deinem Computer läuft, muss er während der Installation „kompiliert“ werden. Wenn die Fehlermeldung erscheint, bedeutet das meist: Dir fehlen die Build-Tools oder die Entwicklungs-Bibliotheken (Headers) für dein System.


2. Lösung für Linux (Ubuntu / Debian / Mint)

Auf Linux-Systemen fehlen meist die Basis-Entwicklungspakete und die Ruby-spezifischen Header.

Schritt 1: System-Pakete aktualisieren Öffne das Terminal und gib ein:

sudo apt update

Schritt 2: Build-Essentials und Ruby-Header installieren Installiere die wichtigsten Tools und die Header-Dateien für Ruby:

sudo apt install build-essential libssl-dev libreadline-dev zlib1g-dev ruby-dev

Schritt 3: Spezifische Bibliotheken (falls nötig) Falls der Fehler weiterhin bei einem bestimmten Gem (z. B. sqlite3 oder pg) auftritt, installiere die jeweiligen Header:

  • Für SQLite: sudo apt install libsqlite3-dev
  • Für PostgreSQL: sudo apt install libpq-dev
  • Für Nokogiri: sudo apt install libxml2-dev libxslt1-dev

3. Lösung für macOS

Auf dem Mac liegt das Problem meist an fehlenden oder nicht verknüpften Kommandozeilen-Tools von Xcode.

Schritt 1: Xcode Command Line Tools installieren Gib folgenden Befehl im Terminal ein:

xcode-select --install

Ein Fenster öffnet sich – klicke auf "Installieren".

Schritt 2: Homebrew nutzen (optional, aber empfohlen) Falls du Homebrew nutzt, stelle sicher, dass die Bibliotheken aktuell sind:

brew update
brew install openssl readline libyaml

4. Lösung für Windows

Unter Windows wird für das Kompilieren von Gems das sogenannte MSYS2 DevKit benötigt.

Schritt 1: DevKit installieren Wenn du Ruby über den RubyInstaller installiert hast, öffne die Eingabeaufforderung (CMD) und gib ein:

ridk install

Wähle im Menü die Option 3 (MSYS2 and MINGW development toolchain).

Schritt 2: Pfade aktualisieren Starte die Konsole neu, damit die neuen Pfade geladen werden.


5. Der finale Test

Nachdem du die oben genannten Tools installiert hast, kannst du versuchen, Rails (oder das betroffene Gem) erneut zu installieren:

gem install rails

Oder falls du Bundler nutzt:

bundle install

Zusammenfassung der häufigsten fehlenden Header:

Wenn die Fehlermeldung einen speziellen Namen nennt, hilft meist die Installation des entsprechenden -dev Pakets:

Fehlendes Header / Gem Paketname (Linux)
sqlite3 libsqlite3-dev
pg (PostgreSQL) libpq-dev
mysql2 default-libmysqlclient-dev
nokogiri libxml2-dev
ruby (allgemein) ruby-dev

Tipp: Achte in der langen Fehlermeldung auf die Zeile Can't find header... oder checking for ... failure. Dort steht oft genau, welche Datei (z.B. zlib.h oder Python.h) vermisst wird.

0