[MacRuby-devel] macruby_deploy and nokogiri - LoadError on some mac

Laurent Sansonetti lsansonetti at apple.com
Wed May 18 15:40:09 PDT 2011


http://www.macruby.org/trac/ticket/1286

Laurent

On May 18, 2011, at 1:57 PM, Laurent Sansonetti wrote:

> Good catch!
> 
> It looks like we could improve macruby_deploy to warn (or die?) if of the embedded binaries link against something in /opt (or better, in anything but the default link paths). That would make sure this problem would not happen again.
> 
> Laurent
> 
> On May 18, 2011, at 9:06 AM, Eloy Duran wrote:
> 
>> Hi,
>> 
>> It seems that the nokogiri gem that you are bundling has been compiled against a iconv installation in /opt/local (macports|homebrew). Some users probably have it as well which is why they wouldn't complain, but people with a default osx installation don't. Here's what it does on my system, which uses only default system libs:
>> 
>> % otool -L /Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems/nokogiri-1.4.4/ext/nokogiri/nokogiri.bundle
>> /Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/ruby/Gems/1.9.2/gems/nokogiri-1.4.4/ext/nokogiri/nokogiri.bundle:
>> 	/Library/Frameworks/MacRuby.framework/Versions/0.11/usr/lib/libmacruby.dylib (compatibility version 0.11.0, current version 0.11.0)
>> 	/usr/lib/libexslt.0.dylib (compatibility version 9.0.0, current version 9.13.0)
>> 	/usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.24.0)
>> 	/usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.3.0)
>> 	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
>> 	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.10)
>> 
>> As you can see, it references /usr/lib/libiconv.2.dylib, not /opt/local/lib/libiconv.2.dylib. So it's probably best to only compile against system versions.
>> 
>> To make sure this doesn't happen in the future, you should always test your app on clean installs of the system. It's pretty easy to keep a spare HD around with multiple version installs from which you boot and test the whole process.
>> 
>> HTH
>> 
>> On 18 mei 2011, at 17:24, Francis Chong wrote:
>> 
>>> Hi
>>> 
>>> I tried to use macruby_deploy to embed my macruby based mac app with gems (/usr/local/bin/macruby_deploy --compile --embed --gem nokogiri)
>>> 
>>> The resulting app run fine on my machine. However, on many of our testers, the app failed with "LoadError". It seems nokogiri depends on a libiconv with different version. (nokogiri.bundle requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0)
>>> 
>>> We cant ask our user to install each of those library. Are there any way I can build the app embed the correct version of libiconv?
>>> 
>>> Logs:
>>> 
>>> dlopen(/Applications/ChineseIdiom.app/Contents/Frameworks/MacRuby.framework/Versions/0.10/usr/lib/ruby/site_ruby/1.9.2/nokogiri/nokogiri.bundle, 9): Library not loaded: /opt/local/lib/libiconv.2.dylib
>>> 18/05/2011 10:44:53 PM	[0x0-0x157b57a].hk.ignition.mac.ChineseIdiom[1576]	  Referenced from: /Applications/ChineseIdiom.app/Contents/Frameworks/MacRuby.framework/Versions/0.10/usr/lib/ruby/site_ruby/1.9.2/nokogiri/nokogiri.bundle
>>> 18/05/2011 10:44:53 PM	[0x0-0x157b57a].hk.ignition.mac.ChineseIdiom[1576]	  Reason: Incompatible library version: nokogiri.bundle requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 - /Applications/ChineseIdiom.app/Contents/Frameworks/MacRuby.framework/Versions/0.10/usr/lib/ruby/site_ruby/1.9.2/nokogiri/nokogiri.bundle (LoadError)
>>> 18/05/2011 10:44:53 PM	[0x0-0x157b57a].hk.ignition.mac.ChineseIdiom[1576]		from /Applications/ChineseIdiom.app/Contents/Resources/rb_main.rb:20:in `<main>'
>>> 18/05/2011 10:44:53 PM	com.apple.launchd.peruser.501[191]	([0x0-0x157b57a].hk.ignition.mac.ChineseIdiom[1576]) Exited with exit code: 1
>>> 
>>> Thanks
>>> 
>>> Francis Chong
>>> Ignition Soft
>>> http://ignition.hk
>>> _______________________________________________
>>> MacRuby-devel mailing list
>>> MacRuby-devel at lists.macosforge.org
>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>> 
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
> 
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



More information about the MacRuby-devel mailing list