问题标签 [ocra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
446 浏览

ruby - 将 RMagick 与 Ocra 捆绑在一起

我正在尝试使用 Ocra 创建 Ruby 脚本的可移植版本。该脚本取决于rmagick还需要安装 ImageMagick。

生成的可执行文件可以在我的计算机上运行,​​但在其他所有计算机上都会失败,除非最终用户手动安装 ImageMagick。我想创建一个完全可移植的 EXE 文件,它可以在任何 Windows 系统上运行,并且不需要最终用户手动安装 ImageMagick。

有没有办法强制 Ocra 也将 ImageMagick DLL 文件捆绑到 EXE 中?如果没有,您如何创建需要的可移植 Ruby 脚本rmagick

我根本不精通Ruby,因此将不胜感激。

0 投票
1 回答
153 浏览

ruby - 如何让 ocra 应用程序被防病毒软件接受

好吧,从标题来看(如果你练习 Ruby),你应该知道 Ocra 是什么。如果你不这样做,这里有一个简短的解释:

Ocra 是一个添加到命令提示符的命令,用于将 ruby​​ 程序转换为可执行文件。所以.rb 到.exe。

为了将 ruby​​ 程序转换为可执行文件,他们将在命令提示符下键入:

然后 ocra 将运行该程序,完成后,它会运行一些脚本来完成该程序。然后,该程序的可执行版本将与原始 ruby​​ 版本位于同一目录中并具有相同的名称。

所以最近我注意到我的防病毒软件正在从我的计算机中删除该程序,告诉我它是猎犬。它变得非常烦人,我已经厌倦了一遍又一遍地使用 ocra 来重新制作一个程序。

我有两个防病毒软件:McAffee 和 Symnatec;所以这意味着安全性加倍。我可以更改什么以使我的防病毒软件忽略该程序?

0 投票
1 回答
1474 浏览

ruby - How to create a Ruby executable using ocra or rubyscript2exe gems but including needed Excel files?

I have a dozen of selenium webdriver scripts written in Ruby and I have used both rubyscript2exe and ocra gems in an attempt to end up with a 'bundled' executable but to no avail. Problem is, my scripts are grabbing test data from Excel files; and this is causing havoc when trying to create the executable.

It works fine on the machine which has the original excel file but when taken home away from its native path it 'll just refuse to run. Do I need to declare my paths in my code in a relative way and not explicitly? Is there a command in Ruby like 'require' but for an Excel file for example?

I will be grateful if anyone knows a way to make a ruby executable (or even an installer/application builder) which will somehow include the Excel files running in parallel with the script.

* Resolved *

Admins you can close this one if you want.

It was pretty simple but couldn't figure it out on the first place. If you want to included additional non ruby files in your final executable you can use the line below..:

ocra yourscript.rb test.xls docs\documentantion.doc excel\additional.xls

0 投票
1 回答
404 浏览

ruby - 在 Rubygems gemspec 中标记为可执行的 Ocra 和脚本

我创建了一个 gem,它公开了一个在 Linux 下工作的可执行文件。在 Windows 中,如果我导航到安装 gem 的目录,我可以从命令行运行它,但我必须-Ilib在调用ruby.

我想使用 Ocra 将可执行文件 + 依赖项(gem 的其余部分)+ Ruby 转换为其他用户的 exe 文件,但文档似乎说手动弄乱加载路径对 Ocra 来说是个坏主意。

我如何告诉 Ocra 使用 gem 的可执行脚本而不自己弄乱 Ruby 的加载路径?我想这将取决于我可以通过某种方式运行可执行脚本,该脚本利用它们是已安装 gem 的一部分并为我找出依赖关系这一事实。

0 投票
0 回答
366 浏览

ruby - ruby ocra 不会使用 business_time gem 编译脚本

尝试使用 ocra 将 ruby​​ 脚本编译为 Windows 可执行文件。由于某种原因,将 business_time 添加到脚本后,它拒绝编译。如果我删除 require 'business_time' 它将编译。所以我为 business_time 创建了一个脚本,它可以工作但不会编译。努力从错误消息中查看问题所在。

提前致谢。

C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:467:使用 RbConfig 代替过时和弃用的 Config。C:/Ruby/lib/ruby/gems/1.9.1/gems/i18n-0.6.1/lib/i18n/tests/basics.rb:8:in test' : unknown command 'a' (ArgumentError) from C:/Ruby/lib/ruby/gems/1.9.1/gems/i18n-0.6.1/lib/i18n/tests/basics.r b:8:in'来自 C:/Ruby/lib/ruby/gems/1.9 .1/gems/i18n-0.6.1/lib/i18n/tests/basics.r b:3:in <module:Tests>' from C:/Ruby/lib/ruby/gems/1.9.1/gems/i18n-0.6.1/lib/i18n/tests/basics.r b:2:in'来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/i18n-0.6.1/lib /i18n/tests/basics.r b:1:in <top (required)>' from C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:467:inconst_ get' from C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:467:in block (3 levels) in attempt_load_autoload' from C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:464:ineach' from C :/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:464:in block (2 levels) in attempt_load_autoload' from C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:462:ineach' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra -1.3.0/bin/ocra:462:in block in attempt_load_autoload' from C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:456:inloop' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:456:attemp t_load_autoload' from C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:679:inbuild_exe' 来自 C:/Ruby/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:1138:in `block in'

0 投票
1 回答
899 浏览

ruby - OCRA 甚至无法构建最简单的 exe

我正在运行全新安装的 Windows、Ruby 1.9.3p327 和 Ocra 1.3.0。

测试.rb:

ocra test.rb返回:

ocra 中的违规行是:

0 投票
2 回答
705 浏览

ruby - Ruby、Tk 和 Ocra - 启动速度非常慢

对于 Windows 用户,我想将我的 Ruby 应用程序部署为 .exe 文件。该应用程序使用 Tk 作为 GUI 部分。

因为我根本无法成功使用 ruby​​script2exe,所以我选择了 ocra。Ocra 工作正常并构建了一个合理大小的 .exe。但是,应用程序可能需要 10 秒才能启动。尽管它确实是一个非常简单的工具。

有什么方法可以提高启动时间吗?我的猜测是主要问题是在每次启动时解压缩 tk-libs ......

0 投票
2 回答
764 浏览

ruby - 编译依赖于其他类的 ruby​​ 脚本

压缩我的脚本时遇到问题。

我有一个 main.rb 和子文件夹中的一些类,例如 Subfolder/Class.rb 在我的 main.rb 中,我有这样声明的类:

需要'./Subfolder/Class.rb'

当我只运行我的主脚本时,它就可以工作。当我的 exe 与 main.rb 位于同一位置时,它也可以工作。
但是当我将exe放在其他地方时,我得到了这个错误:

我可以以某种方式将依赖项放入我的 exe 中吗?
我也尝试像这样包含它们:

但这无济于事。

0 投票
1 回答
652 浏览

ruby - 使用 ocra 和 sqlite 生成 INNOSetup 安装程序时出错

我正在尝试将带有 ocra 的 ruby​​ + qtruby + sqlite3 应用程序打包到 Windows 安装程序中。

一切顺利,直到我添加连接到数据库的代码。

这是片段:

此代码运行并且 ocra 能够创建单个可执行文件,但是如果我尝试创建安装文件,这是我得到的错误:

错误是意大利语,对不起,但它翻译为“无法访问该文件。该文件当前被另一个进程使用

这是用于生成安装程序的命令:

如果我注释掉连接到 sqlite 的代码块,则安装程序会正确创建,我可以在测试机器上正确使用。如果我在连接到 sqlite 之前移动exit if...块,则生成的可执行文件/安装程序缺少 sqlite 库,并且在目标机器中我无法执行它。

我认为该错误与未关闭 sqlite 的连接有关,但也许我遗漏了其他内容。

谢谢

0 投票
2 回答
1235 浏览

ruby - 使用 Ocra,LoadError 从 ruby​​ 文件制作可执行文件?

我正在尝试从 Windows 上的几个 ruby​​ 文件制作可执行文件,所以我安装了 Ocra。我以为我了解 Ocra 的工作过程,但似乎无法让可执行文件正常工作。我遇到的问题是“需要”其他 ruby​​ 文件。

ruby 程序本身可以正确编译并按我想要的方式运行,并且 Ocra 似乎创建了一个工作可执行文件,但是,当我尝试运行该可执行文件时,出现以下错误:

*/custom_require.rb:36:in 'require': 无法加载此类文件 -- MainMenuDialog.rb (LoadError)*

我的主程序称为“JobManager.rb”,它正在创建一个新的 MainMenuDialog 对象,因此我将 MainMenuDialog.rb 包含在文件顶部,如下所示:

同样,该程序自行编译并运行得非常好(包括 require 语句),当我运行命令ocra JobManager.rb时,它成功运行程序、检查依赖项并创建可执行文件。由于上述“LoadError”,我无法运行可执行文件。

对我做错了什么有任何想法吗?提前致谢!!!