gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:38:31 28 4
gpt4 key购买 nike

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

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

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

最佳答案

我的问题被证明需要两部分的答案:

  1. 关于 Rugbygems 如何在 Windows 中打包可执行文件的潜在无知:它将它们放在 ruby​​ 安装目录的 bin/目录中,该目录是在安装 Ruby 时添加到路径中的。脚本本身不可执行,但 Rubygems 为每个可执行文件创建一个 .bat 文件包装器,例如对于 mygem.rb 一个伴随的 mygem.rb.bat 文件,它将在命令提示符下的任何地方运行。

  2. 因此可以使用以下命令运行 ocra 脚本:ocra path/to/Ruby/bin/mygem.rb

请注意,如果您启动某种服务器作为可执行文件的一部分,它可能会在您运行 ocra 时结束运行,并且永远不会继续创建可执行文件。因此有必要在启动服务器之前检查 ocra 是否正在运行:


if not defined? Ocra
#do server startup stuff here
end

事实上,我最终创建了一个“安装程序”脚本,其中包含 if not defined? 代码,以免弄乱我可能想要用于其他目的的可执行脚本。

关于ruby - Ocra 和脚本在 Rubygems gemspec 中标记为可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11905065/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com