Install vs. zip

Can anyone explain me one bitter fact of Ruby: you always need two
things - Internet connection and installation? Why is it so hard to
make something the guys at IBM made with Eclipse or something that
Cygwin partially made with their UNIX on Windows or such projects? I
will stick to Eclipse, which really rocks.

Is it so hard to make a zip file (like Instant Rails does) for every
part of the structure. For example, Instant Rails has MySQL, while I
want PostgreSQL. It uses Apache, while I want lighttpd. Or I want
version X instead of version Y for any of these? Currently, I have to
use the installer of all the above and use Ruby Gems and whatever?

Why? For example, I just downloaded Ruby for cygwin, then I cleared it
(moved everything from /usr/local to /ruby), then I donwloaded Ruby
Gems and downloaded everything for Rails. Ok, then I deleted everything
and reinstalled everything using the cached gems and it worked. No
network connection, nothing. So why is it so hard to do it as a zip
file? Make ruby.zip, gems.zip and rails.zip which really contains what
I have right now on my machine. Of course, make it automatically when
the installer is made, so the latest files go to the zip.

Really, for me all the automatics over which you don’t have any control
(gems and apt-get come to my mind right now) is really bugging me. Yes,
I am new to these waters, so I am really not in the position to tell
anything to the people that made all this stuff, but one thing comes to
my mind. Ruby and Rails are really cool stuff and all the buzz for
“convention over configuration” really fits into this story I am
telling - why not make everything has its place where it should be
installed and just unzip? I don’t have anything against automatic
updates - in fact, they are cool - but I have much against automatic
(network) installs being the only option. Especially if there is no
need for that (I made a working non-install copy of ruby, gems, rails,
not so much trouble when you know how to do it, but until that
moment…).

Please tell me what you think, your experiences and finally whether you
would prefer (or at least want) this or not. I would especially like
the replies from people that are used to work with e.g. Eclipse or
people that like to compile the code under Linux.

dt wrote:

Please tell me what you think, your experiences and finally whether you
would prefer (or at least want) this or not. I would especially like
the replies from people that are used to work with e.g. Eclipse or
people that like to compile the code under Linux.

What platform are you working on Linux or Windows?

Every platform Windows or Linux has conventions that dictate how
applications are distributed and installed. Why fight them? You life
will be much simpler if you don’t.

You complain specifically about gems and apt-get so I’m going to assume
you are using some form of debian based Linux. You are not required to
have internet access to use the standard tools in a standard way.

You can install standard distribution components directly, not by using
apt-get but by instead by putting the appropriate *.deb files on a disk
and installing them with something like ‘dpkg -i *.deb’. The same goes
for using gems you can install those with ‘gem install gemfilename.gem’.

Thanks for your response.

What platform are you working on Linux or Windows?
Windows, mostly, however I am very fond of Linux. Debian is something I
am trying to “convert” to.

Every platform Windows or Linux has conventions that dictate how
applications are distributed and installed. Why fight them? You life
will be much simpler if you don’t.
<
Agree. My post is just a wish for a better world. People who built Ruby
and Rails and Gems and all this fancy stuff just had a history to look
at. Basically, when you have Eclipse, why do something Windows way,
even if that is platform-default? Ruby doesn’t need anything that
depends on the installer (contrary to e.g. MS Office, which writes to
the registry and whatever) - it’s a bunch of files in one folder. If
this is all Ruby/Gems/Rails needs, why restrict anyone to have the
waste the time installing the things - copying from my friend’s
distribution is much faster then downloading all the things from the
Net and also brings the settings with you. Apparently, I can do that
once I have installed everything - I can do a verbatim copy and
everything will work pretty fine. Well, why rubyforge.rog doesn’t
behave as my imaginary friend from which I would simply copy ruby.zip
and voila - I have ruby.

But you are right - fighting these rules is something that would lead
to a lot of wasted time on my side, at least.

You can install standard distribution components directly, not by using
apt-get but by instead by putting the appropriate *.deb files on a disk
and installing them with something like ‘dpkg -i *.deb’. The same goes
for using gems you can install those with ‘gem install
gemfilename.gem’.
<
I agree with this, but to install Rails you have to install 7 gems:

  1. Activesupport
  2. Actionpack
  3. Actionmailer
  4. Activerecord
  5. Actionwebservice
  6. Rake
  7. Rails
    according to Peak Obsession.

I found this page and it is really not a big pain to do this (you need
approximately 10 minutes to do this). However, I lost a lot trying to
find this page. I guess people would pretty much like “Save As…” of a
zip (or tar.gz or .bz2) which you would unzip and start running.

The point is in possibility - if you have a (very easily achievable)
possibility to do something really useful (you didn’t comment on
whether this is useful or not - do you think so), why don’t do it? OK,
people have a lot of other things to work on - but wouldn’t they have
me help them maybe? Yes, if I only could install it…

