Como posso remover o registro de um pacote instalado sem excluir nenhum arquivo?

3

Eu cometi o erro de instalar o Jenkins a partir do pacote ubuntu, o que causa estresse sem fim por aqui no gerenciamento de atualizações. Eu não tenho nenhuma discussão sobre como o Ubuntu organizou os arquivos no disco.

Para os curiosos, o jenkins tem um gerenciador de pacotes interno que baixa atualizações de plugins e uma coordenação cuidadosa das instalações principais do jenkins e atualizações de plugins é necessária para evitar condições caóticas. Então, temos que bloquear cuidadosamente as atualizações do Jenkins através do upgrade do apt-get quando não sabemos exatamente o que está acontecendo com os plugins.

Então, o que eu gostaria de fazer é persuadir o dpkg / apt-get a esquecer que existe um pacote jenkins, sem permitir que ele delete nenhum arquivo existente.

A propósito, o 'install' consiste em um arquivo '.war' mais os links /etc/init.d.

Obviamente, posso fazer backup do que me interessa, remover o pacote e restaurá-lo, mas esperava descobrir que havia uma opção obscura do dpkg que se esqueceu de excluir arquivos.

Existe uma maneira?

    
por bmargulies 06.12.2011 / 23:56

2 respostas

4

A melhor maneira de fazer isso é manipular /var/lib/dpkg/status .

NO ENTANTO!

Esse arquivo tem uma sintaxe confidencial; Fazer isso da maneira errada pode quebrar o seu gerenciamento de pacotes.

Veja o que você precisa fazer:

Encontre um bloco parecido com este (a aparência real pode depender do pacote que você está tentando tornar 'invisível'):

Package: xserver-xorg-input-vmmouse
Status: install ok installed
Priority: optional
Section: x11
Installed-Size: 136
Maintainer: Ubuntu Developers <[email protected]>
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 <[email protected]>

A primeira instrução Package: <name> é onde você deve procurar, onde <name> é o nome do pacote que você deseja remover.

Cada bloco começa com uma linha Package: <name> e termina com a próxima linha Package: , MAS não remove a próxima instrução Package: !

Se você tiver isso em mente, o pacote não aparecerá mais instalado no dpkg; apesar de todos os arquivos ainda estarem disponíveis.

Este é um truque terrível na melhor das hipóteses, mas funciona muito bem, já fiz isso algumas vezes no passado, em um momento em que o Ubuntu ainda estava lutando com pacotes quebrados às vezes. Eu não recomendo, é uma opção de último recurso.

    
por user2817 30.03.2012 / 11:20
1

Ainda é muito útil, mesmo que seja um hack. Uma sugestão adicional é similarmente remover o pacote indesejado de / var / lib / dpkg / available e remover todos os arquivos do pacote {package}. * De / var / lib / dpkg / info /

Eu usei isso quando decidi instalar uma versão mais recente de um software do código-fonte, que havia sido instalado anteriormente como a versão lançada pelo Ubuntu. Primeiro eu baixei e construí / instalei a nova versão que eu queria, então usei este hack para fazer o dpkg esquecer a versão mais antiga do Ubuntu.

    
por Norman Henderson 25.08.2017 / 08:17

Tags