Ответ Кусалананды в основном правильный. Чтобы подсчитать строки, вам нужно искать новые строки. Однако теоретически возможен поиск новых строк без полной распаковки файла.
gzip использует сжатие DEFLATE. DEFLATE представляет собой комбинацию кодирования LZ77 и Хаффмана. Может быть способ выяснить только узел символа Хаффмана для новой строки и игнорировать остальные. Почти наверняка есть способ искать новые строки, закодированные с использованием L277, вести подсчет байтов и игнорировать все остальное.
Так что, ИМХО, теоретически возможно придумать решение более эффективное, чем unpigz или zgrep. Это, конечно, непрактично (если только кто-то уже не сделал это).
Я обычно получаю это, когда использую pip для установки / обновления dnspython. Это может произойти непреднамеренно при использовании pip для установки какого-либо другого пакета python, который имеет dnspython в качестве зависимости. Попробуйте вручную удалить что-нибудь в /usr/lib/python2.7/site-packages/, относящееся к dnspython, а затем попробуйте снова установить с помощью dnf.
Обычно это означает, что файл каким-то образом был поврежден при передаче. Обычно я предлагаю
sudo dnf clean packages
, а затем снова
sudo dnf install python-dns
.Похоже, вы уже пробовали это, включая переход непосредственно к koji (системе сборки пакетов Fedora) для получения более новой версии. Итак, затем я бы запустил rpm -K python-dns-1.12.0-2.fc23.noarch.rpm
(или все, что у вас есть для фактического файла RPM). Это должно вернуть, что контрольные суммы и подписи в порядке. Затем: