14th Sat
gemファイルを解体する方法
gemファイルはRubyのライブラリ配布用のアーカイブ的なファイル形式ですが、
今回はこれを展開して中身を取り出す方法を紹介します。
まずは、適当なgemファイルを用意して、tarコマンドで展開します。
pre>>
% tar xvf foo.gem
% ls
data.tar.gz metadata.gz
<<--
このように、data.tar.gzとmetadata.gzという二つのファイルが出てきます。
続いて、data.tar.gzを展開すると、gemspecファイルに記載されている
ファイル群一式が展開されます。
pre>>
% tar data.tar.gz
<<--
metadata.gzは、gzipで圧縮されたYAML形式のgemspecです。
追記
gemファイルを展開する方法としては、gem unpackという専用のコマンドがあるようです。見落としていた。
posted by
genki on Sat 14 Feb 2009 at 16:31 with 2 comments
とかでやったときに調べたのですが、仕様的にはいちおうzipとかのもの許されていて、
一部のgemはtarを前提としたやり方だと解凍できないっぽいです。
たいていのやつは上記の方法でも大丈夫ですが、gem unpackとかで解凍する方がいちおうスマートで確実かなと思います。