dpkg возвращает ошибку при установке пакета python (Debian)

Только с ksh, bash -O extglob и zsh -o kshglob:

test_file-+([[:digit:]])-master.tar.gz

В bash сначала нужно установить extglob опцию. Этот +(...) соответствует одному или нескольким вхождениям заданных шаблонов. [:digit:] внутри выражения со скобками [...] - это определенный POSIX класс символов, который включает индо-арабские десятичные цифры ([[:digit:]] то же самое, что [0123456789] или [0-9]).

Он будет соответствовать:

test_file-1234-master.tar.gz
test_file-1-master.tar.gz
test_file-123456789-master.tar.gz

Он будет не соответствовать:

test_file-1b-master.tar.gz
test_file--master.tar.gz
test_file-a1-master.tar.gz
test_file-abcd-master.tar.gz
test_file-Ⅵ-master.tar.gz # roman numeral
test_file-٨-master.tar.gz  # Eastern Arabic decimal digit

Команда tar в вашем вопросе должна быть выполнена следующим образом (с циклом):

shopt -s extglob # bash
# setopt kshglob # zsh
for f in test_file-+([[:digit:]])-master.tar.gz; do
    tar xf "$f"
done

Более идиоматический короткий синтаксис в zsh следующий:

setopt extendedglob
for f (test_file-[0-9]##-master.tar.gz) tar xf $f

(# - расширенный глобальный эквивалент regexp *, и ## или +).

1
15.04.2018, 22:15
1 ответ

Похоже, что файл optparse.pyиз вашей установки Python 2.7 был поврежден. В частности, похоже, что он был перезаписан и заменен копией optparse.pyиз Python 3.

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

Не совсем уверен, как вы могли узнать, что могло вызвать это... Если вы установили модули Python от имени пользователя root, используя что-то, отличное от вашей ОС. дистрибутив пакета, это могло бы объяснить это... Возможно, если бы вы что-то установили, используя pip? Хотя pipобычно хорошо разделяет модули Python 2 и Python 3... Кроме того, я не понимаю, почему это касается конкретно optparse.py...

В любом случае, чтобы решить эту проблему, вы можете попросить apt -get переустановить пакет, который должен исправить повреждение:

$ sudo apt-get install --reinstall libpython2.7-minimal
1
28.01.2020, 00:37

Теги

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