将Ruby打包成便携式可执行文件

Aut*_*ico 14 ruby portability cross-platform

我一直试图找到一个很好的解决方案很长一段时间:

有没有一种可靠的方法将ruby安装到可在该平台上移植的文件夹中?我想要一个文件夹,我可以很容易地复制到我正在制作的发行版中,这样我就可以"随时随地"拥有一个红宝石环境.如果我需要编译源代码和东西,这很好,只要我最终安装了便携式ruby.

我找到了一些试图解决这个问题的资源,但没有一个能让我满意.

便携式Ruby on Rails环境

http://hcettech.blogspot.pt/2012/05/windows-portable-rails-development.html

对我来说,这是Ruby的一个主要痛点.如果在没有客户端首先安装Ruby的情况下无法使Ruby脚本工作,那么ruby在我的情况下基本上没有用.我真的希望我/我们可以解决这个问题,因此有可能让Ruby比现有的更有用.


注意:我知道像Releasy这样的东西存在,但它仍然不是一个简单的ruby可执行文件.

我的目标是能够创建一个带有.bat/.sh脚本的文件夹,它执行此操作:

#some bat/sh
./bin/ruby ./my_script.rb
Run Code Online (Sandbox Code Playgroud)

是的,如果我对此问题有所了解,请将我击倒,因为这对我来说是一种解脱.

Aut*_*ico 20

我对此感到厌倦,于是我决定自己解决这个问题.几天后我终于开始工作了.


我介绍:Ruby Ship

这正是我所需要的,希望其他人也能从中受益!

它非常简单:下载repo(因为二进制文件而非常大).把它放在USB驱动器上,或任何你想要的地方,然后执行:

path/to/ruby_ship/bin/ruby_ship.sh -v
=> ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
Run Code Online (Sandbox Code Playgroud)

这适用于linux和Mac,或者适用于Windows:

path\to\ruby_ship\bin\ruby_ship.bat -v
=> ruby 2.1.2p95 (2014-05-08 revision 45877) [i386-mswin32_100]
Run Code Online (Sandbox Code Playgroud)

ruby_ship包装器就像普通的ruby一样,所以你可以传入一个脚本,或者做任何你会使用普通ruby命令的东西.

如果您不喜欢Ruby Ship捆绑的版本,那么只需使用tools目录中的编译脚本即可.下载你最喜欢的Ruby版本的源代码,比如XYZ,然后执行以下操作:

# *nix (osx/linux/...)
path/to/ruby_ship/tools/ruby_ship_build.sh path/to/ruby-X.Y.Z.tar.gz

# windows
path\to\ruby_ship\tools\ruby_ship_build.bat path\to\ruby-X.Y.Z.tar.gz
Run Code Online (Sandbox Code Playgroud)

这将构建您的ruby风格并正确设置包装器.现在你的Ruby版XYZ是可移植的!复制将此文件夹粘贴到您想要的位置,您就可以开始了!但请记住,它只会针对您当前的平台进行编译,因此如果您需要其他平台,请在这些平台上进行编译.

编译过程有一些要求.看看github网站.

无论如何,希望其他人可能会觉得这很有用!如果事情不适合你,请提出问题,我会调查一下!

  • 这真是太棒了斯蒂芬!一直在为我建造的(并且想要分发)的红宝石项目寻找这个确切的东西 - 感谢把它放在一起(它完美地工作).我对待办事项清单上的事情有很多想法,但我会对Github发表评论.再次感谢. (2认同)