Ich habe mindestens die folgenden merkwürdigkeiten um Rubygems auf Debian bemerkt (5,0 lenny in meinem Fall):
Was ist das Geschäft? Warum ist das debian-Paket anders?
Beachten Sie, dass sich das, was ich unten geschrieben habe, in letzter Zeit wesentlich geändert hat. Das Debian-Ruby-Team hat seinen gesamten Ansatz mehr oder weniger vollständig überarbeitet, einschließlich, aber nicht beschränkt auf die Verpackung von RubyGems. Ich bin mir nicht sicher über Debian 6, aber in der Version nach sollte die Installation von Ruby und das RubyGems-Paket von Debian sicher sein, vielleicht sogar empfohlen. Und das wird natürlich auch in Ubuntu fallen.
[EDIT: Das Folgende ist spätestens ab Debian 7 veraltet.]
Das Mischen mit zwei verschiedenen Paketmanagern ist im Allgemeinen eine sehr schlechte Idee. Das Debian-Ruby-Team versucht sein Bestes, RubyGems so zu patchen, dass es zu einer etwas weniger schlechten Idee wird.
Debian hat auch eine Reihe von Regeln, die das System konsistent halten sollen. RubyGems auch hat seine eigenen Regeln. Diese beiden Regelwerke sind leider nicht kompatibel. Also schreiben die Debian-Ruby-Entwickler RubyGems so, dass sie die Regeln von Debian anstelle von RubyGems respektieren. Das Verschieben von Edelsteinen von /usr/lib/ruby
nach /var/lib
ist eines dieser Dinge.
Ein weiteres Problem ist, dass Debian stabil, naja, stabil ist. Das bedeutet, dass das Debian-Team garantiert , dass sich das Verhalten des gesamten Systems, also aller 20000 Pakete, während einer Veröffentlichung nicht ändert. Aber die RubyGems-Entwickler machen ihre Bugfixes nicht separat verfügbar, die einzige Möglichkeit, einen Bugfix zu bekommen, ist das Upgrade auf eine neue Version mit (möglicherweise) anderem Verhalten. Daher können die Debian-Ruby-Entwickler die RubyGems-Quellen nicht einfach unverändert übernehmen, sie müssen die Bugfixes von 1.3.7 zurückentwickeln und sie auf ihre -Version von 1.3.6 anwenden, um Abwärtskompatibilität zu gewährleisten.
Im Allgemeinen sollten Sie es vermeiden, Paketmanager zu mischen. Verwenden Sie entweder RubyGems für alles (in diesem Fall ist es am besten, RubyGems aus dem Quellcode zu installieren, anstatt das Debian-Paket zu verwenden) oder verwenden Sie APT für alles. In diesem Fall könnten Sie sich für DebGem , ein Dienst der Phusion-Leute (Hersteller von Ruby Enterprise Edition und Phusion Passenger), der Debian- und Ubuntu-Pakete für so ziemlich alle Edelsteine anbietet.
Wenn Sie Ihre Ruby-Umgebung selbst verwalten möchten, können Sie sich RVM ansehen. Es ist eine gute Möglichkeit, verschiedene Umgebungen zu erhalten, die Ihre Dev-Anforderungen erfüllen, da es sinnvoller ist, wenn die Debian-Pakete das globale Ruby-Env verwalten.
Der beste Weg, um zu vermeiden, dass es anders und seltsam ist, ist es, es von der Quelle zu installieren. (Viele Leute empfehlen, dies auf jeden Fall zu tun.)
Ab 1.9.2 ist es sehr einfach Ruby von der Quelle zu installieren. Das bringt dir Gem und alles andere automatisch und komplett integriert. (Wenn beispielsweise das Rails-Juwel installiert ist, können Sie 'ri field_for' eingeben, um alles über verschachtelte Formulare in Rails zu erfahren.)
Mit oder ohne RVM ist es jetzt der einfachste und zuverlässigste Weg, Ruby zu bekommen. Mein 10c sowieso.