Project

General

Profile

Bug #9312

Build the ruby executable in bin/

Added by postmodern (Hal Brodigan) about 6 years ago. Updated about 1 month ago.

Status:
Rejected
Priority:
Normal
Target version:
-
ruby -v:
trunk
Backport:
[ruby-core:59349]

Description

In order to allow Ruby Switchers to directly use a Ruby that is built but not installed (such as trunk or a branch), the ruby executable should be placed in the bin/ directory.

History

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

  • Status changed from Open to Feedback

make ruunable may help you?

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

Sorry, runnable.

Updated by postmodern (Hal Brodigan) about 6 years ago

Test on trunk (r44467)

$ ./configure
$ make
$ make runnable
make: *** No rule to make target un-runnable', needed byrunnable'. Stop.

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

To make relocatable, configure needs --enable-shared and --enable-load-relative.

#5

Updated by postmodern (Hal Brodigan) about 6 years ago

$ ./configure --enable-shared --enable-load-relative
$ make
...
making enc
make[1]: Entering directory `/vault/0/src/ruby/trunk'
linking encoding encdb.so
/usr/bin/ld: cannot find -l-lpthread
collect2: error: ld returned 1 exit status

Updated by postmodern (Hal Brodigan) about 6 years ago

Running make runnable appears to add a bin/goruby hardlink to ../goruby.

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

mkrunnable.rb creates symlinks only.

Updated by postmodern (Hal Brodigan) almost 6 years ago

After updated again, I see that make runnable created a bin/ruby symlink. However, --enable-shared requires that LD_LIBRARY_PATH=./lib/ is set. Also, bin/ruby cannot find core libraries such as 'thread'.

Updated by nobu (Nobuyoshi Nakada) almost 6 years ago

What's your platform?

Updated by postmodern (Hal Brodigan) almost 6 years ago

Fedora Linux 19 x86-64

Updated by mame (Yusuke Endoh) about 1 month ago

  • Backport deleted (1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN)
  • Status changed from Feedback to Rejected

Closing as it is not a bug.

A ruby binary that is built but not installed is half-baked. It is very hacky to run it without installation; it requires setting library paths, GEM_HOME, etc and etc. In the build process, the half-baked ruby binary is invoked with this script: https://github.com/ruby/ruby/blob/master/tool/runruby.rb

So I guess that just putting bin/ruby does not solve the issue. And, as far as I know, rbenv works well without this feature, so I'm unsure if it is really needed.

Updated by nobu (Nobuyoshi Nakada) about 1 month ago

Note that make runnable makes links in bin/, which might be able to run if configured with --enable-load-relative option.

Also available in: Atom PDF