Hi, I write experimental ruby_select for ruby186 and ruby18.
http://trac.macports.org/browser/users/kimuraw/ruby_select == install destinations * different name for ruby bundled commands and libraries * share library and document directory for additional libraries this allows to activate both of ruby186 and ruby18. dir,file 1.8.6(ruby186) 1.8.7(ruby18) ------------------------------------------------------------ bin/ruby bin/ruby186 bin/ruby18 bin/irb bin/irb186 bin/irb18 : libdir lib/ruby/1.8.6/ lib/ruby/1.8.7/ sitedir lib/ruby/site_ruby/1.8/ (share) vendordir lib/ruby/vendor_ruby/1.8/ (share) libruby.so libruby186.dylib libruby18.dylib ri sysdir share/ri/1.8/system1.8.6/ share/ri/1.8/system1.8.7/ ri sitedir share/ri/1.8/site/ (share) ------------------------------------------------------------ macports' vendor-specific.rb and site-specific.rb are moved to lidir from vendordir and sitedir to avoid conflicts. == ruby_select sysutils/ruby_select uses same tool as port:python_select or port:gcc_selct. % sudo ruby_select ruby18 Selecting version "ruby18" for ruby % ls -l /opt/local/bin/ruby lrwxr-xr-x 1 root admin 21 Apr 18 21:03 /opt/local/bin/ruby@ -> /opt/local/bin/ruby18 % sudo ruby_select ruby186 Selecting version "ruby186" for ruby % ls -l /opt/local/bin/ruby lrwxr-xr-x 1 root admin 22 Apr 18 21:06 /opt/local/bin/ruby@ -> /opt/local/bin/ruby186 the following files are targets of ruby_select. * bin/ ruby, erb, irb, rdoc, ri, testrb * lib/ libruby.dylib, libruby-static.a ruby_select make symlinks the above files at post-activate. then, install ruby_select means existence of ${prefix}/bin/ruby (without suffix). I expect this port become a meta port port:ruby. == linking libruby ruby_select introduce libruby.dylib. this file is a symbolic link for libruby186.dylib or libruby18.dylib. and, vendor-specific.rb changes LIBRUBYARG and so on. % ruby -rrbconfig -e 'p Config::CONFIG["LIBRUBYARG"]' "-lruby18" % ruby -rvendor-specific -rrbconfig -e 'p Config::CONFIG["LIBRUBYARG"]' "-lruby" so, port:rb-* links libruby.dylib and extension modules (.bundle) use ruby_select-ed libruby. this implementation is not enough. please tell me your thoughts. -- kimura wataru _______________________________________________ macports-dev mailing list [email protected] http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev
