Shoes:安装与使用

  <span style="font-family:georgia,serif;">Ruby</span>的<span style="font-family:georgia,serif;">GUI</span>工具套件的确不少,诸<span style="font-family:georgia,serif;">如<a href="http://rubyforge.org/projects/wxruby">wxRuby</a></span>,<span style="font-family:georgia,serif;"><a href="http://rubylearning.com/satishtalim/ruby_tk_tutorial.html">Tcl/Tk for Ruby</a></span>,<span style="font-family:georgia,serif;"><a href="http://ruby-gnome.sourceforge.net/tutorial/">Gtk for Ruby</a></span>,我们还需要另外的<span style="font-family:georgia,serif;">Toolkit</span>吗?对!<a href="https://github.com/shoes/shoes"><span style="font-family:georgia,serif;">Shoes</span></a>就是这样的工具,她会充分让你领略<span style="font-family:georgia,serif;">Ruby</span>的性感与优雅。一旦你用过她以后,你就会发现,你已经深深的爱上了她!

Ruby On Shoes?

<img alt="" src="/user_files/deathking/Image/220px-Whytheluckystiff.jpg" style="margin-left: 5px; margin-right: 5px; margin-top: 3px; margin-bottom: 3px; float: left; width: 220px; height: 204px; ">  其实这个是我借用<span style="font-family:georgia,serif;"><a href="http://rubyonrails.org/">Ruby On Rails</a></span>的说法,只是为了突出<span style="font-family:georgia,serif;">Shoes</span>对于<span style="font-family:georgia,serif;">Ruby</span>的重要意义:穿着跑鞋的红宝石!此处不得不提及,<span style="font-family:georgia,serif;">Shoes</span>的发起者是<span style="font-family:georgia,serif;">Ruby</span>社区的传说级人物<span style="font-family:georgia,serif;">_why</span>。


  对,就是他。<a href="http://mislav.uniqpath.com/poignant-guide/"><span style="font-family:georgia,serif;">Why's (poignant) Guide to Ruby</span></a>的作者,<span style="font-family:georgia,serif;"><a href="http://en.wikipedia.org/wiki/Why_the_lucky_stiff">why the lucky stiff</a></span>。早期他发起了一项叫做<span style="font-family:georgia,serif;"><a href="http://en.wikipedia.org/wiki/Hackety_Hack">Hackety Hack</a></span>的项目,旨在使得那些编程初学者更加容易上手。然后,<span style="font-family:georgia,serif;">_why</span>着手开发了很多项目,比如<span style="font-family:georgia,serif;"><a href="https://github.com/hacketyhack/hacketyhack">Hackety Hack</a></span>应用,<span style="font-family:georgia,serif;"><a href="https://github.com/Sophrinix/TryRuby">TruRuby</a></span>,以及<span style="font-family:georgia,serif;">Shoes</span>等。后来,<a href="http://www.h-online.com/open/news/item/why-the-lucky-stiff-Vanishes-743021.html">这位传说级的人物真的成了传说</a>:<span style="font-family:georgia,serif;">09</span>年<span style="font-family:georgia,serif;">8</span>月<span style="font-family:georgia,serif;">19</span>日,<span style="font-family:georgia,serif;">_why</span>关掉了自己的<span style="font-family:georgia,serif;">Twitter</span>和<span style="font-family:georgia,serif;">GitHub</span>账户,以及众多与他相关的网站。从此以后,销声匿迹,称为了一个永久的传说。


  然而,这位大神的努力被<span style="font-family:georgia,serif;">Ruby</span>社区最大化的保留了下来,并且,有很多有志之士参与了这些项目的维护,<span style="font-family:georgia,serif;">Shoes</span>也可喜的进入到了<span style="font-family:georgia,serif;">3.1 Beta</span>。不得不说,在今天,这些东西依旧是那些红宝石发掘者的引路明灯!


 

一些例子

  说得天花乱缀?不如让我用几个<span style="font-family:georgia,serif;">Shoes</span>应用来展示给你看!

  <span style="font-family:georgia,serif;">Kevin Conner</span>编写的<span style="font-family:courier new,courier,monospace;">Tankspank</span>应用,仅仅用了<span style="font-family:georgia,serif;">385</span>行代码。

  你也可以写一个计算器程序,对,真的很容易。

  

  来一场激动人心的人机乒乓球比赛吧,我们只用了<span style="font-family:georgia,serif;">62</span>行代码!哦,这一切的一切太振奋人心了,让我们快些穿上鞋子吧!


 

穿上鞋子!

  事实上,<span style="font-family:georgia,serif;">Shoes</span>是一个跨平台的<span style="font-family:georgia,serif;">GUI</span>开发套件,你可以在<span style="font-family:georgia,serif;">Linux</span>、<span style="font-family:georgia,serif;">Windows</span>以及<span style="font-family:georgia,serif;">Mac OSX</span>上安装她。而我们这里,将介绍如何将<span style="font-family:georgia,serif;">Shoes</span>安装到<span style="font-family:georgia,serif;">Ubuntu 11.04</span>中。对于其他系统的读者,可以按照以下条目参考:

我们不推荐使用sudo apt-get install shoes来安装shoes,至少在写这篇文章时,利用这个软件包安装的shoes还是基于Ruby 1.8的。当然,已经有人抱怨这个问题了,让我们来敦促并期待软件包的更新吧!

  首先,你需要安装下面的依赖:
# 安装依赖
sudo apt-get install git-core libcairo2-dev libpixman-1-dev libpango1.0-dev libgif-dev libjpeg-dev libgtk2.0-dev vlc libvlc-dev portaudio19-dev libsqlite3-dev libcurl4-openssl-dev libxslt1-dev makeself curl
  接着,鉴于<span style="font-family:georgia,serif;">shoes</span>是基于<span style="font-family:georgia,serif;">Ruby 1.9.2</span>的,你应该先安装<span style="font-family:georgia,serif;">Ruby 1.9.2</span>。推荐使用<span style="font-family:georgia,serif;">RVM</span>安装<span style="font-family:georgia,serif;">Ruby 1.9.2-p290</span>,更详细的安装方法可以参考<a href="http://deathking.is-programmer.com/posts/28150.html">这里</a>。
# 安装 Ruby1.9.2 和 Gems
rvm install 1.9.2
rvm use 1.9.2
gem install bundler
  <span style="font-family:georgia,serif;">Ubuntu 11.04</span>以后的版本使用了一些针对性架构的目录,你应该先修正这些问题:
# 32位Ubuntu 11.04、11.10系统需要执行
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
sudo ln -s /usr/lib/i386-linux-gnu/libsqlite3.so /usr/lib/libsqlite3.so
# 32位Ubuntu 11.10系统还需要额外执行
sudo ln -s /usr/lib/i386-linux-gnu/libcurl.so /usr/lib/libcurl.so
sudo ln -s /usr/lib/i386-linux-gnu/libssl.so /usr/lib/libssl.so.0.9.8
  如果你是使用的<span style="font-family:georgia,serif;">64</span>位系统,那么需要按照下面的方法行事:
# 64位Ubuntu 11.04、11.10系统需要执行
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so 
sudo ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so /usr/lib/libsqlite3.so
# 64位Ubuntu 11.10系统还需要额外执行
sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl.so /usr/lib/libjpeg.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/libssl.so.0.9.8
  我们假定是将<span style="font-family:georgia,serif;">shoes</span>的代码存放在<span style="font-family:courier new,courier,monospace;">$(SHOES_DIR)</span>中,读者可以自行替换其值。
git clone git://github.com/shoes/shoes.git ${SHOES_DIR}
cd ${SHOES_DIR}
rvm use 1.9.2
bundle install
rake
  如果一切无误的话,安装就完成了!

值得注意的一点是,shoes中包含了一个.rvmrc文件。切换到这个文件夹的时候,RVM会询问你是否信任且允许加载此rvmrc文件。总之,请选择是就行了。

 

如何使用?

  整个<span style="font-family:courier new,courier,monospace;">rake</span>的过程,是进行编译相关工具的过程。<span style="font-family:courier new,courier,monospace;">rake</span>一结束,<span style="font-family:georgia,serif;">shoes</span>便创建了一个名为<span style="font-family:courier new,courier,monospace;">dist</span>的文件夹。<span style="font-family:georgia,serif;">shoes</span>的主程序等就放在其中。而一些示范则放在<span style="font-family:courier new,courier,monospace;">$(SHOES_DIR)/sample</span>中。下面的命令将会调用<span style="font-family:georgia,serif;">shoes</span>中的扫雷游戏。(此处的<span style="font-family:courier new,courier,monospace;">$(SHOES_DIR)</span>并不是一个环境变量,故请读者在执行时自行替换为<span style="font-family:georgia,serif;">shoes</span>的安装目录。)
cd $(SHOES_DIR)
dist/shoes sample/expert-minesweeper.rb
  当然,我们可以在<span style="font-family:courier new,courier,monospace;">/usr/local/bin</span>目录下创立一个符号链接,这无伤大雅。


 
sudo ln -s $(SHOES_DIR) /usr/local/bin
  如果单独调用<span style="font-family:georgia,serif;">shoes</span>的话,就会显示<span style="font-family:georgia,serif;">shoes</span>的主界面,里面提供了打开<span style="font-family:georgia,serif;">shoes</span>应用、打包<span style="font-family:georgia,serif;">shoes</span>应用和打开手册三项功能。

  不得不说,<span style="font-family:georgia,serif;">shoes</span>提供的<span style="font-family:georgia,serif;">Sample</span>还是挺多的。


你是不是很想写一个自己的<span style="font-family:georgia,serif;">Shoes App</span>了呢?别急,在后面的文章里,我们将讨论如何构建自己的<span style="font-family:georgia,serif;">App</span>,以及发行。