Come posso rimuovere il record di un pacchetto installato senza cancellare alcun file?


8

Ho fatto l'errore di installare Jenkins dal pacchetto Ubuntu, che causa stress infiniti qui nella gestione degli aggiornamenti. Non ho dubbi sul modo in cui Ubuntu ha organizzato i file su disco.

Per i curiosi, jenkins ha un gestore di pacchetti interno che scarica gli aggiornamenti dei plug-in ed è necessario un attento coordinamento delle principali installazioni di jenkins e degli aggiornamenti dei plug-in per evitare condizioni caotiche. Quindi dobbiamo bloccare con attenzione gli aggiornamenti di jenkins tramite, oh, apt-get upgrade quando non sappiamo esattamente cosa sta succedendo con i plugin.

Quindi, ciò che mi piacerebbe fare è convincere dpkg / apt-get a dimenticare che esiste un pacchetto jenkins, senza lasciarlo eliminare alcun file esistente.

A proposito, 'install' è costituito da un file '.war' più i collegamenti /etc/init.d.

Ovviamente, posso eseguire il backup di ciò che mi interessa, rimuovere il pacchetto e ripristinare, ma speravo di apprendere che esisteva un'opzione oscura di dpkg che ha dimenticato di eliminare i file.

C'è un modo?


Dovresti installarlo al di fuori di apt-get, dal sorgente (make install) o eseguendo il backup di tutti i file, rimuovendo il pacchetto e ripristinando i file dal backup. Penso che questa sia una pessima soluzione al tuo problema, forse se hai descritto meglio il problema possiamo darti una soluzione migliore.
— Pantera

ha descritto bene il problema. gli pseudo-pacchetti possono risolvere quasi tutto. potresti risolverlo con uno pseudopackage vuoto.
— RobotHumans il

In che modo uno pseudopackage vuoto risolverebbe qualcosa? Vuole che apt-get dimentichi che il pacchetto è installato in modo che non si aggiorni.
— tgm4883,

Risposte:


9

Il modo "migliore" per farlo è manipolando /var/lib/dpkg/status.

PERÒ!

Quel file ha una sintassi sensibile; Farlo nel modo sbagliato può interrompere la gestione del pacchetto.

Ecco cosa devi fare:

Trova un blocco che assomigli un po 'a questo (l'aspetto reale potrebbe dipendere dal pacchetto che stai cercando di rendere' invisibile '):

Package: xserver-xorg-input-vmmouse
Status: install ok installed
Priority: optional
Section: x11
Installed-Size: 136
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Version: 1:12.7.0-2
Provides: xorg-driver-input
Depends: libc6 (>= 2.7), xorg-input-abi-12, xserver-xorg-core (>= 2:1.10.0-0ubuntu1~), xserver-xorg-input-mouse, udev
Description: X.Org X server -- VMMouse input driver to use with VMWare
 This package provides the driver for the X11 vmmouse input device.
 .
 The VMMouse driver enables support for the special VMMouse protocol
 that is provided by VMware virtual machines to give absolute pointer
 positioning.
 .
 The vmmouse driver is capable of falling back to the standard "mouse"
 driver if a VMware virtual machine is not detected. This allows for
 dual-booting of an operating system from a virtual machine to real hardware
 without having to edit xorg.conf every time.
 .
 More information about X.Org can be found at:
 <URL:http://www.X.org>
 .
 This package is built from the X.org xf86-input-vmmouse driver module.
Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>

La prima istruzione Package: <name>è dove devi cercare, dov'è <name>il nome del pacchetto che vuoi rimuovere.

Ogni blocco inizia con una Package: <name>riga e termina con la Package:riga successiva , MA non rimuovere la Package:frase successiva !

Se lo tieni a mente, il pacchetto non sembrerà più installato su dpkg; nonostante tutti i file siano ancora disponibili.

Questo è un trucco terribile al massimo, ma funziona bene, l'ho fatto alcune volte in passato, in un momento in cui Ubuntu era ancora alle prese con pacchetti rotti a volte. Non lo consiglio, è un'ultima risorsa.


MOLTO bello (hack) da avere nella cassetta degli attrezzi! ... Mi ha salvato ore di battaglie con un pacchetto fornitore (zoom + libxcb-xtest0 deps) <sigh>
— Tweeks

3

Ancora molto utile anche se un hack. Un suggerimento aggiuntivo è quello di rimuovere in modo simile il pacchetto indesiderato da / var / lib / dpkg / available e di rimuovere tutti i file {package}. * Da / var / lib / dpkg / info /

L'ho usato quando ho deciso di installare una versione più recente di un software dal sorgente, che era stata precedentemente installata come versione rilasciata da Ubuntu. Prima ho scaricato e creato / installato la nuova versione che volevo, quindi ho usato questo trucco per far dimenticare a dpkg la versione precedente di Ubuntu.

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.