Ich habe libssl.so.10 gelöscht

7

Ich kann nicht apt-get, ich habe libssl.so.10 gelöscht

Die meisten Befehle, einschließlich wget, geben mir etwas bis zum Ende von libssl.so.10: Freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

Gibt es eine zuverlässige Möglichkeit, alle meine Daten zu sichern, während ich noch eine aktive Verbindung habe?

Jay
quelle
5
apt-get? in CentOS?
Dawud
Einige Leute schlugen es vor, Remobing libssl nimmt yum herunter, was das Hauptproblem ist
Jay
Abhängig davon, wie Sie die benötigte Datei installiert haben, ist sie wahrscheinlich auf Ihrem Installationsmedium, in zwischengespeicherten Paketen oder auf einem RPM-Spiegel im Netzwerk zu finden. Wenn Sie yum / rpm erhalten, um Ihnen mitzuteilen, in welchem ​​Paket sich die Datei befand, und diese Datei erhalten, sollten Sie in der Lage sein, Reparaturen durchzuführen.
Adric

Antworten:

1

Haben Sie wirklich die echte .so-Datei oder nur den Softlink gelöscht, der auf die echte .so-Datei verweist, können die Bibliotheksersteller Bibliotheken dynamisch aktualisieren, um alle Programme im System neu zu kompilieren?

Wenn Sie nur den Softlink gelöscht haben, finden wir ihn!

Verwenden

find /usr/lib | grep libssl

Um die echte .so-Datei zu finden, erstellen Sie den Softlink neu, wenn Sie ihn gefunden haben:

 ln /usr/lib/path/to/real/libssl /lib/libssl.so.10

Möglicherweise versuchen die Programme (jetzt: apt-get), die gemeinsam genutzten Bibliotheken in einem angegebenen Pfad zu erreichen, der in das Programm kompiliert wurde. Suchen Sie Ihr Programm mit:

which apt-get

(Mein Ergebnis ist: / usr / bin / apt-get)

und finden Sie im Programm die "potenziellen" gemeinsam genutzten Bibliotheksstandorte mit:

strings /path/to/your/program

(Mein Ergebnis ist:

/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)

)

aha es wird statisch verwendet /lib64/ld-linux-x86-64.so.2

(Sieht aus wie mein apt-get ohne libssl kompiliert)

Probieren wir es aus!

Dankó Dávid
quelle
12

Am besten suchen Sie libssl.so.10auf einem funktionierenden Computer, auf dem dieselbe OpenSL-Version wie Sie ausgeführt wird (ein anderer Centos-Computer mit derselben Version sollte ausreichen), und kopieren die Datei mit einem USB-Stick wieder an ihren Platz.

Falcon Momot
quelle
Anstelle von Sneakernet können Sie wahrscheinlich einfache Tools verwenden, um dies über das Netzwerk (ohne Sicherheit) zu tun, sobald Sie die Datei haben, wie z. B. Netcat oder möglicherweise FTP.
Adric
1
Das Problem ist, dass Sie eine finden müssen, die nicht einmal mit ssl verknüpft ist. Die fehlende Bibliothek verhindert nicht nur die Verwendung von SSL-Funktionen. Jedes Programm, dessen SSL-Funktionen von libssl stammen, kann nicht verknüpft werden und kann überhaupt nicht ausgeführt werden.
Falcon Momot
1
Ja. netcat (das alte, einfach gesinnte) ist eine Möglichkeit, hier zu gewinnen. EG über SU: superuser.com/questions/98089/sending-file-via-netcat
Adric
9

Um dies zu beheben, müssen Sie die Datei ersetzen. Eine Möglichkeit, die erwähnt wurde, besteht darin, die Bibliothek von einem anderen System zu kopieren. Eine andere Möglichkeit besteht darin, das Paket, das sie bereitstellt, neu zu installieren.

Sie erwähnen die Verwendung, apt-getalso gehe ich davon aus, dass Sie Ubuntu verwenden. Der erste Schritt besteht darin, genau zu sehen, welches Paket Sie für diese Datei installieren müssen. Wenn Sie den Befehl `ausführen

dpkg -S libssl.so.10

Sie erhalten eine ähnliche Ausgabe von meinem Ubuntu 12.04.2-System

libssl1.0.0: /lib/x86_64-linux-gnu/libssl.so.1.0.0

Dann dpkg -l | grep libssl1.0.0gibt mir das Laufen

ii  libssl1.0.0                          1.0.1-4ubuntu5.10                        SSL shared libraries

Dies sagt uns, dass ich die libssl1.0.0Version suchen 1.0.1-4ubuntu5.10und installieren muss. Die Pakete können von heruntergeladen werden

http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssl/

Wenn ich in dieser Liste suche, kann ich feststellen, dass ich die Datei libssl1.0.0_1.0.1-4ubuntu5.10_amd64.debmit der Methode Ihrer Wahl herunterladen muss .

Sobald Sie die Datei heruntergeladen haben, können Sie das Paket neu installieren, indem Sie a ausgeben

dpkg -i libssl1.0.0_1.0.1-4ubuntu5.10_amd64.deb 

Was für ein Glück, dass Sie jetzt der brandneue Besitzer eines frischen libssl sind.

Scott Pack
quelle
1

Ich hatte in der Vergangenheit ein ähnliches Problem. Die Endlösung war die Installation des Server-Betriebssystems auf meinem Laptop mit installiertem VirtualBox. Ich habe die Dateien von meinem Virtualbox-Gast abgerufen und sie über ein USB-Laufwerk auf den Server gestellt, wie es @Falcon Momot angegeben hat. Daraus ergab sich für mich eine gute Sache. Am Ende habe ich virtualbox verwendet, um mit Sachen herumzuspielen, bevor ich es auf dem eigentlichen Server gemacht habe.

Ben P. Dorsi-Todaro
quelle