Ruby 1.8.4 on SUSE 10.0 howto


#1

All,

I just installed ruby 1.8.4 on my SUSE 10.0 box. It was slightly
convoluted so I thought I would post the solution here.

Once this runs for a day or so I will try upgrading my rails to 1.1

=== Ruby 1.8.4 on SUSE 10.0 Howto

I downloaded the src.rpm from
http://mirrors.kernel.org/opensuse/distribution/SL-OSS-factory/inst-source/suse/src/ruby-1.8.4-9.src.rpm

Then I installed it with “rpm -i ruby-1.8.4-9.src.rpm”

Then I went to /usr/src/packages/SPECS and made the below edits

diff ruby.spec.orig ruby.spec

28d27
< Patch2: ruby-1.8.4-no-eaccess.diff
181d179
< %patch2

I then compiled up the rpm via “rpmbuild -bb ruby.spec”

I then went to the /usr/src/packages/RPMS/i586 directory and installed
the all the various 1.8.4 rpms.

HTH
Greg


Greg F.
The Norcross Group
Forensics for the 21st Century


#2

Greg F. wrote:

Then I went to /usr/src/packages/SPECS and made the below edits

Could you explain why that was needed?


#3

On 4/4/06, David M. removed_email_address@domain.invalid wrote:

Greg F. wrote:

Then I went to /usr/src/packages/SPECS and made the below edits

Could you explain why that was needed?

I could not find a rpm specifically for SUSE 10.0, so I used the
.src.rpm from the SUSE 10.1 Beta and compiled from scratch.

When I tried to compile it with the standard SUSE 10.1 specfile I got
an linking error of “eaccess” not defined.

I found that the ruby source file “file.c” eaccess was defined, but
the definition was ifdef’ed out.

Surprisingly the ifdef was not in the basic source, but was being
inserted by a patch (ruby-1.8.4-no-eaccess.diff) that was invoked by
the spec file.

My spec file edit was to stop the offending patch from being applied.

Thus, when I did the compile the Ruby source had eaccess() defined and
it linked fine.

I can post the offending SUSE patch if you want, but I assume it works
fine with the SUSE 10.1 Beta.

Greg

Greg F.
The Norcross Group
Forensics for the 21st Century


#4

The other option, which I choose, is to just compile from source
(probably a better solution than using unsupported RPMs).

Bob S.
http://www.railtie.net/


#5

On 4/5/06, Robert S. removed_email_address@domain.invalid wrote:

The other option, which I choose, is to just compile from source
(probably a better solution than using unsupported RPMs).

Bob S.
http://www.railtie.net/

I would not call them unsupported. Just not supported for use
explicitly on SUSE 10.0

I got the source rpms I used from the SUSE factory (ie opensuse).
Although not part of the an official release, I believe they carry the
same validity as a typical Fedora rpm.

The issue I had was with an update of libc between the 5 month old
SUSE 10.0 and what is currently in the SUSE factory. In their latest
spec file SUSE apparently applies a patch to make the ruby source
compatible with their latest libc. Unfortunately, that same patch
broke compatibility with the older SUSE 10.0 libc.

So from that perspective, going with vanilla source was better. OTOH,
the SUSE spec file applies a few other patches to the ruby source. I
don’t know what they do, but as a SUSE user it feels safer to compile
source code that has been thru the SUSE QA and interoperability
testing.

Greg

Greg F.
The Norcross Group
Forensics for the 21st Century