【问题标题】:Feasibility of vendoring binary executables within a gem?在 gem 中出售二进制可执行文件的可行性?
【发布时间】:2012-01-27 06:54:56
【问题描述】:

我已经编写了一个 sprockets 处理器,用于无损压缩 jpg 和 png,您可以在这里查看:https://github.com/botandrose/sprockets-image_compressor

但是,我不能在 heroku 上使用这个 gem,因为 jpegoptim 和 pngcrush 程序在它们的环境中不可用。此外,gem 的用户需要记住在他们想要使用我的 gem 的每个系统上安装这些程序。因此,如果系统尚未安装这些二进制文件,我认为如果我可以将这些二进制文件作为后备供应商,那就太好了。

那么,这完全疯了吗?我需要提供 64 位二进制文​​件和 32 位文件吗?我还需要安装某种外部库吗?编写某种与这些程序挂钩的 C 扩展会更好吗?

【问题讨论】:

    标签: ruby heroku gem rake


    【解决方案1】:

    我还没有在野外看到很多宝石可以做这种事情。然而,另一种选择是提供 rake 任务,如果它们尚未安装在机器上,则它们会出去并获取程序。不过,让它适用于所有不同的平台可能会很棘手。

    【讨论】:

      【解决方案2】:

      关于在 Heroku 上使用您的 gem:请记住,Heroku 有一个只读文件系统(/tmp 目录除外),因此在 Heroku 上运行像您这样的 Sprockets 处理器无论如何都不是一个切实可行的选择。我个人只是使​​用rake assets:precompile 并将所有预编译的资产提交到我的 Git 存储库,然后再推送到 Heroku。是的,我知道它会弄乱回购历史,但这是最简单的方法(至少现在是这样)。希望 Heroku 将来会提出其他选择。

      就您提出的主要问题而言,希望其他人可以提供一个好的答案。你的项目看起来很酷;我只是想试试看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-25
        • 2018-04-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多