Ich möchte den Quellcode eines Pakets in Debian lesen. Wie kann ich das tun?
Ich möchte den Quellcode eines Pakets in Debian lesen. Wie kann ich das tun?
Antworten:
Das Herunterladen von Quellcode aus Debian-Repositorys ist so einfach wie das Ausführen apt-get source <PACKAGE>
. Es werden 3 Dateien in Ihr aktuelles Verzeichnis gestellt, .dsc
die das Paket beschreiben, .orig.tar.gz
die unveränderte Quellen enthalten und .diff.gz
die Debian-spezifische Änderungen enthalten. Wenn Sie jedoch eine Fehlermeldung erhalten E: Unable to find a source package for <PACKAGE>
, ist das Quellcode-Repository möglicherweise nicht angegeben. Gehen Sie also zu /etc/apt/sources.list
(oder einer Datei /etc/apt/sources.list.d/
, die Ihr Debian-Repository enthält) und suchen Sie eine Zeichenfolge wie:
deb ftp://ftp.debian.org/debian wheezy main contrib non-free
Wechseln deb
zu deb-src
:
deb-src ftp://ftp.debian.org/debian wheezy main contrib non-free
Aktualisieren Sie die Paketindexdateien mit sudo apt-get update
und versuchen Sie es erneut. Siehe auch:
Eine zweite Möglichkeit besteht darin, den Quellcode direkt vom Upstream herunterzuladen, anstatt ihn aus Debian-Repositorys herunterzuladen. Dies hat den Vorteil, dass Sie, wenn Sie den Quellcode nicht nur lesen, sondern auch etwas ändern möchten, ihn direkt festschreiben und an den Upstream senden können (vorausgesetzt, es handelt sich nicht um einen Debian-Patch).
Normalerweise finden Sie die URL des Upstream-Quellcode-Repositorys in der Datei /usr/share/doc/$package_or_program_name/copyright
.
$ head /usr/share/doc/git/copyright
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Contact: git@vger.kernel.org
Source: https://www.kernel.org/pub/software/scm/git/
Files: *
Copyright: © 2005-2014, Linus Torvalds and others.
License: GPL-2
Files: xdiff/*
Copyright: © 2003-2009, Davide Libenzi, Johannes E. Schindelin
Auf diese Datei wird auch von packages.debian.org verwiesen (Suche nach "Copyright File").