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