32 ビット CentOS6.6 での ls コマンドのソース コードを例に挙げると、次の方法でソース コードをダウンロードできます。
1) ソースコードのソースを設定します
CentOS では、ソース構成ファイルは /etc/yum.repos.d/CentOS-Base.repo です。このファイルを変更するには root 権限が必要です。ファイルを開いて、ファイルの内容を表示します。私のマシンでは、ファイルの内容は次のとおりです:
リーリー
このファイルには 2 つの変数があります: releasever とbasearch、それぞれリリース バージョンとブランチを表します。たとえば、私のマシンでは、これら 2 つの値はそれぞれ 6 と i386 です。 releasever はマイナー バージョンに細分化されず、つまり 6.6 などにはならないことに注意してください。ファイルの内容から、ファイルには合計 5 つのセクションがあることがわかります。これは、私のマシンには 5 つのソフトウェア ソース (base、updates、extras、centosplus、contrib) があることを意味します。したがって、以下の 5 つのソフトウェアソースのソースコードを指定するだけで済みます。ファイルの最後に次の内容を追加します:
リーリー
バージョンが異なると設定も異なりますので、方法をまとめると次のようになります。(1) gpgkey は、ファイル内に既に存在するセクションの gpgkey と同じです
(2) ファイルの存在とステータスを確認するには、Web サイト http://vault.centos.org/ を開いて特定の状況を表示し、特定の状況に応じて詳細を入力します。
(3) BaseURL を設定するときは、自分のシステムのバージョンに応じて設定する必要があります。たとえば、私のマシンは CentOS-6.6 です。設定するとき、関連するパラメータは 6.6、つまり http に設定されます。 ://vault.centos. org/ に続くサブパスは 6.6 です。
このファイルの機能は、yum および関連作業をダウンロードするためのソースを提供することです。たとえば、yumdownloader (後述) を使用してソース コードをダウンロードすると、次のアクションが発生します:
(1) $baseurl/repodata/repomd.xml ファイルをダウンロードします。repomd.xml ファイルがシステム内のファイルより新しい場合は、システム内の対応する repomd.xml を更新します。
(2) 対応するソースコード rpm パッケージを $baseurl/SPackages/ にダウンロードします。
2) 次のように、what コマンドを使用して ls コマンドの場所を表示します。
どれですか
# 出力: /bin/ls
3) 次のように、rpm コマンドを使用して、ls コマンドが属するパッケージをクエリします。
rpm -qf /bin/ls# 出力: coreutils-8.4-37.el6.i686
4) yumdownloader は、RPM ソースから RPM をダウンロードするプログラムです。次のように、yumdownloader コマンドを使用してソース コードをインストールできます:
yumdownloader --source coreutils-8.4-37.el6.i686
###注記: ### (1) yumdownloader コマンドがインストールされていない場合は、コマンド yum install yum-utils を使用してインストールできます。
(2) ダウンロードされたファイルは現在のディレクトリにあります。パラメータ --destdir を使用して、ダウンロード先のディレクトリを指定できます。
5) yumdownloader を使用して、インストール パッケージ ファイル rpm をダウンロードします。次のコマンドを使用して、rpm 内の tar ファイルをクエリできます:
rpm -qpl coreutils-8.4-37.el6.src.rpm | grep tar
# 出力: coreutils-8.4.tar.xz
6) rpm2cpio コマンドを使用して rpm パッケージ ファイルを cpio アーカイブ ファイルに変換し、次に cpio コマンドを使用して cpio アーカイブ ファイルからアーカイブ ファイルをコピーして抽出します。出力は次のとおりです:
rpm2cpio coreutils-8.4-37.el6.src.rpm | cpio -idv coreutils-8.4.tar.xz
# 出力:
# coreutils-8.4.tar.xz
# 9561 ブロックcpio の説明は次のとおりです: cpio はファイルをアーカイブにコピーします
-i: --extract と同じ、
を抽出することを意味します
-d: --make-directories と同じで、必要に応じてロードディレクトリを作成します-v: リストファイルの処理
7) 次のように、tar コマンドを使用して coreutils-8.4.tar.xz 圧縮パッケージを解凍します。
tar -xvf ./coreutils-8.4.tar.xz
この時点で、コマンドのソースコードが取得されます。
以上がCentOSシステムでのコマンドのソースコードの入手方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。