> Seriously, gems are really hard to package into an RPM. Really, really
> hard. I end up un-packing them as tarballs, then patching them out to
> remove the require_gem lines, require 'rubygems', and then correcting
> the assumptions about the location of data files.
RubyGems are Ruby's package manager. If you want to install a gem, use
RubyGems.
While preserving the ability to repackage might not have been amongst
the priorities of your original concept, the current RubyGems team do
care about that:
"Specifically, it's important to hear of specific scenarios where
something is created as a RubyGem and it _hurt_ the ability to repackage
it." (Chad)
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/115240
Trying to twist and turn and stuff the square peg into the round
hole to turn a gem into an RPM is outside the scope of the design of
RubyGems.
Some time ago, RubyGems' TODO noted:
"* RPM, Mac OS dmg/pkg, Debian pkg, MSI, etc. conversion (at least one
or two)"
http://tinyurl.com/cujmp
If you take a look at the TODO nowadays, you'll see that
"* Integration with platform-native packaging systems"
http://tinyurl.com/7fvvo
is one of RubyGems' goals.
It is therefore clear that the RubyGems team do indeed care about making
Ruby software available in other formats besides RubyGems packages.
Also, the RubyGems team is committed to making RubyGems packages easy to
repackage:
http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/121047
(it is unfortunate that #ruby-lang only began to be logged recently)
If you and a sufficiently large number of other end users feel
that it should be easy to turn gems into RPMs or one of the other Linux
package formats then that should become a new requirement of the system.
But I imagine it would require a lot of work and probably negative
compromises, so there had better be a lot of good reasons to do it beyond
"it allows me to install rails with one command."
There are good reasons to require that a standard upstream format allow
several repackagers to operate (I could try to expand on that in another
message if you wish but I want to keep this one short). Repackagers do
a worthy (and often not sufficiently appreciated) contribution to Ruby
users by making Ruby software available to them in forms best suited for
their systems. And they have done so for a long time.
It'd instead think that there must be a really, really good reason[1] to
make their life harder by making Ruby software nearly unpackageable. And
there is no reason to alienate them, as you do when you imply that their
work is irrelevant. It would have been much more polite to contact them
before.
After all these people know the most about (re)packaging.
> And before you say "... just use gems", let me point out something:
>
> To run, say, Rails, with gems:
>
> 1) manually install ruby
> 2) manually install rubygems
> 3) gem install rails
As others have said, steps 1 and 2 only have to be done once for you to
use any current gem. To use RPMs you need RedHat or SuSE or one of the
other RPM distros, yet you left that out of your second shorter example.
What about this example... On my system,
apt-get install librdf-ruby
installs, amongst others,
libcurl3, libdb4.2, libidn11, libmysqlclient12, libraptor1, librasqal0, librdf0,
libsqlite3-0, libssl0.9.7, libxml2, libxslt1.1, zlib1g, liblog4r-ruby1.8
This is something RubyGems cannot (and will not be able to) do.
And it's OK, the Debian developers know how to package it and their toolchain
supports it. That's why you definitely do not want to make librdf-ruby hard to
repackage, for the opposite would lead to a net loss of functionality, and
deploying librdf-ruby would become substantially more difficult for a lot of
people.
[1] the fact that there's a lot of work to be done means that the problem is
a bit more complex than reflected by RubyGems' current model. Being a lazy
programmer is good (I'm also trying to improve in that regard), but this
is not good enough a reason to alienate repackagers and ignore their work
and experience.
···
On Thu, Jul 07, 2005 at 01:04:37AM +0900, Ryan Leavengood wrote:
--
Mauricio Fernandez