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.