Wie kann ich den Ubuntu-Quellcode durchsuchen?

8

Wie kann ich den in Ubuntu verwendeten Quellcode durchsuchen?

Es gibt eine Benachrichtigung, die ich ändern möchte, um mehr Daten aufzunehmen, aber es ist nicht offensichtlich, zu welchem ​​Paket es gehört. Aber es enthält eine ziemlich spezifische Zeichenfolge, nach der man leicht suchen kann. Ich weiß, dass Ubuntu eine große Anzahl von Projekten enthält, aber ich hoffe, dass es einen guten Weg gibt, die Quelle zu finden, wenn nicht klar ist, welches Programm dafür verantwortlich ist.

Rob Mosher
quelle
Welche Benachrichtigung?
Rinzwind
Was genau möchten Sie hinzufügen? Welche Benachrichtigung an welchen Teil des Betriebssystems?
Thomas Ward
1
Die Benachrichtigung ist irrelevant. Ich suche nicht nach diesem bestimmten Stück Quellcode. Ich suche auf jeden Fall nach einer allgemeinen Lösung für dieses Problem. Die Details sind nur da, um zu verdeutlichen, in welchen Situationen ich dies tun möchte.
Rob Mosher
notify-send funktioniert bei Ihnen nicht?
Gänseblümchen
1
@ warl0ck wie würde ich in diesem Fall notify-send verwenden? Es scheint, dass eine Benachrichtigungsnachricht erstellt wird, anstatt die Quelle einer Nachricht aufzuspüren.
Rob Mosher

Antworten:

3

Es gibt eine Ubuntu Code Search-Website, auf der Sie den Quellcode aller Pakete in den Ubuntu-Repositories durchsuchen können: http://ubuntu-codesearch.surgut.co.uk/

Die obige Seite scheint nun schon eine Weile nicht mehr verfügbar zu sein. Ich werde versuchen, mit dem Betreuer in Kontakt zu treten.

Bearbeiten: Ich habe mit dem Betreuer gesprochen, und dieses Projekt hat im Moment keine große Priorität. Ich würde empfehlen, stattdessen die Debian-Codesuche zu verwenden, da wir viele Pakete / Codes mit ihnen teilen: https://codesearch.debian.net/

Logan
quelle
6

Wenn es so spezifisch ist, sollte Google Ihnen helfen können - es hat Tonnen von öffentlich verfügbarem Quellcode indiziert . Ich wäre sehr überrascht, wenn es nichts finden würde.

Wenn dies nicht gelingt (oder eine andere Art der Websuche), stringsist dies eine ziemlich praktische kleine Anwendung. Es liest alle Zeichenfolgen aus einer Datei, auch wenn es binär ist. Ich habe herumgehackt und Sie können dies verwenden, um irgendwo auf Ihrem Computer einen Satz zu finden. Diese Version sucht nach "schlecht" in/usr/bin

find /usr/bin -exec bash -c 'if [[ $(strings {} | grep -i bad) ]]; then echo "{}"; fi' \;

Das ist offensichtlich eine ziemlich harte Art, Dinge zu tun. Aber warte, da ist noch mehr. Sie können das Paket für jedes Ergebnis finden, während Sie gehen:

find /usr/bin -exec bash -c 'if [[ $(strings {} | grep -i bad) ]]; then dpkg -S "{}"; fi' \;

Das nenne ich großartig. Hier ist es in Aktion, auf der Suche nach "Kein solches Gerät"

oli@bert:/var/log$ find /usr/bin -exec bash -c 'if [[ $(strings {} | grep -i "No such device") ]]; then dpkg -S "{}"; fi' \;
handbrake-gtk: /usr/bin/ghb
usbutils: /usr/bin/usbhid-dump
Oli
quelle
0

Die Antwort, von der ich weiß, dass Sie sie gefürchtet haben:

Laden Sie alle Quellpakete herunter und suchen Sie sie lokal. Es ist ungefähr 40 GB, gezippt. Ich würde damit beginnen, apt-Mirror nur mit einzurichtendeb-src Einträgen .

ændrük
quelle
-1

Ubuntu verwendet den Debian Linux-Quellcode. Sie müssen jedoch wissen, dass Linux ein Kernel (http://www.kernel.org/) ist und eine Distribution die mitgelieferte Software (http://www.gnu.org/). Sie können das Ubuntu Source-Repository von archive.ubuntu.com herunterladen. Sie können auch auf https://code.launchpad.net/ubuntu verweisen

Vibhav Pant
quelle