Debian dpkg после обновления apt-get

Я давно использую Debian Wheezy. Сегодня я запускал dpkg upgrade , которое так или иначе сильно исказило ситуацию. Обновление прервано, и теперь apt-get и dpkg не работают.

 # dpkg dpkg: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory 

Я могу загрузить файлы .deb, содержащие недостающие файлы, но я не могу установить их без использования рабочих инструментов. Как мне выйти из этого улова 22?

Библиотечные файлы в стандартных каталогах должны быть зарегистрированы в кеше для производительности. Если обновление прервано в неподходящее время, возможно, что у вас есть файлы библиотек, которые присутствуют в файловой системе, но не в кеше. Запустите ldconfig как root для обновления кеша.

Чтобы помочь устранить проблемы с динамической библиотекой, это может помочь иметь некоторые статически связанные служебные пакеты: busybox-static , sash , zsh-static .

Вы можете извлечь содержимое файла .deb используя комбинацию команд ar и tar :

 mkdir /tmp/selinux cd /tmp/selinux ar p /path/to/libselinux.deb data.tar.gz | tar xz 

Это содержимое пакета будет распаковано в иерархии, внедренной в ваш текущий каталог, и вы можете переместить необходимые файлы в соответствующее место. Для libselinux это скорее всего будет /lib/x86_64-linux-gnu/libselinux.so.1 (имя каталога зависит от вашей архитектуры).

Как только вы снова заработаете, вы, вероятно, должны использовать dpkg -i для переустановки полного пакета.