$ awk -F/ 'NR==1{for(i=1;i<=NF;i++){Arr[$i]++}next}{for(j=1;j<=NF;j++){if ($j in Arr){Arr[$j]++}}}END{for (k in Arr){if(NR==Arr[k]&&k+0!=0){print k,Arr[k]}}}' input.txt
извлечь первую строку с разделителем / и сохранить в массиве. начиная со второй строки и далее, проверьте, есть ли поле в массиве. если он есть в массиве, увеличьте значение. В конце сверьте значение с номером строки и убедитесь, что это номер.
Я не уверен, почему это так, но похоже, что репозиторий epel-release (откуда вы устанавливаете dnf
) несовместим с самим dnf
. После установки dnf
сначала удалите его, используя yum
:
yum remove epel-release
, а затем:
dnf repolist
dnf list installed
и т. Д. работал (по крайней мере, в моей системе CentOS 7).
Проблема может быть связана с тем, что установленная версия libsolv не поддерживает сжатие bzip2. Как и у меня, у вас может быть установлена не самая последняя версия из-за установки приоритетов в конфигурационных файлах репозитория.
Failed to open: /var/cache/dnf/x86_64/7/x86_64/7/epel/...xml. bz2
См. сообщение об ошибке 1258416.
libsolv-0.6.14-1.el7 был перенесен в стабильный репозиторий Fedora EPEL 7. Если проблемы все еще сохраняются, пожалуйста, отметьте это в этом сообщении об ошибке.
В репозитории CentOS base
установлен libsolv 0.6.11-1.el7, а в epel
- 0.6.14-1.el7.
yum --showduplicates --disablerepo=base list libsolv
Installed Packages
libsolv.x86_64 0.6.11-1.el7 @base
Available Packages
libsolv.x86_64 0.6.14-1.el7 epel
Решение
Установите libsolv из репозитория epel
.
yum --disablerepo=base install libsolv-0.6.14-1.el7
Правка: 2016-06-17
Как видно из комментариев, это все еще активная ошибка с репозиториями пакетов. Это связано с тем, что libsolv
был помечен как "выбывший" в EPEL без объяснения причин (Theodor van Nahl). Dennis M. Pöpperl указывает на то, что RPM-версии, которые вроде бы работали в CentOS и RHEL, доступны здесь в системе сборки Fedora.