I don’t know much about this, but why don’t these installs establish and
Because UNIX tradition means that often things grow chaotically up to
the point where it needs to be fixed. But if it does not need to be
fixed yet, it will continue that way.
That is the power of UNIX design - grow and grow and grow.
Never think before you grow. Thinking delays growing.
Bad design can be fixed later - is a mantra. That not many fix it later,
because it would be a lot of work, is another issue …
ruby gets installed and established a symlink
which anything can access to find it, and likewise with rubygems.
But you are only applying a cosmetic surface to the underlying problem
The distribution will probably demand of you to “keep” to its way.
I remember the debian “philosophy” applied to ruby and splitting the
packages in many individual yet arbitrary components which means it is
in a way sometimes crippled. I remember an old plea from python devs
to stop doing this, as users who install python via package manager
(and more importantly the devs who code something) cannot rely that
all the “required” things in python are actually there. I.e. if one
went and compiled python from source he would have less trouble.
This mess is the result of someone who should know better not
thinking things through.
Typical UNIX evolution. Things like Udev or Fontconfig XML files was the
result (not to forget the many different config file formats)
For compiled ruby to go one place and package manager ruby another???
This is the old design principle in Unix - if you can make it
complicated, why make it simple? Your package manager by default will
probably dominate the /usr hierarchy whereas your self compiled programs
should be default populate /usr/local (unless you have given --prefix).
Some distributions think that is not enough and populate /opt for
reasons unknown to mankind, and almost no distribution is applying
AppDirs/PackageDirs (what belongs to a program, belongs to the same
But wait a second! If you already decided to go on your own, i.e.
compile ruby from source, why not compile it into a specific directory?
I compile into /Programs/Ruby/Version and symlinks will then be used.
There may be nicer approaches, the best one would be to work without any
symlinks - but it worked for me since a long time and I like it. It is
simple and easy and I dont have the time nore knowledge to try something
more “beautifully” for now.
The unix way is a big mess and will never be fixed due to legacy
reasons. After all these years applications which you compile from
source will behave differently - i.e. not everyone uses GNU
autoconfigure, not everyone honours --prefix or some other important
The guy behind this surely has a career in investment banking
waiting for him somewhere.
The power of UNIX, as long as it works, it’s fine. And the more
a piece of software is, the more annoying these guys are
But it was more historic growth. Unix is a patchwork, it was never
designed with a grand vision in place. And Linus, as smart as he may be
and as brilliant the work he can pull off with the kernel and git, is
restricted to exactly this - the rest does not interest him that much.
And modular xorg was modern about 50 years ago…
I compiled my ruby from source because I was having some problems with
the package manager version.
Doesn’t it start all so often exactly like that
But then rubygems wouldn’t install. Kept insisting that
some libraries which WERE there were not. An expert I
had look at the mess couldn’t make sense of it.
I then installed rubygems from the package manager.
No problems. Except ruby cannot find the gems.
Well, all I know is that i think the whole rubygems situation should be
rethought. I compile rubygems from source but it all seems to bring up
stupid and wrong dependencies. Requires “rubyforge”, “hoe” and loads of
others. Rake refuses to compile it. If i copy setup.rb though and go via
the setup.rb route, THE INSTALLATION WORKS NICELY.
Myself, I dont need rubygems because I keep track of all the packages on
my own (as said, it is a lot of work in total, but when a version
changes, all I have to do is change a single line in my “database” and I
can compile it.)
I wish you the best luck to solve your problem!
Maybe it is better to stick to your package manager. I never managed and
I have entirely given up about it, but I often regret that I invest time
into something others get for “free” (provided that they learned about
it in the first place. I found package managers so insanely boring that
I am too lazy to learn and read boring man pages until I am “expert”)