在Debian GNU / Linux 8" Jessie"有一个专门的Ruby Bundler应该知道通过Debian的APT系统安装的宝石。所以在很多情况下,当它们已经安装在整个系统范围内时,再次通过rubygems.org安装这些宝石是不必要的。
现在我使用RVM在我的系统上安装和管理其他Ruby实现和版本。 RVM似乎以某种方式设置环境,以便bundle
调用映射到已激活的Ruby实现的已安装gem的存储库中的可执行文件。
我正在寻找一种方法让RVM为由RVM管理的选定或所有Rubies设置系统提供的专用/usr/bin/bundle
。
编辑:
有些人问我为什么要这样做的原因。他们在这里:
- 我喜欢这样一个事实:我有一些相互信任的人(这里是负责打包的Debian开发人员)有机会查看最终在我的应用程序中使用的代码。
- 作为Debian项目稳定发布的一部分的代码由Debian安全团队负责。如果出现问题,还有其他人致力于快速找到解决方案。
- 据我所知,通常的gem代码验证依赖于rubygems.com单独使用的TLS的传输身份验证。我发现RubyGems的安全基础设施值得怀疑,几年前它已经被一个大黑客攻陷了,从那时起几乎没有任何变化。我维护了Rubygems为我自己的软件发行版提供的基于X.509的端到端认证系统很长一段时间,并得出结论,该系统根本不执行。只签署了很少的宝石,并且没有加密身份交换的概念。
- 我不喜欢已经存在于我系统上的东西被下载并再次存储的事实。这似乎是浪费资源。更糟糕的是,当发生这种情况时,安装方式不如原始安装。