rubygem
的目录 lib/ruby/gems/2.0.0/cache
下面有这些目录 cache
、 doc
、 gems
、 specifications
、 extensions
前面 4 个目录存放的文件用途都很清楚,最后一个目录 extensions
又单独放一份编译过的 so 文件,为什么要这么设计?
PS:
调试一个 so 文件,在安装好的 gems/xxx/ext
下改了源码重新编译生成 so 文件,复制到 gems/xxx/lib
,一直加载的是旧版本 so,真的是被这个设计蠢晕了。而且去把 extensions
目录下的重复 gem 的目录删除后,下次启动程序的时候它 (rubygems
) 又会去重新编译一次,这完全没有必要的啊?在 gems/xxx/lib
下就有 so 文件存在了。