Wie behebt man den Fehler, dass das Rouge-Gem unter Ruby nicht gefunden wird?
Wenn das Ruby-Gem Rouge nicht gefunden wird, liegt das meist an einem Problem mit dem Pfad, der Installation oder der Art und Weise, wie Ruby die Gems lädt.
Hier sind die gängigsten Lösungen, sortiert von der einfachsten bis zur spezifischsten:
1. Grundsätzliche Installation prüfen
Stelle sicher, dass das Gem überhaupt auf deinem System installiert ist. Öffne das Terminal und gib ein:
gem list rouge
Wenn es nicht in der Liste erscheint, installiere es:
gem install rouge
Hinweis: Wenn du rbenv oder rvm nutzt, musst du eventuell rbenv rehash ausführen, nachdem du das Gem installiert hast.
2. Nutzung mit Bundler (Gemfile)
Wenn du ein Projekt mit einem Gemfile hast, wird Ruby das Gem nicht finden, nur weil es auf dem System installiert ist.
- Füge das Gem zu deinem Gemfile hinzu:
gem 'rouge' - Installiere es über Bundler:
bundle install - Führe dein Skript mit
bundle execaus:bundle exec ruby dein_skript.rb
3. Das Gem im Ruby-Code korrekt einbinden
Stelle sicher, dass du am Anfang deiner Ruby-Datei das Gem auch anforderst. Nur die Installation reicht nicht aus, damit das Skript die Klassen kennt.
require 'rouge'
# Beispielaufruf
formatter = Rouge::Formatters::HTML.new
lexer = Rouge::Lexers::Ruby.new
puts formatter.format(lexer.lex("puts 'hello'"))
4. Problem mit verschiedenen Ruby-Versionen
Oft sind mehrere Ruby-Versionen installiert (z. B. die System-Version und eine über rbenv oder rvm installierte).
Prüfe, welche Versionen aktiv sind:
which ruby
which gem
Die Pfade sollten übereinstimmen. Wenn gem in einen anderen Ordner installiert als ruby sucht, wird das Gem nicht gefunden. In diesem Fall hilft es meist, das Gem explizit für die aktuelle Version zu installieren:
ruby -S gem install rouge
5. Pfad-Probleme (GEM_PATH)
Falls du Rouge als Kommandozeilen-Tool (rougify) nutzen willst und die Meldung "command not found" kommt, ist dein Ruby-Bin-Verzeichnis nicht im Systempfad (PATH).
Gib gem env ein und schaue unter SHELL PATH oder EXECUTABLE DIRECTORY nach. Diesen Pfad musst du zu deiner .bashrc oder .zshrc hinzufügen:
export PATH="$PATH:$(gem var gemdir)/bin"
6. Speziell für Jekyll-Nutzer
Falls der Fehler auftritt, während du Jekyll startest:
- Prüfe, ob in deiner
_config.ymlsteht:highlighter: rouge. - Stelle sicher, dass Rouge im
Gemfilein der Gruppe:jekyll_pluginssteht oder einfach global im Gemfile gelistet ist. - Führe
bundle exec jekyll serveaus.
Zusammenfassung: Meistens hilft ein simples gem install rouge gefolgt von einem require 'rouge' im Code oder die Nutzung von bundle exec.