.elc
ファイルのEmacsLISPソースコード?
例えばcal-mayan.elc
/bin
ディレクトリ内のファイル?
例えばcat
、split
、およびecho
使用するディストリビューションによって少し異なります。 Debianスタイルのシステムでは、次のようなことができます。
$ dpkg -S `which cat`
coreutils: /bin/cat
$ apt-get source coreutils
最後のコマンドは、ソースアーカイブと、catコマンドを含むバイナリパッケージのビルドに使用されたすべてのパッチをフェッチします。
あるいは、グーグルで検索することもできます。または、グーグルコード検索も使用してください。
ただし、Emacsの場合、Ubuntuにはemacs23-elという特別なパケットがあり、Emacsのすべてのelファイルが含まれ、elcファイルと一緒にインストールされます。これには、Emacsから関数と変数の定義を直接見ることができるという利点があります。関数string-insert-rectangleがどのように定義されているかを調べたいとします。 C-h f string-insert-rectangleを押すと、ドキュメントとともにヘルプバッファが表示され、rect.elで定義されていることが示されます。 rect.elをクリックすると、Emacsは自動的に関数定義を表示します。
RPMベースのディストリビューションの場合は、「rpm -qi <somepackage>」、または元のパッケージがわからない場合は「rpm -qi <somefile>」と尋ねることができます。ソースRPMとは何か、およびソースのホームページが表示されます。 Fedora(およびyumを使用する他のディストリビューション)では、yumdownloaderを使用してソースパッケージを取得できます。 「yumdownloader--source <package>」がそれを取得します。次に、rpm(1)コマンドを使用して、ソースを解凍できます(ソースRPMパッケージには、アップストリームソース、さまざまなパッチ、構成ファイル、および結果のビルドとインストールを指示するスペックファイルが含まれています)。
これは、何らかのローカル変更を加えたパッケージをインストールする必要がある場合に便利です(おそらく、次のアップストリームバージョンをチェックアウトするためだけに)。