ホームページ  >  記事  >  システムチュートリアル  >  CentOSシステムでのコマンドのソースコードの入手方法

CentOSシステムでのコマンドのソースコードの入手方法

王林
王林転載
2024-01-11 19:12:17921ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。