После создания .deb: dpkg:warning при удалении, каталог,/usr/local/bin не пустой так не удаленный

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

Посмотрите man ln и контроль -s опция!

В символьных ссылках общего использования вместо Жестких ссылок.

5
27.10.2014, 22:15
1 ответ

Для этого лучше использовать awk , чтобы поддерживать арифметические операции

cat $1 | awk -v d=$2 '/BookmarkPageNumber:/{$2-=d}1'
-121--93519-

Update Извините, вы забыли, что вам также нужно имя самого верхнего каталога. Я обновил команду, включив «else». Если найден только один каталог, он будет повторять свое имя. Если вызывается «ERROR», можно просто просмотреть содержимое «test.file», чтобы увидеть, какие каталоги находятся в гудроне.

Попробуйте это:

$ zcat test.tar.gz | tar xvf - | \
    awk -F/ '{print $1}' | \
    uniq > test.file && \
    if (($(wc -l 'test.file' | \
    awk '{print $1}')>1));then echo "ERROR";else cat test.file;fi

человек zcat

zcat идентичен gunzip -c. (В некоторых системах zcat может быть установлен как gzcat для сохранения исходной ссылки на сжатие.) zcat распаковывает либо список файлов в командной строке, либо их стандартный ввод и записывает несжатые данные на стандартный вывод. zcat разархивирует файлы, имеющие правильный магический номер, независимо от того, имеют ли они суффикс .gz или нет.

awk -F/' {print $1} | uniq

Напечатайте первое слово, помеченное символом '/', только уникальное.

> test.file

Запись выходных данных в файл

(($ (wc-l 'test.file' | awk '{print $1}') > 1))

Конструкция double ((..)) допускает арифметическое расширение и оценку. wc -l получает число строк в файле. awk «» {print $1} «») > 1 получают только первый столбец, который является номером счетчика строк, и проверьте, больше ли это число чем 1. , затем эхо «ERROR» печать «ERROR», если в tar-файле найдено несколько каталогов.

Надеюсь, что это поможет.

-121--89417-

В целом это предупреждение совершенно безвредно и нормально. Когда dpkg удаляет (или пытается удалить) пакет, он удаляет все файлы и каталоги, созданные в ходе установки пакета. Теперь предположим, что в каталоге есть файлы, которые могут быть удалены в таком сценарии, и dpkg не знает об этих файлах. Это может произойти либо потому, что они были созданы компьютером, либо во время, либо после установки, либо потому, что они были созданы пользователем. Тогда, если не указано, dpkg не будет удалять эти файлы. Так как по умолчанию он не удалит непустой каталог, в таком случае каталог, содержащий эти файлы, не будет удален. Таким образом, после того, как пакет будет удален, вы можете оказаться в основном пустой каталог (или каталоги) с несколькими генерируемыми машиной файлами или что-то в этом роде. Это не проблема - их можно просто удалить вручную.

Следует отметить, что все указанные выше значения по умолчанию являются разумными. Здесь нет никаких ошибок.

В вашем случае вы устанавливаете файлы на /usr/local как часть вашего двоичного пакета Debian, что является нарушением Стандарта Иерархии Файлов и является неправильным . Не делай этого. Пользовательские двоичные файлы должны входить в /usr/bin , например, библиотеки должны входить в /usr/lib и т.д. Предполагается, что пакет создает /usr/local/bin , поскольку dpkg , естественно, уже не знает об этом. (Так как пакет Debian, содержащий файлы/каталоги в /usr/local , является нарушением политики FHS и, следовательно, политики Debian). Поэтому он пытается удалить этот файл при удалении пакета. Прекратите установку в /usr/local , и проблема исчезнет.

Может быть, дать нам немного больше контекста? Почему вы пытаетесь построить свой собственный пакет zsh Debian, а не использовать дистрибутив, который вы используете в любом случае?

Если вы действительно хотите сделать это, вот простой наконечник. Проверьте, как ваш дистрибутив (или даже Debian) пакеты zsh, и просто повторно использовать пакет. Это должно сработать нормально. Нет причин пытаться писать свои собственные, если только вы не пытаетесь научиться упаковывать, что, я полагаю, здесь не так.

9
27.01.2020, 20:35

Теги

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