Пожалуйста, откройте:
/etc/yum/pluginconf.d/fastestmirror.conf
... и измените 1 на 0 во включенном параметре.
Затем:
yum clean all
Кроме того, вместо того, чтобы навсегда отключить плагин fastestmirror, вы можете добавить сломанное зеркало в строку исключения в:
/etc/yum/pluginconf.d/fastestmirror.conf
Это все, что вы можете сделать, когда получаете ошибки от зеркал, которые сильно устарели. .
Стандартная команда tar
позволяет просмотреть содержимое архива. Краткая форма для этого tar -tf archive.tar
.
Используя это вместе с find
, grep
и подстановкой команд, вы получаете следующее:
rm -f $(find. -d | head -n -1 | grep -Fv "$(tar -tf archive.tar)")
Запустите это в каталоге, в котором вы хотите разместить содержимое архива, и замените archive.tar
путем к файлу архива.
Работа справа налево для конвейера внутри самой внешней подстановки команд:
find. -d
:Выводит список всех файлов и каталогов в текущем каталоге, перечисляя их подробно -в первом порядке. Первый порядок глубины -важен здесь, так как мы планируем использовать этот список файлов для удаления и, следовательно, должны удалить содержимое каталога перед удалением самих каталогов. head -n -1
:Исключить последнюю строку из команды find
. Это удалит запись для самого /path
, которая может присутствовать или отсутствовать в архиве. Если бы мы не делали вещи в глубине -первого порядка, это было бы tail -n -1
. grep -Fv "$(tar -tf archive.tar)"
:Передайте список архива команде grep, которая затем отфильтрует эти строки из списка, возвращенного find
, так что только файлы, которых нет в архиве, будут переданы во внешний rm
команда. Пара замечаний:
find
сообщает о вещах. С GNU tar и большинством архивов это должно работать. Если это не для вашего случая, вы, вероятно, можете заставить его работать, используя sed
или awk
на выходе команды tar внутри самой внутренней подстановки команд. Трюк grep -v
у меня не сработал, так как архив был довольно большим, а команда вылетела с Слишком длинным списком аргументов . Итак, вот подход, который я использовал для удаления накопленного хлама установки MediaWiki:
$ tar -tzf mediawiki-1.35.0.tar.gz | cut -d/ -f2- > foo
$ find /var/www/mediawiki/ | cut -d/ -f5- | while read f;
do grep -qw "^${f}$" foo || echo "not in archive: ${f}"; done
Нужно немного поэкспериментировать с аргументом -f
для cut
, чтобы понять его правильно, и команда здесь ничего не удаляет , она просто распечатает то, что не включены в наш архив.