查看gem的源代码
这里的ruby涉猎者/新手谁不熟悉生态系统,所以如果这是超级问题之一的道歉。
有没有办法查看由gem安装的所有文件和/或源代码? 那就是我跑了
$ gem install sass
现在,我的本地系统已经成为了这个Sassgem的一部分
$ gem list --local ... sass (3.1.16, 3.1.2) ...
我想知道什么gem install
命令放在我的系统上。 有没有一个命令,我可以运行以查看所有由gem安装的文件?
一些Googlesearch之后, man gem
和gem help commands
,我发现了contents
命令。
$ gem内容sass
但是 ,当我用上述sass gem运行这个命令时,我得到以下结果
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/engine_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/functions_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/extend_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/logger_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/css2sass_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/conversion_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/script_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util/subset_map_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util/multibyte_string_scanner_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/callbacks_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/importer_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/css_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/scss_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/rx_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/script_conversion_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/less_conversion_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/cache_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/plugin_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/sass .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/sass-convert .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/scss
然而,这个名单似乎不完整,因为我知道有文件
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.2/lib/
为什么contents
不显示从lib
文件?
gem
安装程序是否可以在gem文件夹之外安装文件?
有一个命令,可以显示一切由gem安装?
gem有一个解压命令: http : //guides.rubygems.org/command-reference/#gem-unpack
gem unpack rake ls rake-0.4.3/
有两个很好的方法来做到这一点。 还有另外一个gem可以让你打开gem并编辑。 这gem叫gem开放
gem install gem-open
然后
gem open sass
另一种方法是生成自己的rdoc。
gem rdoc sass
你可以看看你的rdocs
gem server
另外,如果您使用的是rvm,则可以键入rvm info
,并显示GEM_HOME
位置。 这将是你所有的gem源代码。
cd $GEM_HOME cd gems/sass-3.1.2/
更新:
这是我现在主要使用捆绑器的方式。
cd $(bundle show sass)
这将是你的Gemfile中的sass版本。
你提到的lib /目录是gem版本3.1.2; 没有 – --version
gem contents
将只列出一个版本( 它似乎挑选最新版本,但我无法validation这一直是真实的 )。 你有什么输出的gem contents --version 3.1.2 sass
?
我通常从控制台运行这个命令来打开一个gem
EDITOR=<your editor> bundle open <name of gem>
您也可以使用将.gem文件重命名为.tar并将其解压缩为posix压缩文件。 源代码在lib
文件夹中。 有关更多详细信息,请参阅https://blog.srcclr.com/extracting-ruby-source-code-from-gem-packages/ 。
除了gem contents
,你可能会发现有用的另一个命令是gem environment
。 如果您的gem安装有多个path,它们将全部列在“GEM PATHS”标签下。