将 taglib 与 taglib-ruby 捆绑

Posted

技术标签:

【中文标题】将 taglib 与 taglib-ruby 捆绑【英文标题】:Bundling taglib with taglib-ruby 【发布时间】:2016-05-07 19:37:12 【问题描述】:

我正在编写一个使用taglib-ruby 的应用程序,它又依赖于Taglib。为了让用户不必自己下载和安装 taglib,我想将它与我的应用程序捆绑在一起。我没有太多做这种事情的经验,但我的感觉是我需要做以下事情:

    将 Taglib 编译到我的应用程序中的文件夹 编译taglib-ruby,将其指向上一步中的本地Taglib

我遇到的问题是第 2 步中的 rake clean compile 失败并出现错误:

检查 -ltag 中的 main()...否

您必须安装 taglib 才能使用 taglib-ruby。

如果我只是 brew install taglib,那么第 2 步运行没有问题。我以两种方式尝试了第 1 步:1) 在运行 brew install 之后,简单地从 Homebrew 的 Cellar 目录复制安装的文件,以及 2) 在 @987654323 上的一个 tar 文件的提取内容上下载并运行 cmake @。

由于此错误显然表明 rake clean compile 找不到我的非 Homebrew 安装版本的 Taglib,我尝试在 taglib-ruby 中编辑 extconf_common.rb 文件中的 opt_dirs 变量,但没有运气。

如何让 taglib-ruby 使用本地安装的 Taglib 版本?

【问题讨论】:

【参考方案1】:

我认为除非有必要,否则最好不要捆绑依赖项。

有几个原因:

    需要为不同的平台构建不同的依赖项。将用户引导至 apt-get/brew install taglib 比包含所有系统架构的最新版本然后尝试确定要安装哪个更容易。 除非通过包管理器安装,否则依赖项可能不会更新。

也许您可以制作一个安装脚本来确定用户的平台,然后使用适当的包管理器下载依赖项。

见Detecting Operating Systems in Ruby

【讨论】:

以上是关于将 taglib 与 taglib-ruby 捆绑的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上安装 taglib-ruby gem

如何在生产环境中安装 taglib-ruby

RoR TagLib-Ruby:如何在 DB 中设置 ID3 标签

taglib(-ruby) 无法读取特定文件

Grails:模板与 TagLibs。 [关闭]

TagLib:将字符串写入 RemixedBy 字段