Thanks again!

In general though what you’re asking for doesn’t seem to make sense to
me. Simply put gems does offer advantages over *.zip file distribution.
You should investigate those advantages to understand why people have
decided to go that route.
OK, I agree with this. Gems are awfully similar to deb, rpm and such
packages. Yes, they offer a lot.

You complain that rails is split across several gems. Have you
considered that each of those is a stand alone library that can (and
often is) used without rails? I use ActionMailer and ActiveRecord quite
often without rails.
No, I don’t complain rails being split across several gems. In fact, I
am in for this solution. This allows exactly what you said -
reusability.

I complain about being unable to take one zip (or gem, deb, rpm,
tar.gz, bz2, arj, rar - I don’t really care about the format) and
install it only using that file. Basically, all the existing formats I
know of: rpm, deb, gem, … - take care of dependencies. You cannot
take one file and install everything - you need an automatic packaging
system to decide what the dependencies really are. All these offer
advantage over zip - the metadata that goes with them is important.
However, they have a disadvantage that you don’t have everything in one
place.

You complain that you had to know to install each of them but when you
use gems you don’t need to know anything, only the gems maintainer
needed to understand these dependencies. Had you used the gems off-line
and tried to install the rails gem it would of prompted you ‘by name’
for the missing dependencies.
Yes, this is true.

I realize the learning curve can be steep when you’re doing new things
but when lots of people are doing something one way I’d recommend
learning why they do it before trying to blaze a new trail. In the end
maybe the trail needs to be blazed but quite often you’ll find out
everyone’s not as dumb as you think :wink:
Heh… This is a very nice comment. I would like to clarify my “ways”
prior to saying more. I don’t thing everyone is dumb (or at least
dumber). I really respect people that made all the things about Ruby -
and not only Ruby - many, many GNU things, for example deserve huge
respect.

It’s not that I think they are dumb, it’s what you said in the first
sentence - everybody has its own way of doing something. I also agree
with you that I shouldn’t have tried to do it my way when there is a
ready solution for me which seems simple - “one click” and install. I
agree that I should have learned why the things are as they are.

However, I still long for the solution that doesn’t need installations
when they are necessary. I still don’t think they are necessary for the
most of what we’ve covered in this post.

Anyway, to conclude - you think that if there is a solution A and
solution B and 98% of people use solution A, I should - in at least 98%
of the cases - really consider not using solution B and simply using
solution A? Do you work like this normally in your life? How many times
do you change settings? How many times you search for the alternative
solution when there is something that bothers you?

Thanks!

dt wrote:

Anyway, to conclude - you think that if there is a solution A and
solution B and 98% of people use solution A, I should - in at least 98%
of the cases - really consider not using solution B and simply using
solution A? Do you work like this normally in your life? How many times
do you change settings? How many times you search for the alternative
solution when there is something that bothers you?

Not at all, that’s not what I said.

I said when most people have settled on a particular solution to a
problem that you should learn why they have before setting off to find a
different one.

Of course there are times when the status quo will not be sufficient and
you will have to find a new/better way of doing something.

This is not one of those cases. The current distribution tools offer
advantages over just using zip files. I’m confident that if you explore
these tools you’ll see why.

dt wrote:

Thanks for your response.

The point is in possibility - if you have a (very easily achievable)
possibility to do something really useful (you didn’t comment on
whether this is useful or not - do you think so), why don’t do it? OK,
people have a lot of other things to work on - but wouldn’t they have
me help them maybe? Yes, if I only could install it…

Thanks again!

Quite a few ruby libraries (depending on the authors preferences) make
them selves available in gem, zip and tar.gz formats so in one sense
what you’re asking for already exists.

Keep in mind that even though the zip and tar.gz files quite often exist
they usually include a setup.rb which should be run to install the
library and this setup file expects a traditionally installed instance
of ruby.

In general though what you’re asking for doesn’t seem to make sense to
me. Simply put gems does offer advantages over *.zip file distribution.
You should investigate those advantages to understand why people have
decided to go that route.

You complain that rails is split across several gems. Have you
considered that each of those is a stand alone library that can (and
often is) used without rails? I use ActionMailer and ActiveRecord quite
often without rails.

You complain that you had to know to install each of them but when you
use gems you don’t need to know anything, only the gems maintainer
needed to understand these dependencies. Had you used the gems off-line
and tried to install the rails gem it would of prompted you ‘by name’
for the missing dependencies.

I realize the learning curve can be steep when you’re doing new things
but when lots of people are doing something one way I’d recommend
learning why they do it before trying to blaze a new trail. In the end
maybe the trail needs to be blazed but quite often you’ll find out
everyone’s not as dumb as you think :wink: