From: Jon Date: 2011-11-06T02:06:56+09:00 Subject: [ruby-core:40757] Re: ruby binary dependencies --f46d042dff2d268ff704b0ffd943 Content-Type: text/plain; charset=ISO-8859-1 > This is a rather basic question- but for a standard compile of the ruby > binary what external "dependencies" does it have? Is there some sort of > associated gems directory? As background, for 1.9.3-p0 from the RubyInstaller project we provide the following dependencies for Windows users: * libyaml * libffi * openssl * libgdbm * libiconv * libz * pdcurses * tcl/tk * rb-readline (pure Ruby readline) But depending up how you're using MRI, not all of these are currently required. In fact, you can successfully build a minimal MRI with none of those dependencies. The current build process will try to configure core extensions (fiddle, psych, tk, etc) to use the dependencies but will _not_ fail the build if those dependencies aren't found. For example, even though you may not have `libyaml`, the build will try to configure `psych`, warn that it can't, and complete. When you run the built MRI, you'll most likely get a runtime warning saying you need to install `libyaml`. However, you can (currently) still process YAML using the unmaintained (IIRC) built-in `syck` library that was built as part of the minimal build. I'm not sure how much longer this will continue to be true. To answer your question, try a minimal build using something like the following and watch the build messages as the process tries to configure and build extensions: ./configure --enable-shared --disable-install-doc && make Jon --- http://thecodeshop.github.com | http://jonforums.github.com/ twitter: @jonforums --f46d042dff2d268ff704b0ffd943 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable =A0> This is a rather basic question- but for a standard compile of the = ruby
> binary what external "dependen= cies" does it have? Is there some sort of
> associated gems dire= ctory?

As background, for 1.9.3-p0 from the RubyInstaller project we provide t= he following dependencies for Windows users:

=A0 * libyaml
=A0 * = libffi
=A0 * openssl
=A0 * libgdbm
=A0 * libiconv
=A0 * libz=A0 * pdcurses
=A0 * tcl/tk
=A0 * rb-readline (pure Ruby readline)

But depending= up how you're using MRI, not all of these are currently required.
<= br>In fact, you can successfully build a minimal MRI with none of those dep= endencies. The current build process will try to configure core extensions = (fiddle, psych, tk, etc) to use the dependencies but will _not_ fail the bu= ild if those dependencies aren't found.

For example, even though you may not have `libyaml`, the build will try= to configure `psych`, warn that it can't, and complete. When you run t= he built MRI, you'll most likely get a runtime warning saying you need = to install `libyaml`. However, you can (currently) still process YAML using= the unmaintained (IIRC) built-in `syck` library that was built as part of = the minimal build. I'm not sure how much longer this will continue to b= e true.

To answer your question, try a minimal build using something like the f= ollowing and watch the build messages as the process tries to configure and= build extensions:

=A0 ./configure --enable-shared --disable-install= -doc && make

Jon

---
http://thec= odeshop.github.com | http://jo= nforums.github.com/
twitter: @jonforums
--f46d042dff2d268ff704b0ffd943--