
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, dpkg
oder 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
deborphan
Versuche, dieses Problem zu lösen.
aptitude
erledigt 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.
debfoster
wirbt 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 dpkg
der 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.