From: Michal Suchanek Date: 2011-01-08T20:43:34+09:00 Subject: Re: ripl - an irb alternative - 0.3.0 released On 8 January 2011 06:10, ghorner wrote: > On Jan 7, 5:18 am, Michal Suchanek wrote: >> On 7 January 2011 10:55, ghorner wrote: >> >> > On Jan 7, 3:37 am, Michal Suchanek wrote: >> >> On 7 January 2011 03:10, ghorner wrote: >> >> >> > On Jan 6, 4:19 am, Michal Suchanek wrote: >> >> >> On 6 January 2011 02:10, ghorner wrote: >> >> >> >> > On Jan 5, 10:55 am, Michal Suchanek wrote: >> >> >> >> Hello >> >> >> >> >> There is a serious issue with ripl. >> >> >> >> >> $ ripl >> >> >> >> Bond Error: Failed to load readline_line_buffer. Ensure that it exists >> >> >> >> and was built correctly. >> >> >> >> > For ruby < 1.9.2, you'll need to have readline installed. I'm >> >> >> > surprised your install reported no errors. Can you reinstall? >> >> >> >> I installed on another machine and do not get the error. >> >> >> > If your install is building the readline_line_buffer extension >> >> > correctly, then the problem must be you can't find it. What does the >> >> > following command give you? >> >> >> >   find $(dirname $(gem which bond)) | grep readline_line_buffer >> >> >> > You should get the path of the extension. Try requiring that path >> >> > after requiring ripl. >> >> >> Apparently bond requires readline development files but does not >> >> report an error when they are not present. >> >> > It reports a missing readline.h: >> >https://github.com/cldwalker/bond/blob/master/ext/readline_line_buffe... >> > What development files are you missing? >> >> > Did you see an extension built with the above command? If not, >> > debian's quirks with executables make it suspect for this as well. >> >> I am running Debian so I need the libreadline5-dev package to get the >> libreadline.so and readline headers. >> >> The gem installs both with and without this package installed (the >> versioned readline shared library is always installed as dependecy of >> many packages). >> > > Unfortunately, none of this helps but to illustrate what you've > already said. If 5.2 is the readline version you're using, you should > consider upgrading. I'm on readline 6.1 and have only used bond with > readline >= 5.6. > > What would help is to know what you get back from `find $(dirname $ > (gem which bond)) | grep readline_line_buffer` . Your response didn't > mention what you got back. If you did get back a file, then try the > following install with appropriate paths for your readline: > >     gem install bond -- --with-readline-lib=/path/to/your/lib --with- > readline-include=/path/to/your/include > > If you didn't get back a file, then I probably can't help because > debian is possibly placing it outside the gem's directory. As expected /var/lib/gems/1.8/gems/bond-0.3.5/lib/readline_line_buffer.so is present only in the case when libreadline5-dev was present while installing the bond gem. However, there is no difference in the dem install output. So bond does not report any error to the user when the library is not found, and it finds it just fine when it is installed. Searching for the file does no help but to illustrate what I have already seen. Bond silently installs broken extension when readline development files are not present. Perhaps you should fail the build when readline is not available but the Ruby interpreter does not provide it or you should print the message to standard error rather than standard ouput. Thanks Michal