硬核观察 | 一个底层组件的许可证发生变化后，导致大量 Ruby 软件无法构建
更多：• Linux Mint 改进通知系统以敦促用户升级以保障安全 • 微软正式发布支持树莓派 OS 的 VS Code 的新版本
Ruby Mint VSCode
114.86.151.20
亲身经历了ruby的事情。觉得还是蛮魔幻的。<br />
大概浪费了两天时间，不断改来改去。
来自上海的 Chrome 89.0|Fedora 用户
2021-04-02T19:05:01.000
更多：• Linux Mint 改进通知系统以敦促用户升级以保障安全 • 微软正式发布支持树莓派 OS 的 VS Code 的新版本
![](/data/attachment/album/202104/02/114516hwef0dd4tkdtxh46.jpg)


### 一个底层组件的许可证发生变化后，导致大量 Ruby 软件无法构建


![](/data/attachment/album/202104/02/114535nf40lw7if3w6f4g7.jpg)


有一个名为 mimemagic 的 Ruby GEM 被广泛使用于包括 Rails 在内的 Ruby 软件中。该组件 是以 MIT 许可证发布的，但它又依赖于一个以 GPLv2 许可证发布的 shared-mime-info，因此，按照许可证要求，mimemagic 也应该使用 GPLv2 许可证。在发现了这一错误之后，该组件作者马上撤回了其 MIT 许可证的版本，重新发布了使用 GPLv2 许可证的新版本，这当即导致许多依赖于该组件的软件构建失败。


这对于 Rails 和其他喜欢或需要 MIT 许可证的项目来说是不可接受的，虽然 mimemagic 后来发布了修订版，去除了对 GPLv2 组件的依赖，回到了 MIT 许可证，但是一些软件已经对 mimemagic （或者说对他的作者的草率行为）失望了，决定采用另外的 MIT 组件来替代它。最终 Rails 发布了新版本，[放弃了 mimemagic](https://weblog.rubyonrails.org/2021/3/26/marcel-upgrade-releases/)。


这件事说起来不复杂，但是目前这种叠床架屋的软件依赖架构，已经屡屡出现因为底层某个很小的组件的一些变化而导致很多上层组件和软件出现构建问题。我觉得是时候反思这种组件构建模式了。


### Linux Mint 改进通知系统以敦促用户升级以保障安全


![](/data/attachment/album/202104/02/114558a8u6uaa4zeuzn6ju.jpg)


之前我们[报道](/article-13166-1.html)过，Linux Mint 的更新相对保守，以便用户可以完全控制何时、如何以及安装哪些更新；但这种思路导致一些用户运行过时的、存在缺陷的软件。Mint 称，“为了补救这个问题，我们创建了一个新的弹出式窗口，它可以让用户知道有多少更新，为什么需要应用更新，它让用户可以查看可用的更新，并为用户提供打开自动更新的选项。如果用户驳回通知，它将在两天后再次出现，所以它并不霸道。”


Mint 在小心翼翼地平衡用户体验和安全，为这个态度点赞。


### 微软正式发布支持树莓派 OS 的 VS Code 的新版本


![](/data/attachment/album/202104/02/114612s3g420q4fq26bvb2.jpg)


VS Code 发布了 [1.55](https://code.visualstudio.com/updates/v1_55)，在此版本中，微软正式支持了树莓派 OS。其实，在几周前它就已经出现在了树莓派 OS 的 APT 仓库中了，当时还因为树莓派基金会在未通知用户的情况下，悄悄加入了微软的 APT 库而引发了一些[争议](/article-13095-1.html)，因为这使得每个运行树莓派 OS 的用户在更新时都会 “ping” 一下微软。


但对另外一些人来说，只是在意 VS Code 在树莓派上不多的内存上是否能好好运行。

