![为什么这些 ruby gem 预装在 Precise32 上?](https://linux22.com/image/1084852/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%BA%9B%20ruby%E2%80%8B%E2%80%8B%20gem%20%E9%A2%84%E8%A3%85%E5%9C%A8%20Precise32%20%E4%B8%8A%EF%BC%9F.png)
我即将开始配置一个用于开发 Web 应用程序的开发虚拟机。
为此,我使用了 Vagrant。Vagrant 允许您使用包含我选择的操作系统的基本“盒子”(虚拟机磁盘映像?)。对于初学者,我选择了这个:https://atlas.hashicorp.com/hashicorp/boxes/precise32。
我注意到,在使用该盒子配置虚拟机并登录后,已经安装了许多 ruby gem:
vagrant@precise32:~$ gem list --local
*** LOCAL GEMS ***
bunny (0.7.9)
chef (10.14.2)
erubis (2.7.0)
facter (1.6.12)
highline (1.6.15)
ipaddress (0.8.0)
json (1.6.1)
mime-types (1.19)
mixlib-authentication (1.3.0)
mixlib-cli (1.2.2)
mixlib-config (1.1.2)
mixlib-log (1.4.1)
mixlib-shellout (1.1.0)
moneta (0.6.0)
net-ssh (2.5.2, 2.2.2)
net-ssh-gateway (1.1.0)
net-ssh-multi (1.1)
ohai (6.14.0)
polyglot (0.3.3)
puppet (2.7.19)
rest-client (1.6.7)
systemu (2.5.2)
treetop (1.4.10)
uuidtools (2.1.3)
yajl-ruby (1.1.0)
我想弄清楚这些宝石为什么在这里。Ubuntu 发行版包含它们是否正常,可能是因为其他软件依赖它们?特别是,我很困惑为什么chef
已经安装在这个系统上。
答案1
在您提到的中心(https://atlas.hashicorp.com) 每个创作者都可以免费发布并分享自己的作品。
虽然这不是必须的,但大多数情况下,一个盒子是用考虑很多供应商. 尤其是由哈希公司应该支持许多供应商(puppet、chef、salt、ansible、docker 等)。
此外,这些 gem 不会损害任何其他应用程序,除非您执行 Ruby* 任务。但您始终可以覆盖/删除这些 gem。