Into: Ich lerne gerne durch Lesen von Quellen. Es ist jedoch anstrengend, sie über das Internet zu suchen, das auf viele verschiedene Projektwebsites verteilt ist. Ich würde gerne ein zentrales, durchsuchbares Repo mit Quellen für viele, viele Apps an einem Ort sehen.
- Wenn jemand die Dokumentation eines Linux-Tools finden möchte, ist der beste Ort :
man toolname
. - Wenn ich Linux-Quellen "on-demand" durchsuchen möchte, kann ich jederzeit zu folgenden Elementen springen: Linux-Querverweis .
- Wenn ich die häufigsten Mitarbeiter finden möchte, kann ich alle Quellen in Coreutils finden .
- Wenn ich überprüfen möchte, wie etwas erstellt wird, kann ich (zum Beispiel) in http://www.archlinux.org/packages/ springen und überprüfen, ob es sich um pkgbuild handelt.
Gibt es ein Repo, das die Quellen der meisten Tools an einem Ort enthält? - Genau wie man
Dokumentation oder Linux Cross Reference- Kernelquellen.
Ich meine etwas für "schnelle" "On-Demand" -Überprüfungen, wie Dinge implementiert werden. (Ja, ich kenne Google -> aber ich habe die Routine satt: 1. Projekt-Site durchsuchen 2. Repo durchsuchen oder noch schlimmer -> Repo auschecken 3. Löschen, wenn fertig)
ANMERKUNG:
Ich habe gestresst, ich möchte Tools überprüfen: schnell, schnell, on-demand.
Es bedeutet: Ich möchte nicht die gesamte App mit ihren Quellen installieren, nur um einen Blick auf die Quellen zu werfen. (Übrigens ist eine Webressource vorzuziehen, damit ich Quellen von vielen Computern überprüfen kann - ich habe nicht auf allen einen Administrator)
quelle
apt-get source $PACKAGE-NAME
nachdem Sie das Quell-Repository hinzugefügt habenapt-get source
können Sie diesen Befehl als normaler Benutzer ausführen.Antworten:
Lassen Sie mich Ihre Frage mit einer alternativen Antwort beantworten. Ich denke, Sie möchten den Code für die traditionellen Unix-Befehlszeilentools lesen, nicht nur die GNU-Version davon. Das Lesen des Codes ähnlicher Tools aus verschiedenen Projekten ist eine gute Methode, um verschiedene Ideen und Implementierungen zu lernen.
GNU hat eine schöne Weboberfläche für das Repo von Coreutils: http://git.savannah.gnu.org/cgit/coreutils.git
Die BSD-Familie verfügt über ähnliche Webschnittstellen für die Repos:
Die BSD-Codebasis ist interessant, da normalerweise weniger Code für dieselben Tools verwendet wird, dh: unterstützt nur traditionelle Optionen, keine zusätzlichen Optionen, sh ist eine echte Shell und nicht nur eine Verknüpfung zu einer anderen großen Shell (Bash) usw. Tools, die Coreutils ähnlich sind sind in bin, sbin, usr.bin und usr.sbin.
Sie können auch dieselben Weboberflächen durchsuchen, wenn Sie den Code zum Erstellen von Software von Drittanbietern lesen möchten (ähnlich wie bei pkgbuild von arch). NetBSD und DragonFly verwenden pkgsrc aus dem NetBSD-Repo. OpenBSD und FreeBSD haben diese Frameworks in ihren jeweiligen Repos.
Andere für Ihren Zweck interessante Repos sind:
quelle
Da es keinen zentralen Ort für die Open Source-Entwicklung gibt, gibt es kein zentrales Repository, das die meisten Open Source-Software enthält. Einige verwenden GitHub, BitBucket, private Server, Sourceforge, Launchpad usw. Dies ist also eine wirklich verteilte Umgebung, und es gibt keinen unmittelbaren Vorteil, wenn nur ein Repository die Quelle kopiert.
Andererseits stellen Binärdistributionen (Versand von Binärdateien anstelle von Quellcode) normalerweise die Quelle für die meisten ihrer Pakete bereit und stellen sie allen Benutzern zur Verfügung. Ihre beste Chance besteht also darin, die von Distributions bereitgestellte Infrastruktur zu nutzen. Bitte beachten Sie, dass sie nicht unbedingt die neuesten Änderungen und Korrekturen enthalten und möglicherweise veraltet sind.
Beispiele zum Herunterladen eines Quellpakets von Ihrer Distribution:
Für Arch werfen Sie einen Blick auf die Antworten unter den Antworten auf eine ähnliche Frage zum Stapelüberlauf.
Wenn Sie nur den Quellcode herunterladen möchten, können Sie packages.debian.org verwenden, z . B. einen Link für coreutils . Dadurch wird ein Download-Link zum Originalpaket (
orig.*
oder zur bereinigten Quelle für einige Paketedsfg.*
) bereitgestellt . Sie können dasselbe mit der Arch Linux-Paketliste tun, z. B.: Arch coreutils page . DerDownload from Mirror
wird das Paket herunterladen.quelle