Hat jemand versucht, Ruby & Rubygems aus dem Quellcode unter Ubuntu (vorzugsweise Ubuntu 9) zu installieren?

StackOverflow https://stackoverflow.com/questions/1250329

Frage

Die Ruby on Rails-Website empfiehlt die Installation von Ruby aus dem Quellcode unter Linux.Beim Erstellen von Ruby aus dem Quellcode bin ich bei einer Neuinstallation von Ubuntu 9 auf eine Reihe von Problemen mit der C-Bibliothek gestoßen.

Alle Anweisungen, die ich im Internet zur Installation von Ruby unter Ubuntu gefunden habe, beziehen sich auf die Verwendung des vorgefertigten (.deb-basierten) Ruby.Das ist eindeutig nicht das, was die Rail-Leute empfehlen.

Als ich einen sauberen Quellcode von Ruby erstellte, stellte ich fest, dass Rubygems nicht installiert werden konnte, weil die Zlib-Erweiterung nicht funktionierte.

Es treten zwei Probleme auf:

1) Die zlib-Erweiterung ist nicht erstellt.

Lösung:

i) Stellen Sie sicher, dass zlib in der Setup-Datei im extn-Verzeichnis der Ruby-Quelle unkommentiert ist, und

ii) Stellen Sie sicher, dass diese zlib-Ubuntu-Pakete installiert sind:

aptitude install zlib1g
aptitude install zlib1g-dbg
aptitude install zlib1g-dev
aptitude install zlibc

2) Nach der Behebung von Problem 1 oben (und einem sauberen Neuaufbau von Ruby) funktioniert zlib immer noch nicht, da die Erweiterung nicht geladen werden kann.

Sie können sehen, dass das Modul nicht geladen werden kann, indem Sie Folgendes ausführen und die Ausgabe „false“ erhalten:

puts require 'zlib'

Ich habe beobachtet, dass dies bei einer Reihe anderer C-Erweiterungen im extn-Verzeichnis passiert, es scheint also ein eher allgemeines Problem mit diesen Erweiterungen zu sein als nur etwas Zlib-spezifisches.

Zusammenfassen:

  • Mein Ruby-Build findet die Ruby-spezifische C-Zlib-Erweiterung, kann das Zlib-Modul jedoch nicht laden.
  • Dieses Verhalten scheint auch bei anderen Erweiterungen in /extn aufzutreten.

Gibt es eine Möglichkeit herauszufinden, warum ein Modul nicht geladen werden kann?eine Art Trace-/Ausführmodus?

War es hilfreich?

Lösung

Ich sehe nicht, was dein Problem ist. Sie sagen, dass require 'zlib' false zurückgibt. Aber das bedeutet, dass es hat Arbeit! Wenn ein Fehler wäre, würden Sie eine LoadError Ausnahme erhalten.

Andere Tipps

Folgendes habe ich getan, um Ruby, Gems und Rails unter Ubuntu 11.04 zu installieren

  • Installieren Sie Ruby aus Quellen

  • Installieren Sie RubyGems aus Quellen

  • Installieren Sie zlib:
    • sudo apt-get install zlib1g-dev
    • cd your-ruby-sources/ext/zlib
    • Ruby extconf.rb
    • machen
    • sudo make install
  • Readline installieren:
    • sudo apt-get install libreadline5-dev
    • cd your-ruby-sources/ext/readline
    • Ruby extconf.rb
    • machen
    • sudo make install
  • OpenSSL installieren:
    • sudo apt-get install libssl-dev
    • cd your-ruby-sources/ext/openssl
    • Ruby extconf.rb
    • machen
    • sudo make install

Haben installieren Sie libzlib-ruby? Hier ist meine typische Ubuntu Initialisierung vor Rubygems Installation:

$ apt-get update
$ apt-get dist-upgrade
$ apt-get install build-essential -y
$ apt-get install rsync -y
$ apt-get install ruby ri rdoc irb ri1.8 ruby1.8-dev libzlib-ruby zlib1g libopenssl-ruby -y
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top