【问题标题】:How do I make my gem place a .dll in a folder in the system PATH upon installation?如何让我的 gem 在安装时将 .dll 放在系统 PATH 中的文件夹中?
【发布时间】:2011-07-22 01:41:23
【问题描述】:

...当然,在卸载时将其删除。

问题是从我的 gem 调用的其他程序需要能够在系统 PATH 中找到某个文件 - 以编程方式设置 PATH 不起作用,因为这些程序的调用方式是它们获得清新的环境。

我尝试将这些 .dll 文件作为“可执行文件”包含在 gemspec 中,但这似乎只会在 {ruby}/bin 文件夹中获得一些符号链接类型的文件,这会导致错误,因为相关程序需要实际的 .dll。

事实上,我只是在自述文件中有一条注释,要求人们手动将 .dll 文件复制到 PATH 中的文件夹中,但似乎应该有更好的方法来做到这一点。

任何帮助将不胜感激 - 谢谢!

【问题讨论】:

  • 您的目标是什么操作系统? dll 是窗口,但符号链接不是!?!?您的代码是否在 Guthub 上?或者你可以发布你的 gemspec 吗?
  • 对不起,我想我应该提到这是在 Windows 上。 gemspec 与此处的类似:github.com/matadon/mizuno/blob/master/mizuno.gemspec
  • 好的,那么“这似乎只在 {ruby}/bin 中获取一些符号链接类型的文件”是什么意思? Windows 中没有符号链接之类的东西。
  • 无论何时安装 gem,都会在 {ruby}/bin 文件夹中创建一个指向实际 gem 二进制文件的 ruby​​ 脚本......我猜我应该说“类似符号链接”。
  • 您使用的是锄头或珠宝商或类似的东西吗?还是纯宝石?

标签: ruby rubygems jruby


【解决方案1】:

我猜这个 dll 是 java 类需要的原生库?

如果是这样,您可以将它放在 lib 文件夹中的某个位置,并在使用 java 类之前调用​​ java.lang.System.load 来加载它。它不必以这种方式位于系统 PATH 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多