Я сделал ошибку, установив Jenkins из пакета ubuntu, что вызывает бесконечные трудности в управлении обновлениями. Я не спорю с тем, как Ubuntu расположил файлы на диске.
Для любопытных, у jenkins есть внутренний менеджер пакетов, который загружает обновления плагинов, и требуется тщательная координация основных установок jenkins и обновлений плагинов, чтобы избежать хаотических условий. Таким образом, мы тщательно блокируем обновления jenkins с помощью, о-о, apt-get upgrade, когда не знаем точно, что происходит с плагинами.
Итак, я хотел бы убедить dpkg / apt-get забыть, что существует пакет jenkins, не позволяя ему удалять любые существующие файлы.
Кстати, 'install' состоит из одного файла '.war' плюс ссылки /etc/init.d.
Очевидно, я могу сделать резервную копию того, что мне нужно, удалить пакет и восстановить, но я надеялся узнать, что есть неясная опция dpkg, которая забывает удалять файлы.
Есть ли способ?
Ответы:
«Лучший» способ сделать это - манипулировать
/var/lib/dpkg/status
.ОДНАКО!
Этот файл имеет чувствительный синтаксис; Неправильное поведение может нарушить управление пакетами.
Вот что вы должны сделать:
Найдите блок, который выглядит примерно так (фактический вид может зависеть от пакета, который вы пытаетесь сделать «невидимым»):
Первый оператор
Package: <name>
- это где вы должны искать, где<name>
имя пакета, который вы хотите удалить.Каждый блок начинается со
Package: <name>
строки и заканчивается следующейPackage:
строкой, НО не удаляйте следующийPackage:
оператор!Если вы помните об этом, пакет больше не будет установлен в dpkg; несмотря на все файлы все еще доступны.
В лучшем случае это ужасный хак, но он работает просто отлично, я сам делал это несколько раз в прошлом, во времена, когда Ubuntu все еще боролась с битыми пакетами. Я не рекомендую это, это последний вариант.
источник
Все еще очень полезно, даже если взломать. Дополнительным предложением является аналогичное удаление нежелательного пакета из / var / lib / dpkg / available и удаление всех файлов {package}. * Из / var / lib / dpkg / info /
Я использовал это, когда решил установить более новую версию программного обеспечения из исходного кода, которое ранее было установлено как версия, выпущенная для Ubuntu. Сначала я скачал и собрал / установил новую версию, которую хотел, а затем использовал этот хак, чтобы dpkg забыл о старой версии Ubuntu.
источник