Не могу apt-get, я удалил libssl.so.10
большинство команд, включая wget, дают мне что-то в конце libssl.so.10: невозможно открыть файл общих объектов: нет такого файла или каталога
есть ли надежный способ сохранить все мои данные, пока у меня все еще есть активное соединение.
Лучше всего найти libssl.so.10
с рабочего компьютера, на котором запущена та же версия openssl, что и у вас (достаточно другой машины centos с той же версией), и скопируйте файл на место с помощью USB-накопителя.
Чтобы исправить это, вам необходимо заменить файл. Один из упомянутых способов - скопировать библиотеку из другой системы, другой - переустановить пакет, который ее предоставляет.
Вы упомянули об использовании apt-get
поэтому я предполагаю, что вы используете Ubuntu. Первый шаг - посмотреть, какой именно пакет вам нужно установить для этого файла. Если вы запустите команду `
dpkg -S libssl.so.10
Вы получите аналогичный результат из моей системы Ubuntu 12.04.2
libssl1.0.0: /lib/x86_64-linux-gnu/libssl.so.1.0.0
Затем бег dpkg -l | grep libssl1.0.0
дает мне
ii libssl1.0.0 1.0.1-4ubuntu5.10 SSL shared libraries
Это говорит нам, что мне нужно найти libssl1.0.0
версия 1.0.1-4ubuntu5.10
и установите его. Пакеты можно скачать с
http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssl/
Поиск в этом списке я могу найти, что мне нужно загрузить файл libssl1.0.0_1.0.1-4ubuntu5.10_amd64.deb
используя метод по вашему выбору.
После того, как вы загрузили файл, вы можете переустановить пакет, выполнив
dpkg -i libssl1.0.0_1.0.1-4ubuntu5.10_amd64.deb
И, если повезет, теперь вы станете новым владельцем свежего libssl.
У меня была проблема, похожая на это в прошлом. В конечном итоге я установил серверную ОС на свой ноутбук с установленным VirtualBox. Я получил файлы из своего гостя виртуального бокса и поместил их на сервер с помощью USB-накопителя, как сказал @Falcon Momot. Из этого у меня вышло хорошее. Я закончил тем, что использовал виртуальный бокс для игры с вещами, прежде чем я сделал это на реальном сервере.
Вы действительно удалили настоящий файл .so или только программную ссылку, указывающую на настоящий файл .so, чтобы создатели библиотеки могли динамически обновлять библиотеки при перекомпиляции всех программ в системе.
если удалили только софтлинк, давайте найдем!
Использовать
find /usr/lib | grep libssl
чтобы найти настоящий файл .so, если вы его нашли, воссоздайте мягкую ссылку с помощью:
ln /usr/lib/path/to/real/libssl /lib/libssl.so.10
Возможно, программы (сейчас: apt-get) пытаются достичь общих библиотек по указанному пути, который скомпилирован в программу, найти вашу программу с помощью:
which apt-get
(мой результат: / usr / bin / apt-get)
и найдите в программе "потенциальные" местоположения разделяемых библиотек с:
strings /path/to/your/program
(мой результат:
/lib64/ld-linux-x86-64.so.2
libapt-pkg.so.4.12
libutil.so.1
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libc.so.6
__libc_start_main
install - Install new packages (pkg is libc6 not libc6.deb)
)
ага, это статически /lib64/ld-linux-x86-64.so.2
(Похоже, мой apt-get скомпилирован без libssl)
Давай попробуем!