dpkg: предупреждение: при удалении каталог /usr/local не пуст, поэтому не удаляется

Я собрал и установил пакет Debian из следующей структуры папок:

  • myprog
    • DEBIAN
      • control
    • usr
      • local
        • bin
          • myprog.sh

... используя следующие команды:

dpkg -b myprog/ myprog.deb && dpkg -i myprog.deb

Когда я сейчас удаляю пакет, набрав:

dpkg -r моя программа

.. Я получил следующее предупреждение:

dpkg: предупреждение: при удалении myprog каталог '/usr/local' не пуст, поэтому не удаляется.

Поскольку я думаю, что это повседневный сценарий, как я могу избежать предупреждения?

Привет Торстен!

# Редактировать

Я попытался установить файл в /bin вместо /usr/local/bin и не получил предупреждения при его удалении. Похоже, что папка /usr/local/.. не будет рассматриваться dpkg как системная папка (?).


person thorsten    schedule 13.09.2010    source источник
comment
См. ответ на этот вопрос stackoverflow.com/ вопросы/13021002/мой-деб-файл-удаляет-опт/   -  person Rob    schedule 23.09.2019


Ответы (2)


Правильно -- пакеты никогда не должны касаться каталога /usr/local, он зарезервирован для системных администраторов по стандарту иерархии файловой системы и является их зоной ответственности.

person Roman Cheplyaka    schedule 13.09.2010
comment
Ну, некоторые пакеты создают записи в /usr/local, чтобы лучше организовать то, что администраторы могут добавить туда (скажем, связанные с Python, TeX, ca-сертификаты). По крайней мере в одном случае (сертификаты ca) README.Debian предлагает, если мы хотим, чтобы локально созданные пакеты предоставляли новые доверенные сертификаты (скажем, для внутренних центров сертификации), развернуть файлы в /usr/local/share/ca -сертификаты. В конце концов, это нормально, так как он создается ЛОКАЛЬНО, но создает проблемы, если впоследствии вы решите удалить пакет! - person Ricardo Cárdenes; 28.12.2011

Чтобы избежать предупреждения, согласно этой публикации, необходимо создать пакет «core-custom»/dummy, который будет установлен в /opt и потребуется для вашего основного пакета.

Итак, когда вы удалите свой основной пакет, по крайней мере, ваш фиктивный пакет останется в /opt, и dpkg не выдаст предупреждение.

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

person andri_ch    schedule 14.08.2013