Einfache Möglichkeit, zu bestimmen, welche Funktionen eines Pakets von einem abhängigen Paket verwendet werden?

Einfache Möglichkeit, zu bestimmen, welche Funktionen eines Pakets von einem abhängigen Paket verwendet werden?

Ich arbeite daran, ein System auf die geringstmögliche Menge an Dateien, Paketen usw. zu reduzieren, die es braucht, um die von mir gewünschte Funktionalität bereitzustellen.

Ich stelle fest, dass viele Pakete, die ich behalten möchte, Abhängigkeiten von Paketen haben, die für die Distribution, die ich erstelle, völlig unnötig und/oder unerwünscht sind, abgesehen von der Tatsache, dass es sich um Abhängigkeiten handelt.

Ich weiß, dass ich den Quellcode für jedes Paket abrufen, eine Liste der Funktionen aus der unerwünschten Abhängigkeit zusammenstellen, den Quellcode des Pakets, das ich behalten möchte, nach den Stellen durchsuchen kann, an denen diese Funktionen aufgerufen werden (falls überhaupt), und die Bibliothek auf nur diese Funktion und möglicherweise deren API oder was auch immer sonst erforderlich ist, um diese Funktionalität für das Paket bereitzustellen, das ich behalten möchte, reduzieren kann.

Ich habe dies jetzt getan,einmalum zu sehen, ob es möglich ist. Das ist es. Allerdings ist es zeitaufwändig, mühsam und kaum für die Automatisierung geeignet.

Gibt es eine Option, die ich nicht finden konnte, dpkgoder gibt es ein Programm, das sich meinen (zugegebenermaßen nicht erstaunlichen) Recherchefähigkeiten entzogen hat, um den von mir gewünschten Effekt zu erzielen?

Antwort1

deborphanVersuche, dieses Problem zu lösen.

aptitudeerledigt dies für Sie im Hintergrund und verfolgt, welche Pakete entfernt werden können, weil sie lediglich einbezogen wurden, um eine Abhängigkeit für ein nicht mehr installiertes Paket zu erfüllen.

debfosterwirbt mit einer etwas ähnlichen Funktionalität, aber ich habe keine praktische Erfahrung damit.

Diese funktionieren alle auf Paketebene und verwenden die deklarierten Abhängigkeiten in dpkgder Datenbank. Ihre Frage scheint darauf hinzudeuten, dass Sie einzelne Pakete zerlegen möchten, um Code und andere Ressourcen zu entfernen, die Sie nicht benötigen. Dies ist eine wesentlich komplexere und anspruchsvollere Aufgabe; ich kann mir nicht vorstellen, dass es eine eindeutige Lösung für dieses Problem gibt.

verwandte Informationen