<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rainux's Journal &#187; Ruby Archives  &laquo; Rainux&#039;s Journal</title>
	<atom:link href="http://rainux.org/tag/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://rainux.org</link>
	<description>Rubyist of Vimmer</description>
	<lastBuildDate>Sat, 23 Jul 2011 12:09:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Exerb——将 Ruby 脚本转换成 Windows 下的可执行(.exe)文件！</title>
		<link>http://rainux.org/exerb%e2%80%94%e2%80%94%e5%b0%86-ruby-%e8%84%9a%e6%9c%ac%e8%bd%ac%e6%8d%a2%e6%88%90-windows-%e4%b8%8b%e7%9a%84%e5%8f%af%e6%89%a7%e8%a1%8cexe%e6%96%87%e4%bb%b6%ef%bc%81</link>
		<comments>http://rainux.org/exerb%e2%80%94%e2%80%94%e5%b0%86-ruby-%e8%84%9a%e6%9c%ac%e8%bd%ac%e6%8d%a2%e6%88%90-windows-%e4%b8%8b%e7%9a%84%e5%8f%af%e6%89%a7%e8%a1%8cexe%e6%96%87%e4%bb%b6%ef%bc%81#comments</comments>
		<pubDate>Thu, 04 Oct 2007 10:32:07 +0000</pubDate>
		<dc:creator>Rainux</dc:creator>
				<category><![CDATA[Programming 编程]]></category>
		<category><![CDATA[Programming_编程]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby GUI]]></category>

		<guid isPermaLink="false">http://www.rainux.org/2007/10/04/180</guid>
		<description><![CDATA[自从关注并使用 Ruby on Rails 以来，也对 Ruby 语言本身很感兴趣，并经常尝试用它写一些日常使用的小工具脚本。虽然自己使用很方便，但要分享给不用 Ruby 的朋友就比较麻烦了。 但是在 JavaEye 的某个帖子里知道 Exerb 后，事情就变得简单了。Exerb 是一个可以把 Ruby 脚本以及其依赖的 Ruby 扩展库转换成 Windows 下的单个的可独立运行的可执行文件的工具（这么长的一句话读起来是不是很有想扁我的冲动？:p），到 Exerb Project 的主页 下载安装包解开并执行里面的 setup.rb 即可完成安装。 用法也很简单，先执行 mkexy your_script.rb，让 mkexy 启动你的脚本并运行，这期间它会自动探测出 your_script.rb 所依赖的类库文件以及扩展库文件，并在 your_script.rb 结束运行后创建一份清单 your_script.exy，然后执行命令 exerb your_script.exy 即可生成 your_script.exe。OK，现在可以轻松地把你的 Ruby 脚本分享给朋友们了。(注1) 看到这里，也许你会跟我一样想，哇哈哈哈，有了这个工具，用 Ruby 来做 GUI 的小工具就变得有意义了啊。没错，对依赖 fxruby、wxruby 的 Ruby GUI 脚本也能正常的使用 Exerb 完成转换 [...]]]></description>
			<content:encoded><![CDATA[<p>自从关注并使用 Ruby on Rails 以来，也对 Ruby 语言本身很感兴趣，并经常尝试用它写一些日常使用的小工具脚本。虽然自己使用很方便，但要分享给不用 Ruby 的朋友就比较麻烦了。</p>

<p>但是在 <a href="http://www.javaeye.com">JavaEye</a> 的某个帖子里知道 Exerb 后，事情就变得简单了。Exerb 是一个可以把 Ruby 脚本以及其依赖的 Ruby 扩展库转换成 Windows 下的单个的可独立运行的可执行文件的工具（这么长的一句话读起来是不是很有想扁我的冲动？:p），到 <a href="http://exerb.sourceforge.jp/index.en.html">Exerb Project 的主页</a> 下载安装包解开并执行里面的 setup.rb 即可完成安装。</p>

<p>用法也很简单，先执行 <code>mkexy your_script.rb</code>，让 mkexy 启动你的脚本并运行，这期间它会自动探测出 <code>your_script.rb</code> 所依赖的类库文件以及扩展库文件，并在 <code>your_script.rb</code> 结束运行后创建一份清单 <code>your_script.exy</code>，然后执行命令 <code>exerb your_script.exy</code> 即可生成 <code>your_script.exe</code>。OK，现在可以轻松地把你的 Ruby 脚本分享给朋友们了。(注1)</p>

<p>看到这里，也许你会跟我一样想，哇哈哈哈，有了这个工具，用 Ruby 来做 GUI 的小工具就变得有意义了啊。没错，对依赖 fxruby、wxruby 的 Ruby GUI 脚本也能正常的使用 Exerb 完成转换 (注2) (注3)。但是，由于 Exerb 会把 fxruby/wxruby 的运行库嵌入到 .exe 文件里，生成的 .exe 文件都非常大，fxruby 的在 9MB 左右，wxruby 的 11MB 左右。对于一个功能简单的小工具来说，这个程度的体积显然是很多人不能接受的。</p>

<p>事实上，已经有了一个 GUI toolkit 运行库很小，<a href="http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html">VisualuRuby</a>，虽然它是 Windows Only 的，虽然它现在在 Vista 上还有点小问题。不过这又是另外一个话题了，我会在下一篇 blog 里继续聊。</p>

<p>注1: 在这之前也许你需要用 upx 压缩一下生成的 .exe 文件，因为它确实比较大，一个最简单的 Hello world 也有 1.4MB 左右。</p>

<p>注2: Tk/Gtk/FLTK 我没有试过，对 Tk 不感兴趣，Gtk 在 Windows 下的运行库太过庞大，FLTK 则是因为找到的 ruby-fltk 在 Windows 下的二进制发行版依赖的 Ruby 版本太老，源代码发行版还没来得及尝试自己编译。</p>

<p>注3: 对于 GUI 脚本，使用 <code>exerb -c gui your_script.exy</code> 可以避免生成的可执行文件运行时带有 Windows 命令行窗口。</p>

	标签：<a href="http://rainux.org/tag/programming_%e7%bc%96%e7%a8%8b/" title="Programming_编程" rel="tag">Programming_编程</a>, <a href="http://rainux.org/tag/ruby/" title="Ruby" rel="tag">Ruby</a>, <a href="http://rainux.org/tag/ruby-gui/" title="Ruby GUI" rel="tag">Ruby GUI</a><br />
]]></content:encoded>
			<wfw:commentRss>http://rainux.org/exerb%e2%80%94%e2%80%94%e5%b0%86-ruby-%e8%84%9a%e6%9c%ac%e8%bd%ac%e6%8d%a2%e6%88%90-windows-%e4%b8%8b%e7%9a%84%e5%8f%af%e6%89%a7%e8%a1%8cexe%e6%96%87%e4%bb%b6%ef%bc%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

