всегда удаляется при удалении в пакете

6

Я поддерживаю пакет debian, который включает в себя некоторые файлы конфигурации, установленные в /etc/ . Есть ли способ, который я могу каким-то образом сделать пакет всегда автоматически --purge , когда пользователь выполняет обычный apt-get remove mypackage ?

Причина в том, что у меня есть некоторые файлы конфигурации в / etc, которые действительно должны быть удалены при удалении двоичных файлов, иначе это может привести к странному поведению. Однако я все еще хочу рассматривать их как файлы conf, т. Е. Убедитесь, что apt не просто уничтожает их при каждом обновлении пакета. Но они должны быть удалены, когда пакет будет удален.

В настоящее время я вручную удаляю файлы / etc conf в сценарии postrm. Однако я только выяснил, что у этого есть неудачный побочный эффект: если пользователь удаляет, а затем снова устанавливает пакет, файлы conf не будут переустановлены, потому что apt считает, что они все еще существуют. Так есть способ, которым я могу вручную вызвать полную «чистку» в моем postrm, так что apt знает, что файлы conf исчезли?

    
задан Jeroen 18.10.2012 в 06:29
источник

3 ответа

5

Политика debian запрещает вам возиться с файлами, относящимися к другим пакетам и / или системным изменениям. (или, по крайней мере, я думаю, что это так)

Научите своих пользователей

Вы можете указать пользователям использовать purge вместо remove :

sudo apt-get purge mypackage

Автоматическая перезапись

Если вам нужно перезаписать файлы конфигурации, debian может предложить пользователю установить файлы конфигурации поддерживающего: Ссылка

  

Одна из самых неприятных вещей в отношении программного обеспечения - это когда вы проводите   много времени и усилий, настраивая программу, только чтобы иметь   модернизировать все ваши изменения. Debian решает эту проблему   отмечая такие файлы конфигурации, как conffiles. [55] Когда вы обновляете   пакета вам будет предложено , хотите ли вы сохранить свой старый   файлы конфигурации или нет.

Использовать новые файлы конфигурации по умолчанию

Вы можете сделать это автоматически при обновлении:

apt-get -o Dpkg::Options::="--force-confnew" dist-upgrade

Источники: Ссылка и Ссылка

Обеспечивает / Конфликты / Заменяет

Я не уверен в этом, но я думаю, что вы можете полностью очистить и заменить старую версию пакета новой версией пакета.

Читайте здесь: Ссылка

    
ответ дан Savvas Radevic 18.10.2012 в 09:21
источник
1

откройте терминал и введите эту команду.

alias remove='apt-get remove --purge

Он создаст псевдоним, который вызывается remove и определит его, чтобы включить remove --purge

    
ответ дан Suhaib 18.10.2012 в 06:34
1

Я иногда запускаю aptitude purge '~c' , который очищает все, что ранее не было очищено. Поощряйте людей делать это.

    
ответ дан tumbleweed 06.11.2012 в 16:03