Список файлов пакета отсутствует

Обновлено: 18.05.2024

Я чистил систему и случайно удалил системный файл где-то в /var. В результате при обновлении списка пакетов, установке и удалении программ в консоль вывались 1500 однотипных предупреждений:

dpkg: предупреждение: список файлов пакета «net-tools» отсутствует; предполагаем, что на данный момент у пакета нет установленных файлов
dpkg: предупреждение: список файлов пакета «adduser» отсутствует; предполагаем, что на данный момент у пакета нет установленных файлов
dpkg: предупреждение: список файлов пакета «cmake» отсутствует; предполагаем, что на данный момент у пакета нет установленных файлов
.

При этом новые пакеты устанавливались и удалялись. Но если удалить какой-либо пакет из списка предупреждений, то dpkg просто сделает вид, что пакет удалился, но на самом деле он удалит только запись о этом пакете в своей пакетной базе .


То есть мне нужно было вернуть записи о пакетах, но так как пакетов более 1500 я не представляю это возможным.
Если такие "удалённые" пакеты установить, то они устанавливаются без каких-либо ошибок, получают запись в пакетной базе и их можно удалить. Остаётся только переустановка всего Дебиана или только пакетов из списка предупреждений. Я выбрал второй вариант.

Так как список из 1500 предупреждений не умещаются в память терминала, можно увидеть лишь небольшую часть этого списка. Чтобы получить полный список предупреждений, я перенаправил его в файл:

apt-get install adduser > 1.txt

Получился файл объемом в 25 кб, в котором однотипные строки такого вида:

dpkg: предупреждение: список файлов пакета «adduser» отсутствует; предполагаем, что на данный момент у пакета нет установленных файлов
dpkg: предупреждение: список файлов пакета «cmake» отсутствует; предполагаем, что на данный момент у пакета нет установленных файлов
dpkg: предупреждение: список файлов пакета «ulatency» отсутствует; предполагаем, что на данный момент у пакета нет установленных файлов

.
Перестанавливать 1500 пакетов по отдельности слишком долго, но в линуксе можно одной командой установить кучу пакетов. А для этого нужно удалить предупреждения из списка и оставить только названия пакетов через пробел. Это можно сделать в обычном блокноте методом поиска и замены.

Далее вводим в терминале команду apt-get install --reinstall и тут же вставляем наш обработанный список пакетов. Переустанавливать сразу все 1500 пакетов лучше не надо. Безопаснее переустанавливать небольшими порциями.

apt-get install --reinstall cups-server-common libfam0 libio-socket-ip-perl gvfs-daemons libxcb-render0 libnet-smtp-ssl-perl glx-alternative-nvidia pidgin-skype-common python3.4-minimal libsnmp30 swell-foop libgnome-keyring-common python-debianbts libmbim-glib4 libasyncns0 libasyncns0:i386 fonts-cantarell libperl4-corelibs-perl nvidia-cuda-doc libhogweed2 libhogweed2:i386 libhtml-format-perl pavucontrol pocketsphinx-hmm-en-hub4wsj gconf2 libqt5x11extras5 poppler-utils aisleriot clamav-freshclam libpulse-mainloop-glib0 python-dbus-dev libjack0 libx32gcc1 libpango1.0-0 libxml-twig-perl mono-mcs libqt5widgets5 libcogl-path20 libxcb-util0 libegl1-mesa-drivers libcdio13 libpam-cap grep libgtkmm-2.4-1c2a libmono-microsoft-visualc10.0-cil ifupdown glib-networking-common icewm libboost-system1.55.0 geeqie python-chardet libqt5network5 libharfbuzz-icu0 libjpeg62-turbo libjpeg62-turbo:i386 libmono-system-js

На вопросы о конфигурационных файлах отвечаем по умолчанию (нажимаем Enter).

После одной такой переустановки могут возникнуть ошибки о недоступности каких-либо пакетов. Это могут быть пакеты не из репозиториев. Их можно переустановить командой:

dpkg -i packageneame.deb

Если возникнет ошибка E: Sub-process /usr/bin/dpkg returned an error code (1), алгоритм действий такой:

cd /var/lib/dpkg/info
sudo rm paket.* (удаляем файл связанный с этим пакетом)
Запускаем команду исправления:
apt-get install -f && dpkg --configure -a

Некоторые программы, в моем случае это wine и pulseaudio перестали запускаться. Wine восстановился простой переустановкой, а в Pulseaudio пришлось изменить настройки. Pulseaudio не запускался, соответственно звук в скайпе, в хроме и в некоторых играх отсутствовал. В консоли pulseaudio показывал ошибку:

E: [pulseaudio] module-console-kit.c: GetSessionsForUnixUser() call failed: org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program org.freedesktop.ConsoleKit: Success
E: [pulseaudio] module.c: Failed to load module "module-console-kit.so" (argument: ""): initialization failed.
E: [pulseaudio] main.c: Module load failed.
E: [pulseaudio] main.c: Не удалось инициализировать демон.

Этот вопрос решается переустановкой пакета consolekit, удалением профайла pulseaudio из домашнего каталога:

и редактированием файла /etc/pulse/default.pa, в котором нужно найти строки:

Проверяем работоспособность Pulseaudio:

test@test:

Кроме pulseaudio у меня больше ошибок не было.

Перезагружаем систему и убеждаемся, что все работает.
------------------------
ТРИО теплый пол отзыв
Vkjust отзыв

Я уже пять лет не занимаюсь сайтом, так как работаю по 12 часов. Образование у меня среднее, и по этому нет нормальной работы. Если бы сайт приносил по 100$ в месяц, я бы добавлял по 50 статей каждый месяц. Если отправите пожертвования, я оставлю Ваши имена и фамилии в списке благодетелей !
Bitcoin: 1AP3JCZVFpHzZwcAyNztbrbFFiLdnKbY1j
Litecoin LfHXHz4k6LnDNNvCodd5pj9aW4Qk67KoUD
Dogecoin D9HHvKNFZxRhjtoh6uZYjMjgcZewwiUME9
Есть также другие кошельки.

Читайте также: