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

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

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

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

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

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

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

8
задан 7 December 2011 в 03:14

2 ответа

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

ОДНАКО!

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

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

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

[ 110]

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

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

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

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

0
ответ дан 7 December 2011 в 03:14

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

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

0
ответ дан 7 December 2011 в 03:14

Другие вопросы по тегам:

Похожие вопросы: