Heim  >  Artikel  >  System-Tutorial  >  So erhalten Sie den Quellcode von Befehlen im CentOS-System

So erhalten Sie den Quellcode von Befehlen im CentOS-System

王林
王林nach vorne
2024-01-11 19:12:17863Durchsuche

Nehmen Sie den Quellcode des ls-Befehls unter 32-Bit-CentOS6.6 als Beispiel. Sie können den Quellcode mit der folgenden Methode herunterladen:

1) Konfigurieren Sie die Quelle des Quellcodes

In CentOS lautet die Quellkonfigurationsdatei: /etc/yum.repos.d/CentOS-Base.repo. Zum Ändern dieser Datei sind Root-Berechtigungen erforderlich.

Öffnen Sie die Datei und sehen Sie sich den Inhalt der Datei an. Auf meinem Computer ist der Inhalt der Datei wie folgt:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

In dieser Datei gibt es zwei Variablen: releasever und basearch, die die Release-Version bzw. den Branch darstellen. Auf meinem Computer sind diese beiden Werte beispielsweise 6 bzw. i386. Beachten Sie, dass Releasever nicht in Nebenversionen unterteilt wird, d. h. es wird nicht 6.6 oder ähnliches sein.

Aus dem Inhalt der Datei können wir erkennen, dass die Datei insgesamt 5 Abschnitte hat, was bedeutet, dass mein Computer über 5 Softwarequellen verfügt, nämlich Base, Updates, Extras, Centosplus und Contrib. Daher müssen Sie nur den Quellcode der folgenden 5 Softwarequellen angeben. Fügen Sie am Ende der Datei den folgenden Inhalt hinzu:

[base-src]
name=CentOS-$releasever - Base src
baseurl=http://vault.centos.org/6.6/os/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[updates-src]
name=CentOS-$releasever - Updates src-centos
baseurl=http://vault.centos.org/6.6/updates/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[extras-src]
name=CentOS-$releasever -Extras src-centos
baseurl=http://vault.centos.org/6.6/extras/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[centosplus-src]
name=CentOS-$releasever - Plus src-centos
baseurl=http://vault.centos.org/6.6/centosplus/Source/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[contrib-src]
name=CentOS-$releasever - Contrib src-centos
baseurl=http://vault.centos.org/6.6/contrib/Soruce/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Da verschiedene Versionen unterschiedliche Einstellungen haben, sind ihre Einstellungen unterschiedlich. Die Methode kann wie folgt zusammengefasst werden:

(1) gpgkey ist derselbe wie der gpgkey des Abschnitts, der sich bereits in der Datei befindet

(2) Um die Existenz und den Status der Datei zu bestätigen, können Sie die Website http://vault.centos.org/ öffnen, um die spezifische Situation zu überprüfen, und sie dann entsprechend der spezifischen Situation ausfüllen

(3) Wenn Sie die Basis-URL festlegen, müssen Sie sie entsprechend der Version Ihres eigenen Systems festlegen. Mein Computer ist beispielsweise CentOS-6.6. Beim Festlegen werden die relevanten Parameter auf 6.6 eingestellt, dh http: //vault.centos.org/ Der folgende Unterpfad ist 6.6.

Die Funktion dieser Datei besteht darin, eine Quelle zum Herunterladen von yum und verwandten Arbeiten bereitzustellen. Wenn Sie beispielsweise yumdownloader (siehe unten) zum Herunterladen des Quellcodes verwenden, werden die folgenden Aktionen ausgeführt:

(1) Laden Sie die Datei $baseurl/repodata/repomd.xml herunter. Wenn die Datei repomd.xml neuer als die im System ist, aktualisieren Sie die entsprechende Datei repomd.xml im System

(2) Laden Sie das entsprechende Quellcode-RPM-Paket unter $baseurl/SPackages/ herunter.

2) Verwenden Sie den Befehl „which“, um die Position des Befehls „ls“ wie folgt anzuzeigen:

was ist

# Ausgabe: /bin/ls

3) Verwenden Sie den rpm-Befehl, um das Paket abzufragen, zu dem der ls-Befehl gehört, wie folgt:

rpm -qf /bin/ls

# Ausgabe: coreutils-8.4-37.el6.i686

4) yumdownloader ist ein Programm zum Herunterladen von RPM von der RPM-Quelle. Sie können den Quellcode mit dem Befehl yumdownloader wie folgt installieren:

yumdownloader --source coreutils-8.4-37.el6.i686

Hinweis:

(1) Wenn der Befehl yumdownloader nicht installiert ist, können Sie ihn mit diesem Befehl installieren: yum install yum-utils.

(2) Die heruntergeladene Datei befindet sich im aktuellen Verzeichnis. Mit dem Parameter --destdir können Sie angeben, in welches Verzeichnis heruntergeladen werden soll.

5) Verwenden Sie yumdownloader, um eine Installationspaketdatei rpm herunterzuladen. Sie können den folgenden Befehl verwenden, um die TAR-Datei im rpm abzufragen:

rpm -qpl coreutils-8.4-37.el6.src.rpm |

# Ausgabe: coreutils-8.4.tar.xz

6) Verwenden Sie den Befehl rpm2cpio, um die RPM-Paketdatei in eine cpio-Archivdatei zu konvertieren, und verwenden Sie dann den Befehl cpio, um eine Archivdatei aus der cpio-Archivdatei zu kopieren und zu extrahieren. Die Ausgabe lautet wie folgt:

rpm2cpio coreutils-8.4-37.el6.src.rpm |. cpio -idv coreutils-8.4.tar.xz

# Ausgabe:

# coreutils-8.4.tar.xz

# 9561 Blöcke

Die Mann-Erklärung von

cpio lautet: cpio kopiert Dateien in ein Archiv

-i: Dasselbe wie --extract, was bedeutet,

zu extrahieren

-d: Identisch mit --make-directories, erstellt bei Bedarf ein Ladeverzeichnis

-v: Dateiverarbeitung auflisten

7) Verwenden Sie den Befehl tar, um das komprimierte Paket coreutils-8.4.tar.xz wie folgt zu dekomprimieren:

tar -xvf ./coreutils-8.4.tar.xz

Zu diesem Zeitpunkt wird der Quellcode des Befehls abgerufen.

Das obige ist der detaillierte Inhalt vonSo erhalten Sie den Quellcode von Befehlen im CentOS-System. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen