Apt potrebbe eliminare i pacchetti necessari al software che gli utenti hanno installato dal sorgente?


14

Apt gestisce le dipendenze tra i pacchetti installati dai suoi repository o *.debfile. Tuttavia, che dire del software che gli utenti hanno compilato e installato dal sorgente ./configure && make && make installsenza prima creare un .debfile? È possibile che Apt possa rimuovere i pacchetti necessari per tali software? L'installazione del software dalla fonte /opto /usr/localfarebbe la differenza?


1
È possibile installare un pacchetto equivs come supporto per un pacchetto installato dal sorgente, per forzare le dipendenze a rimanere installate.
Faheem Mitha,

Risposte:


13

APT non sa nulla del software installato manualmente. Non sa di quali librerie ha bisogno il software o altro.

Quando APT installa un pacchetto solo per soddisfare le dipendenze di un altro pacchetto, questo pacchetto viene contrassegnato come installato automaticamente. Se si rimuovono tutti i pacchetti che dipendono da un pacchetto installato automaticamente, quel pacchetto viene rimosso quando si esegue apt-get autoremove; frontend di livello superiore per APT offriranno generalmente di farlo dopo altra manutenzione. Per evitare la rimozione dei pacchetti necessari per il software installato localmente, contrassegnare questi pacchetti come installati manualmente:apt-mark manual PACKAGE-NAME o la mchiave in aptitude.

Per trovare i pacchetti di libreria necessari per un eseguibile binario, esegui ldd /path/to/executable. Per ogni riga contenente , eseguire/usr/lib/SOMETHINGdpkg -S /usr/lib/SOMETHING per visualizzare il nome del pacchetto contenente quella libreria. Per gli script, head -n 1 /path/to/scriptmostra l'interprete utilizzato dallo script; assicurarsi che questo interprete rimanga installato. Trovare quali librerie sono utilizzate da uno script può essere difficile, non esiste un modo universale per farlo.

Se hai installato manualmente una versione più recente di un pacchetto presente nella tua distribuzione, osserva le dipendenze del pacchetto della distribuzione e contrassegnale come installato manualmente.


apt-getin Debian Jessie non ha l' manualopzione. Per questi suggerimenti di installazione manuale o automatica (matic) ho usato apt-markinvece. ( apt-mark manual pkg, apt-mark showmanual pkg, apt-mark auto pkg, Etc.)
Lekensteyn

@Lekensteyn intendevo apt-mark, grazie.
Gilles 'SO- smetti di essere malvagio' il

14

apte dpkgpuò assolutamente rimuovere il software richiesto da altri software installati localmente che non rientra nell'ambito del sistema di gestione dei pacchetti. Semplicemente non c'è modo per apte dpkgsapere che tale software potrebbe esistere.

La posizione in cui è installato tale software non fa alcuna differenza: potrebbe essere /opto/usr/local nelle directory home degli utenti (nel qual caso anche l'amministratore di sistema potrebbe non essere a conoscenza della sua presenza), o ovunque, davvero.

Tecnicamente apto dpkgpotrebbe anche rimuovere il software richiesto da altri software che fa parte del sistema di gestione dei pacchetti, se quest'ultimo non riesce a dichiarare che dipende dal precedente software. Tuttavia, il processo per la creazione di pacchetti deb include l'automazione per evitare che i manutentori dei pacchetti dimentichino di dichiarare una dipendenza del genere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.