Was ist der Deal mit Rubygems auf Debian? Es ist anders und seltsam

8

Ich habe mindestens die folgenden merkwürdigkeiten um Rubygems auf Debian bemerkt (5,0 lenny in meinem Fall):

  • Pakete gehen an einen anderen Installationsort: / var / lib / Gems vs / usr / lib / ruby ​​/ Gems
  • Das debian-Paket ist rubygems 1.3.6, und das Aktualisieren von rubygems auf die neueste Version (1.3.7) funktioniert nicht:
%Vor%
  • Nicht alle Edelsteine ​​scheinen zu funktionieren wie auf anderen Systemen. Zum Beispiel wurde bei der Installation von Phusion Passenger der Edelstein "Rack" nicht gefunden, obwohl er definitiv installiert wurde.
  • Das manuelle Installieren von Rubygems mithilfe des Quell-Tarballs und das erneute Installieren aller meiner Edelsteine ​​(nach / usr / lib / ruby ​​/ gems) hat meine Probleme verschwinden lassen.

Was ist das Geschäft? Warum ist das debian-Paket anders?

    
Yetanotherjosh 17.05.2010, 05:18
quelle

3 Antworten

15

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.

    
Jörg W Mittag 17.05.2010, 05:46
quelle
3

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.

    
Cédric Darné 17.05.2010 11:59
quelle
1

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.

    
Andy 15.07.2011 22:09
quelle

Tags und Links