Forum: Ruby-core What's the *right* way to build Ruby from source on a Linux system that doesn't yet have Ruby?

Posted by Paul Sherwood (Guest)
on 2013-02-23 13:40
(Received via mailing list)
We'd like to add Ruby support in a clean Linux environment which has
GCC, autotools etc.

It seems the default configuration assumes Ruby already exists, ie you
need Ruby to build Ruby. I've seen some comments about needing to build
1.8.* first, then 1.9, but that seems strange.

Please could someone recommend how to do this cleanly with minimum
deviation from ruby mainline?

Thanks!
Paul
Posted by Luis Lavena (luislavena)
on 2013-02-23 14:17
(Received via mailing list)
On Sat, Feb 23, 2013 at 9:38 AM, Paul Sherwood
<paul.sherwood@codethink.co.uk> wrote:
> We'd like to add Ruby support in a clean Linux environment which has
> GCC, autotools etc.
>
> It seems the default configuration assumes Ruby already exists, ie you
> need Ruby to build Ruby. I've seen some comments about needing to build
> 1.8.* first, then 1.9, but that seems strange.
>
> Please could someone recommend how to do this cleanly with minimum
> deviation from ruby mainline?
>

To build without a base ruby, you need to use either the nightly
snapshots or the released .tar.gz packages (at this time rc1 and rc2
for 2.0), those packages do not require a previous Ruby to be
installed.

I haven't done this in years, but should be accurate. If not, that
might indicate a bug in the packaging process.

Hope that helps.
Posted by Paul Sherwood (Guest)
on 2013-02-23 17:25
(Received via mailing list)
On 23/02/2013 13:16, Luis Lavena wrote:
>> deviation from ruby mainline?
>>
>
> To build without a base ruby, you need to use either the nightly
> snapshots or the released .tar.gz packages (at this time rc1 and rc2
> for 2.0), those packages do not require a previous Ruby to be
> installed.
>
> I haven't done this in years, but should be accurate. If not, that
> might indicate a bug in the packaging process.

Thanks, Luis. I tried what you suggested, using the current stable
snapshot. The initial configuration is fine, but make fails.

uncommon.mk has several recipes that assume the existence of
$(BASERUBY). The error I see is as follows:

/src/tmp/tmpprr1N4/ruby-tarball.build # make
  CC = gcc
  LD = ld
  LDSHARED =
  CFLAGS =
  XCFLAGS = -include ruby/config.h -include ruby/missing.h
-fvisibility=hidden -DRUBY_EXPORT
  CPPFLAGS =   -I. -I.ext/include/x86_64-linux -I./include -I.
  DLDFLAGS =
  SOLIBS =
generating miniprelude.c
executable host ruby is required. use --with-baseruby option.
uncommon.mk:837: recipe for target `miniprelude.c' failed
make: *** [miniprelude.c] Error 1

br
Paul
Posted by Paul Sherwood (Guest)
on 2013-02-23 22:41
(Received via mailing list)
> On 23/02/2013 13:16, Luis Lavena wrote:
>> To build without a base ruby, you need to use either the nightly
>> snapshots or the released .tar.gz packages (at this time rc1 and rc2
>> for 2.0), those packages do not require a previous Ruby to be
>> installed.
>>
>> I haven't done this in years, but should be accurate. If not, that
>> might indicate a bug in the packaging process.

Re-reading Luis' email he recommended using nightly snapshots rather
than stable. I've tried that, but get the same error result. It seems
this has been raised and fixed previously...

http://www.ruby-forum.com/topic/206642

As noted by the last poster there, "make miniruby" fails with the same
error for me.

br
Paul
Posted by Paul Sherwood (Guest)
on 2013-02-24 13:54
(Received via mailing list)
On 23/02/2013 21:40, Paul Sherwood wrote:
> than stable. I've tried that, but get the same error result. It seems
And for completeness, I've tried the ruby-2.0.0-p0.tar.gz, which also
fails. So is this actually a bug?
Posted by Luis Lavena (luislavena)
on 2013-02-24 13:59
(Received via mailing list)
On Sun, Feb 24, 2013 at 9:54 AM, Paul Sherwood
<paul.sherwood@codethink.co.uk> wrote:
>
> And for completeness, I've tried the ruby-2.0.0-p0.tar.gz, which also
> fails. So is this actually a bug?
>

Seems so, please open a bug report:

http://bugs.ruby-lang.org/
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.