将 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 捆绑的主要内容,如果未能解决你的问题,请参考以下文章