Linux / Unixシステムでコンパイルされたプログラムの正確なソースコードを見つけたいです。
たとえば、
computer:/ username$ whereis ping
/sbin/ping
仕事はソースコードを見つけることです/スビン/ping。
答え1
コンパイルされたバイナリのソースコードは、システムで使用できない場合があります。
存在するオープンBSD(Linuxではありません)フルベースのシステムソースコード(カーネルやユーティリティなどping
)はCVSを介して利用できます。
Web上で閲覧可能なOpenBSDリポジトリについては、以下を参照してください。https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/
ソースはping
次の場所にあります。src/sbin/ping
。
これネットワークBSDプロジェクト(Linuxではない)には、次の場所にナビゲート可能なCVSリポジトリがあります。http://cvsweb.netbsd.org/bsdweb.cgi/src/
ソースping
はにありますsrc/sbin/ping
このツリーはOpenBSD用です。
これFreeBSDプロジェクト(Linuxでもない)にはGitHubリポジトリがあります。https://github.com/freebsd/freebsd
ソースコードはping
次の場所にあります。sbin/ping
その木に。
これらのBSDシステムでは、デフォルトのユーティリティとカーネルのソースコードは、ユーザーがそのリポジトリをチェックアウトした場合にのみシステムで使用できます。
(ビルド手順を含むMakefile)サードパーティのツールキット/ポートは、3つのオペレーティングシステムすべてに対して別々のリポジトリに保存されています。代わりに既製のバイナリパッケージ/ポートを使用する代わりに。
パッケージ/ポートシステムの使用方法については、関連するUnixが提供するマニュアルを参照してください。
Linuxユーティリティのソースコードの場合は、まずユーティリティがどのパッケージで提供されているかを確認し、(可能であれば)パッケージマネージャソフトウェアを使用してそのパッケージのソースコードをインポートする必要があります。または、パッケージマネージャがバイナリパッケージを生成したときにソースコードをどこで入手したかを調べます。これは、使用するLinuxおよびパッケージマネージャソフトウェアによって異なります。