由于 MimeMagic gem 不再存在,无法再在 Rails 上捆绑安装所有需要 Paperclip 的应用程序?

问题描述

我有一个几周前可以运行的程序,我把它抹掉了,不得不重新安装我的 ruby​​ 和 rails 环境,现在我不能捆绑安装相同的程序,因为 Paperclip 需要 Mimemagic 并且显然是宝石不再存在。任何版本的 gem 都需要这个 freedesktop.org.xml 的东西,我去了他们的网站并下载了它,但我不明白在 Windows 机器上如何安装 freedesktop.org.xml 包,以便我可以使用 Ruby on Rails再次。

有谁知道如何安装 freedesktop.org.xml 包/脚本/无论它是什么,以便 rails 再次正常工作?如果我们的任何应用程序现在崩溃,我们将因此而成为一个可怕的地方。我已经搜索了几个小时,所有内容都引用了 MAC 或 Linux,我在 PC 上,我可以找到 nopLACE,其中有关于如何在 Windows 10 PC 上执行此操作的易于理解的说明。

请帮忙!

谢谢, 斯科特

更新:我试图建议添加

gem 'mimemagic',git: 'git@github.com:mimemagicrb/mimemagic.git',标签: "v#{[0.3.0]}"

进入gemfile,这是我得到的结果。

[!] There was an error parsing `Gemfile`: unexpected fraction part after numeric literal - . Bundler cannot continue.

 #  from D:/rails/ctrlpanel/Gemfile:22
 #  -------------------------------------------
 #  # Windows does not include zoneinfo files,so bundle the tzinfo-data gem
 >  gem 'tzinfo-data',platforms: [:mingw,:mswin,:x64_mingw,:jruby]
 #  source 'https://rubygems.org'
 #  -------------------------------------------

我不明白这是什么意思?我也不明白这整个问题?有没有办法在 Windows PC 上安装 freedesktop.org.xml 东西?这似乎正式杀死了 Windows PC 上的 Ruby on Rails?

解决方法

令人讨厌的是,旧版本的 mimemagic 从 ruby​​gems.org 被硬删除,因为作者意识到该库被错误地授权为 MIT 而不是 GPLv2。

该库的更新版本 (v0.3.7+) 正确获得了 MIT 许可。

我尝试了添加的建议:

gem 'mimemagic',git: 'git@github.com:mimemagicrb/mimemagic.git',tag: "v#{[0.3.0]}"

这不适用于两个帐户:首先,您误解了这个命题 - 只需要写 tag: 'v0.3.0',但此外,mimemagic 作者似乎也试图掩饰他们的背后(合法)通过在 github 中取消标记旧的库版本!!!

...但是 mimemagic 仍然拥有完整的源代码控制!所以如果你想显式地安装一个旧版本,直接把它固定到一个 git commit 上还是很容易的!!

例如,项目历史中的 look here

如果您想安装 version 0.3.5 的 gem,您可以将其添加到您的 Gemfile 中:

gem 'mimemagic',git: 'https://github.com/mimemagicrb/mimemagic',ref: '01f92d86d15d85cfd0f20dabd025dcbd36a8a60f'

使用上面指向项目历史的链接,应该很容易找到其他版本的参考提交。

但是如上所述,该项目的旧版本被错误地许可为 MIT。如果您无法在您的项目中包含 GPLv2 许可的库(我不是律师,这不是法律建议......),您不应该使用这种方法。

有关如何在 Gemfile 中指定 git branch/tags/commits 的更多信息,请参阅文档:https://bundler.io/guides/git.html

,

这个问题可以通过在安装 gem 或运行 Bundler 之前将 FREEDESKTOP_MIME_TYPES_PATH 设置为指向 freedesktop.org.xml 来解决。

示例

第 1 步
右键单击并将 this file 保存为 freedesktop.org.xmlC:\

第 2 步
在当前命令提示符中设置 FREEDESKTOP_MIME_TYPES_PATH(未永久存储):

> set FREEDESKTOP_MIME_TYPES_PATH=C:\freedesktop.org.xml

第 3 步
从与步骤 2 中相同的提示安装 gem(或运行 bundle install):

> gem install mimemagic
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
Successfully installed mimemagic-0.4.3
1 gem installed

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...