【问题标题】:Create a ruby executable with wxruby for linux使用 wxruby for linux 创建一个 ruby​​ 可执行文件
【发布时间】:2011-12-06 23:44:18
【问题描述】:

我想分发一个使用 ruby​​ 和 wxruby 构建的应用程序,但我无法生成一个可执行文件,尝试使用 ocra 、 AllInOneRuby 但仅 Windows 支持并尝试使用 ruby​​script2exe,但有很多错误并且无法运行。

[编辑]

首先我得到了 ruby​​script2exe rubyscript2exe:5:in replace': 无法修改冻结字符串 (TypeError) 但我有一个解决方案

后来我得到了 require':Gem:Module 的未定义方法 `unresolved_deps'

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:35:in `require': undefined method `unresolved_deps' for Gem:Module (NoMethodError)
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:28
Couldn't execute this command (rc=256):
/usr/bin/ruby -r 'enumerator.so' -r 'rubygems/defaults.rb' -r 'rbconfig.rb' -r 'rubygems/deprecate.rb' -r 'rubygems/exceptions.rb' -r 'rubygems/custom_require.rb' -r 'rubygems.rb' -r 'rubygems/version.rb' -r 'rubygems/requirement.rb' -r 'rubygems/dependency.rb' -r 'rubygems/platform.rb' -r 'rubygems/specification.rb' -r 'rubygems/path_support.rb' -I '/tmp/tar2rubyscript.d.3642.1/rubyscript2exe' -I '/tmp/tar2rubyscript.d.3642.1' -I '/usr/lib64/ruby/gems/1.8/gems/rubyscript2exe-0.5.3/lib' -I '/usr/lib/ruby/site_ruby/1.8' -I '/usr/lib64/ruby/site_ruby/1.8' -I '/usr/lib64/ruby/site_ruby/1.8/x86_64-linux' -I '/usr/lib/ruby/site_ruby' -I '/usr/lib64/ruby/site_ruby' -I '/usr/lib64/site_ruby/1.8' -I '/usr/lib64/site_ruby/1.8/x86_64-linux' -I '/usr/lib64/site_ruby' -I '/usr/lib/ruby/1.8' -I '/usr/lib64/ruby/1.8' -I '/usr/lib64/ruby/1.8/x86_64-linux' -I '.' -I '/home/richie' -I '/tmp/tar2rubyscript.d.3642.1/rubyscript2exe' -I '/tmp/tar2rubyscript.d.3642.1/rubyscript2exe/lib' -I '/tmp/tar2rubyscript.d.3642.1/rubyscript2exe' -I '/tmp/tar2rubyscript.d.3642.1/rubyscript2exe/lib' -r '/tmp/tar2rubyscript.d.3642.1/rubyscript2exe/require2lib.rb' 'Dropbox/15M/src/q.rb'  --require2lib-quiet 

已停止。

使用 ruby​​ 1.8.7

有什么帮助吗?

【问题讨论】:

  • 什么错误?上下文很有帮助。
  • ruby 1.8.7 和 ruby​​gems 1.7.2
  • 你能发布整个堆栈跟踪吗?
  • 嗯,那个项目已经过时两年多了。您可能需要对项目进行一些更改才能使其正常运行。
  • 编辑我的帖子并输入我的输出

标签: ruby linux executable wxruby


【解决方案1】:

更新:这可能行不通,因为 wxruby gem 可能使用二进制“扩展”,这取决于平台,因此在 Jruby 中可能不容易工作......试试看

您可以使用 Jruby + warbler gem 尝试以下解决方法 - 它可以将您的 ruby​​ 程序打包成一个可移植的 JAR (java) 文件,然后您可以复制并在其他安装了 Java 的计算机上运行(只有 java,ruby 会已经打包在 .jar 文件中了 :) )

几个月前我为自己做了一些笔记——它们对于所涉及的步骤应该足够了:

1- 安装 jruby

  • http://jruby.org/
  • 应该像下载 zip 文件、解压缩、设置环境变量并执行它一样简单(一切都在他们的网站上进行了解释,非常简单)

2- 安装莺 gem

jruby -S gem install warbler

3- 放置您的 .rb 文件以使用 warbler 进行编译/打包

(请参阅此 StackOverflow 线程:Create deployable JRuby JAR file?

mkdir myapp  
mkdir myapp/bin
vim   myapp/bin/myapp.rb  #create .rb file which will be 'booted' (executed) by jar file
mkdir myapp/lib
vim   myapp/lib/my_nice_lib.rb #leave all .rb files to be 'require'd here 
cd myapp  

4-使用warbler编译/打包成myapp.jar

warble jar

5- 在任何带有 java 的计算机上运行 myapp.jar,使用:

java -jar myapp.jar

希望它有所帮助 - 报告进展情况

干杯

【讨论】:

  • 我尝试使用 jruby 和 warbler :),例如工作正常,warbler 生成一个 .jar :),但我对 jruby 的 wxruby 有问题。 gem install wxruby 说找不到,但我可以用gem install wxruby --platform x86_64-linux 安装,但我得到了这个pastebin
  • 听起来 wxruby 不会那么容易与 jruby 一起工作,因为扩展...这将迫使你越来越多地进入 java 领域......
猜你喜欢
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
  • 2014-07-03
  • 2010-10-23
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
相关资源
最近更新 更多