所以我很好奇我的设计宝石安装在哪里,所以我可以做一些潜水设计的源代码。这导致我在运行bundle install时询问gems的安装位置。
所以当我在我的rails app目录中运行它时:
bundle show
Gems included by the bundle:
* Ascii85 (1.0.2)
* CFPropertyList (2.3.2)
* aasm (4.3.0)
* actionmailer (3.2.22.2)
* actionpack (3.2.22.2)
* active_model_serializers (0.8.1)
* activeadmin (1.0.0.pre2)
* activemodel (3.2.22.2)
* activerecord (3.2.22.2)
* activeresource (3.2.22.2)
* activesupport (3.2.22.2)
* activeuuid (0.5.0)
* acts-as-taggable-on (3.5.0)
* acts_as_tree (2.2.0)
...
* devise (3.5.4)
当我跑步时:
bundle show devise
/Users/jeffrey.wan/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/devise-3.5.4
那条路是什么?它来自哪里?
另外,更重要的问题是,这是否意味着当你运行bundle install时所有的gems都在jsut上安装了 on 你的Ruby?
2.1.6和2.1.0是什么数字?
答案 0 :(得分:1)
Gem安装将由Ruby版本命名。因此,如果您正在使用Rbenv或RVM并安装了一些不同的Ruby版本,则运行gem install
将仅为您当前选择的Ruby版本安装gem。
要回复您的评论,如果您想使用它,则无法在本地安装gem。 "局部"意思"在你的电脑上#34;。
回答有关路径的问题:
/Users/jeffrey.wan/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/devise-3.5.4
rbenv
,因此所有ruby安装都在~/.rbenv
目录中命名。2.1.0
文件夹 - 基本上在发布宝石时,它们被精确定位到特定的Ruby版本。因此,当您请求将devise
gem安装到您的ruby 2.1.6时,选择最接近的匹配设计(在这种情况下,为ruby 2.1.0构建一个)。顺便说一下,当你想调试你已安装的gem时,使用bundle show
有时会很有用。您可以进入源代码并添加断点。这不是我建议经常做的事情,但是当你弄乱旧的,部分功能的宝石时可以提供帮助。
顺便说一句,当你在Ruby"上安装宝石时,这可能不是最好的措辞。安装gem不会修补Ruby语言。它所做的就是安装一个可以选择包含在程序中的库(通过require
)。有些宝石也会创建shell命令(比如rake
)。