Добавление -f
переключатель (никакая сортировка) заставил его показать что путь ко мне.
man ls
[root@dusknoir ~/java/test]# ls -fl
total 0
-rw-r--r-- 1 root wheel 0 Jun 1 13:27 _1
-rw-r--r-- 1 root wheel 0 Jun 1 13:27 _2
-rw-r--r-- 1 root wheel 0 Jun 1 13:27 _3
-rw-r--r-- 1 root wheel 0 Jun 1 13:27 1
-rw-r--r-- 1 root wheel 0 Jun 1 13:27 2
-rw-r--r-- 1 root wheel 0 Jun 1 13:27 3
Попробуйте это, помня, что я не протестировал его:
dpkg --get-selections > selections
sudo dpkg --clear-selections
sudo dpkg --set-selections < selections
sudo apt-get --reinstall dselect-upgrade
Источники:
При использовании об/мин в конечном счете Вы вызываете повреждение в базе данных пакета, существует опция восстановить эту базу данных, таким образом препятствуя тому, чтобы Вы имели для прохождения через в основном переустанавливания. Поскольку один пользователь здесь указал, что это сделано в Debian dpkg --configure -a
.
dpkg --configure -a
должен настроить все распакованные и ненастроенные пакеты. См. страницы справочника dpkg
и dpkg-reconfigure
и также debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html
– Ortomala Lokni
06.02.2015, 00:42
В Одним из ресурсов , цитируемых Mucas Malor, я нашел скрипт под названием Populator, который, кажется, рядом с решением. Если вы устанавливаете переменную выбора пакетов в список всех ваших пакетов
pkglist = $ (dpkg - get-selections | grep -v deinstall | cut -f1)
Вы можете запускать скрипт и переустановить все пакеты Но система, вероятно, будет иметь некоторые проблемы. Было бы лучше проверить его на виртуальной машине первым.
Вот вариант скрипта со ссылкой выше:
#!/bin/bash
#
# Script to pre-populate apt-get proxy for faster later downloads.
# It uses apt-get and wget to pull all the specified packages.
#
# Make sure only root can run our script
if [[ $EUID -ne 0 ]]; then
echo "You're not root, are you?" 1>&2
exit 1
fi
# Specify wanted packages
PKGLIST="exaile"
# Clears out the local repository of retrieved package files
apt-get clean
# Resynchronize the package index files from their sources
apt-get update
# Re-install specified packages at the newest version.
apt-get install --reinstall $PKGLIST
Если ошибка показана, что определенные пакеты не могут быть переустановлены запускать эту команду, чтобы попробовать еще раз:
sudo apt-get -y autoremove
На всякий случай попробуйте переустановить каждый пакет :
for i in $(cat list.log); do apt-get install --reinstall "$i"; done
Вы также можете добавить вариант ответа «да» на все вопросы.
Попробуйте вместо этого вот это, поскольку оно возьмет ваш вывод и сделает его одной огромной строкой с пробелами, разделяющими имена файлов.
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 завершило установку (она была в финальной фазе). Затем я выполнил следующее, чтобы все переустановилось правильно.
Или, как сказано на https://superuser.com/questions/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 или вашего любимого оконного менеджера может не понравиться переустановка.
При использовании Aptitude есть простой и быстрый способ сделать это:
sudo aptitude reinstall '~i'
, который переустановит все установленные на данный момент пакеты.
Сделать это с помощью apt
довольно просто:
apt list --installed | cut --delimiter=/ --fields=1 | xargs apt reinstall -y
Часть apt list --installed
делает именно то, что можно было бы предположить.Символ |
направляет стандартный вывод команды apt
на стандартный ввод команды cut
. Часть cut --delimiter=/
указывает команде cut
использовать /
в качестве разделителя, а --fields=1
указывает cut
использовать первое поле, то есть текст перед первым /
, который появляется в выводе. команды apt list --installed
. В этом случае результатом команды cut
является список всех установленных пакетов без всей дополнительной информации, которая нам не нужна из команды apt list --installed
.
Следующий |
направляет стандартный вывод команды cut
, список всех установленных пакетов, на стандартный ввод команды xargs
, которая, в свою очередь, вызывает apt reinstall -y
для каждого из пакеты, которые в настоящее время установлены.
Примечание.:В зависимости от вашей подходящей конфигурации часть apt reinstall -y
может устанавливать обновления для ваших существующих пакетов вместо точных версий, которые вы установили в настоящее время.
У меня было странное поведение, поэтому я переустановил все подобные пакеты. Исправлена проблема для меня. Занимает пару часов.
for package in $(apt list --installed | grep -P ".*(?=/)" -o); do echo $package; done;
заменить echo
наsudo apt install --reinstall -y
чтобы переустановить все пакеты или что-то еще, если это необходимо.
dpkg --get-selections
список также деинсталлирует пакеты. – Ortomala Lokni 06.02.2015, 01:20