FreeBSD ports and RubyGems

Tomonage

Well-Known Member
Irgendwelche Ruby/RubyGems Benutzer auf FreeBSD hier?

Ich bin gerade dabei, RubyGems besser in den ports-tree zu integrieren (aehnlich wie bei PHP Pear und Perl CPAN).

Ich habe dazu schon ein paar Patches fertig, nur leider bisher kein Test-Feedback bekommen.

Ich wuerde mich freuen, wenn jemand das mal unter FreeBSD ausprobieren koennte und mir Feedback geben wuerde.

Ziel ist es, RubyGems per ports tree zu installieren:

#cd /usr/ports/www/gem-rails
#make install clean
u.s.w.

Patchset und weitere Infos hier:

http://blog.innerewut.de/articles/2005/05/30/first-version-of-rubygems-in-the-freebsd-ports-tree
 
gem- ist IMHO der falsche Prefix dafuer, du solltest vielleicht rubygem- verwenden, oder einfach nur ruby. Dem gemeinen Anwendert ist ja dann egal, ob das Teil manuell installiert wird, oder ueber ruby-gems

Das Makefile von zB www/typo enthaelt Unmengen an Tabulatoren, bitte mal den Editor richtig einstellen :)

Das install-Skript nimmt einfach mal an, das /usr/ports das Ports-Verzeichnis ist. Dem ist nicht immer so. Besser waere vielleicht ein grosser Patch, relativ zu ${PORTSDIR}

gem-rake/pkg-descr enthaelt die Descr. fuer Ruby-Gems?


Sorry, hab nur kurz druebergeguckt, mit einem dicken fetten patch, relativ zu /usr/ports waere ich erstmal gluecklich :)

hth
 
Auf jeden Fall erstmal Danke für das Feedback!

MrFixit schrieb:
gem- ist IMHO der falsche Prefix dafuer, du solltest vielleicht rubygem- verwenden, oder einfach nur ruby. Dem gemeinen Anwendert ist ja dann egal, ob das Teil manuell installiert wird, oder ueber ruby-gems

Den prefix "ruby" benutzen schon Ruby-Module, sodass wohl nur "rubygem-" bleibt.
MrFixit schrieb:
Das Makefile von zB www/typo enthaelt Unmengen an Tabulatoren, bitte mal den Editor richtig einstellen :)

Das install-Skript nimmt einfach mal an, das /usr/ports das Ports-Verzeichnis ist. Dem ist nicht immer so. Besser waere vielleicht ein grosser Patch, relativ zu ${PORTSDIR}

gem-rake/pkg-descr enthaelt die Descr. fuer Ruby-Gems?

Sorry, hab nur kurz druebergeguckt, mit einem dicken fetten patch, relativ zu /usr/ports waere ich erstmal gluecklich :)

hth

Ich werde Deine Punkte verändern und dann einen großen Patch erstellen. Ist wohl einfacher als der Installer ;-)

Danke!
 
Ich bin noch nicht dazu gekommen, aber ich finde du solltest einfach nur ruby- als Praefix verwenden. Es sind schliesslich alles Ruby-Module, die sich nicht wesentlich von anderen ruby-* Ports unterscheiden. Oder? Einzig allein die BUILD_DEPENDS auf ruby-gem unterscheidet das. Fuer den einzelnen User vollkommen egal, weil er ja sowieso die pkg_* Tools drauf loslaesst.

Mehr naechste Woche, wenn ich mal ein wenig Zeit finde.
 
MrFixit schrieb:
Ich bin noch nicht dazu gekommen, aber ich finde du solltest einfach nur ruby- als Praefix verwenden. Es sind schliesslich alles Ruby-Module, die sich nicht wesentlich von anderen ruby-* Ports unterscheiden. Oder? Einzig allein die BUILD_DEPENDS auf ruby-gem unterscheidet das. Fuer den einzelnen User vollkommen egal, weil er ja sowieso die pkg_* Tools drauf loslaesst.

Mehr naechste Woche, wenn ich mal ein wenig Zeit finde.

Stimmt schon, aber es sind ja keine "wirklichen" ruby Module, sondern rubygems...
Ausserdem kann es so zu Namenskonflikten kommen.

So kann es ein ruby-sqlite geben (Ruby Module) und rubygem-sqlite (Rubygem). Bei installieren die selbe Library aber in anderes directory und verhalten sich anders unter ruby.
 
MrFixit schrieb:
Hmm, ich dachte RubyGem ist einfach nur ne Paketverwaltung fuer normale Ruby-Module, und nichts anderes.

An sich ja, aber die Pakete muessen dann teilweise anders includiert werden.

normalerweise:
Code:
require "foo"

mit rubygems:

Code:
require "rubygems"
require_gem "foo"

wobei man auch einstellen kann, dass require "foo" alles macht.
 
Ok, das ist dann aber wieder nur fuer die Developer interessant. Jemand der das Ruby-Wiki da als Gem installiert und einfach nur verwenden will, dem ist das ja egal.

Aber frag da mal lieber einen Committer, was die zu dem Praefix meinen.
 
Danke fuer deinen Einsatz!

Ich habe gerade erst angefangen mich mit Ruby zu beschaeftigen; werde von deiner Arbeit aber sicherlich profitieren:)

Magst du kurz diese etwas ketzerische Frage beantworten: Warum moechte ich die gem-Pakete lieber ueber Ports installieren und das nicht ruby-gems ueberlassen? Mir ist der Unterschied wirklich nicht ganz klar...
 
Der Vorteil ist, dass du nur ein Management Interface fuer installierte Programme haben willst, die Ports.

Klar koennte man Rubygems direkt mit `gem`, PHP-Pear libs direkt mit `pear`, Perl libs direkt mit `perl -MCPAN`, u.s.w. installieren, updaten und deinstallieren. Aber einfacher ist es, wenn es einen Port gibt und ich mich nur mit einem Interface auskennen muss. Manchmal muss man sich auch etwas anstellen, um eine Lib oder ein Programm unter FreeBSD zu installieren. Dies wird mir beim Port abgenommen.

Des Weiteren koennen jetzt einzelne Rubygems direkt von anderen Ports abhaengen und deren Installation erzwingen.

D.h. wenn du z.B. die Ruby-Bindings fuer MySQL als Gem installierst, koennen diese die Installation von den C-MySQL-Libs anstossen. Vorher haettest du nur eine Fehlermeldung bekommen, dass die MySQL-Header nicht gefunden wurden.

Auch koennen "normale" Programme nun richtig von Gems abhaengig sein und deren Installation erzwingen. Vorher haettest du auch nur eine Meldung bekommen, dass Gem XXX nicht gefunden wurde.
 
Ok, du hast mich ueberzeugt :) Gehe ich recht in der Annahme, dass bereits installierte gem-Pakete - z.B. rails - in der Verwaltung von den Ports *nicht* uebernommen werden koennen?

Also, ich habe via ruby-gems "rails" installiert. Wenn ich jetzt via Ports "www/rubygem-rails" nachinstalliere, wird das redudant abgelegt oder werden die ruby-gems-installierten Pakete ueberschrieben?

Ist die Frage verstaendlich? Es ist zu frueh am Morgen:)
 
Zuletzt bearbeitet:
Zurück
Oben