Попробуйте вместо этого, так как он возьмет ваш вывод и сделает его одной гигантской строкой с пробелами, разделяющими имена файлов.
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > list.log
awk '$1=$1' ORS=' ' list.log > newlist.log
apt-get install --reinstall $(cat newlist.log)
Единственное изменение в исходном сообщении - это добавление во второй оператор awk, что, вероятно, можно сделать в строке с первым, чтобы создать нужный файл.
Это изменение заставит apt-get корректно перезагружать пакеты и все недостающие зависимости, которые не были установлены в первый раз, и переустанавливать их по порядку.
Если мы сделаем это встроенным, я думаю, что это будет выглядеть так:
dpkg --get-selections | grep -v deinstall | awk '{print $1}' | awk '$1=$1' ORS=' ' > list.log
И затем убедитесь, что вы действительно установили в системе правильные пакеты (или последние), очистите кэш apt, обновите его, а затем повторно загрузите все файлы (вы можете пропустить первые два шага, если хотите только то, что у вас есть в кеше переустановил):
apt-get clean && apt-get update && apt-get install --reinstall $(cat list.log)
У меня было более 2 тыс. Пакетов, установленных в обновленной системе с зависанием. Использование dpkg --configure -a завершило установку (это было на последнем этапе). Затем я запустил это, чтобы все переустановить правильно.
Или, как указано на /superuser/298912/reinstall-debian- while-keeping-installed-packages-and-data :
sudo apt-get install --reinstall $(dpkg --get-selections | grep -w 'install$' | cut -f1)
Просто убедитесь, что вы запускаете «init 2» перед любой переустановкой, поскольку некоторые компоненты X или ваш любимый оконный менеджер могут не захотеть переустанавливаться.