Wo finden Sie am besten Quellen für Standard-Linux-Befehlszeilentools? [geschlossen]

10

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 manDokumentation 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)

Grzegorz Wierzowiecki
quelle
3
Bei den meisten Distributionen können Sie Quellen für Pakete mithilfe des Paketmanagers installieren.
Jippie
3
Für Debian können Sie einfach ausführen, apt-get source $PACKAGE-NAMEnachdem Sie das Quell-Repository hinzugefügt haben
Ulrich Dangel
Pakete antworten normalerweise auf andere Bibliotheken, um ihre Funktionen zu vervollständigen
Gänseblümchen
Ich möchte nicht jede App installieren, die ich überprüfen möchte.
Grzegorz Wierzowiecki
3
@GrzegorzWierzowiecki Sie müssen keine Anwendung installieren, um einen Blick auf die Quelle zu werfen, zumindest apt-get sourcekönnen Sie diesen Befehl als normaler Benutzer ausführen.
Ulrich Dangel

Antworten:

6

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:

Rufo El Magufo
quelle
Gute Antwort. Vielen Dank, dass Sie zum Vergleich ermutigt haben - der Vergleich verschiedener Ansätze ist lehrreich. Könnten Sie Ihre Antwort mit einigen Linux-Repos erweitern? BSD-Codebasen sind interessant, aber ich befürchte, dass es wichtige Unterschiede bei Syscall usw. gibt, sodass Linux-Repos eine großartige Ergänzung Ihrer Liste darstellen.
Grzegorz Wierzowiecki
Einer der Vorteile von * BSD ist, dass sich der gesamte Code innerhalb eines Repos befindet. Das Problem mit Linux ist, dass jedes Paket einen anderen Ursprung hat. Das Coreutils-Repo (und das Bash-Repo für die integrierte Funktionalität git.savannah.gnu.org/cgit/bash.git/tree ) deckt fast alle traditionellen Tools ab. Die "Linux Distro" -Repos enthalten nur das Framework zum Erstellen der Pakete von Drittanbietern und einige Patches. Die Repos enthalten keinen echten Code (enthalten nur den Code für die Tools der Distribution).
Rufo El Magufo
Respekt vor Unterschieden zwischen BSD und Linux. Die APIs sind ähnlich und gewohnheitsmäßig mit POSIX und anderen Standards kompatibel. Der Unterschied ist die interne Implementierung jeder API. Tatsächlich funktionieren Tools von GNU unter * BSD und Tools von * BSD unter Linux. Beispiel: Debian ( packages.debian.org ) verfügt über einige * BSD-Tools und die * BSDs verfügen über verfügbare Coreutils und andere GNU-Projekte.
Rufo El Magufo
2

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:

yumdownloader --source packagename
apt-get source packagename

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 Pakete dsfg.*) bereitgestellt . Sie können dasselbe mit der Arch Linux-Paketliste tun, z. B.: Arch coreutils page . Der Download from Mirrorwird das Paket herunterladen.

Ulrich Dangel
quelle