Как я могу удалить запись установленного пакета, не удаляя файлы?


8

Я сделал ошибку, установив Jenkins из пакета ubuntu, что вызывает бесконечные трудности в управлении обновлениями. Я не спорю с тем, как Ubuntu расположил файлы на диске.

Для любопытных, у jenkins есть внутренний менеджер пакетов, который загружает обновления плагинов, и требуется тщательная координация основных установок jenkins и обновлений плагинов, чтобы избежать хаотических условий. Таким образом, мы тщательно блокируем обновления jenkins с помощью, о-о, apt-get upgrade, когда не знаем точно, что происходит с плагинами.

Итак, я хотел бы убедить dpkg / apt-get забыть, что существует пакет jenkins, не позволяя ему удалять любые существующие файлы.

Кстати, 'install' состоит из одного файла '.war' плюс ссылки /etc/init.d.

Очевидно, я могу сделать резервную копию того, что мне нужно, удалить пакет и восстановить, но я надеялся узнать, что есть неясная опция dpkg, которая забывает удалять файлы.

Есть ли способ?


Вам придется установить его вне apt-get, из исходного кода (make install) или путем резервного копирования всех файлов, удаления пакета и восстановления файлов из резервной копии. Я думаю, что это паршивое решение вашей проблемы, возможно, если бы вы описали проблему лучше, мы могли бы дать вам лучшее решение.
Пантера

он описал проблему хорошо. псевдо-пакеты могут решить практически все. Вы могли бы решить это с пустым псевдопакетом.
RobotHumans

Как пустой псевдопакет исправит что-нибудь? Он хочет, чтобы apt-get забыл, что пакет установлен, поэтому он не будет обновляться.
tgm4883

Ответы:


9

«Лучший» способ сделать это - манипулировать /var/lib/dpkg/status.

ОДНАКО!

Этот файл имеет чувствительный синтаксис; Неправильное поведение может нарушить управление пакетами.

Вот что вы должны сделать:

Найдите блок, который выглядит примерно так (фактический вид может зависеть от пакета, который вы пытаетесь сделать «невидимым»):

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>

Первый оператор Package: <name>- это где вы должны искать, где <name>имя пакета, который вы хотите удалить.

Каждый блок начинается со Package: <name>строки и заканчивается следующей Package:строкой, НО не удаляйте следующий Package:оператор!

Если вы помните об этом, пакет больше не будет установлен в dpkg; несмотря на все файлы все еще доступны.

В лучшем случае это ужасный хак, но он работает просто отлично, я сам делал это несколько раз в прошлом, во времена, когда Ubuntu все еще боролась с битыми пакетами. Я не рекомендую это, это последний вариант.


ОЧЕНЬ приятно (хак) иметь в наборе инструментов! ... Сэкономила мне часы борьбы с пакетом вендора (zoom + libxcb-xtest0 deps) <вздох>
Твикс

3

Все еще очень полезно, даже если взломать. Дополнительным предложением является аналогичное удаление нежелательного пакета из / var / lib / dpkg / available и удаление всех файлов {package}. * Из / var / lib / dpkg / info /

Я использовал это, когда решил установить более новую версию программного обеспечения из исходного кода, которое ранее было установлено как версия, выпущенная для Ubuntu. Сначала я скачал и собрал / установил новую версию, которую хотел, а затем использовал этот хак, чтобы dpkg забыл о старой версии Ubuntu.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.