Tôi đã xóa libssl.so.10


7

Tôi không thể apt-get, tôi đã xóa libssl.so.10

hầu hết các lệnh bao gồm wget cung cấp cho tôi một cái gì đó đến tận cùng của libssl.so.10: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục như vậy

Có một cách đáng tin cậy để tôi có thể sao lưu tất cả dữ liệu của mình trong khi tôi vẫn có kết nối hoạt động.


5
apt-get? trong CentOS?
dawud

Một số người đề nghị nó, nhắc nhở libssl mất yum, đó là vấn đề chính
Jay

Tùy thuộc vào cách bạn cài đặt tệp bạn cần có thể tìm thấy trên phương tiện cài đặt của bạn, trong các gói được lưu trong bộ nhớ cache hoặc trên gương vòng / phút trên mạng. Nếu bạn có thể nhận được yum / vòng / phút để cho bạn biết tập tin đã được đóng gói và nhận tập tin đó, bạn sẽ có thể sửa chữa.
adric 18/07/13

Câu trả lời:


1

Bạn đã thực sự xóa tệp .so thực hay chỉ liên kết mềm trỏ đến tệp .so thật, do đó, người tạo thư viện có thể làm mới một cách an toàn các thư viện để biên dịch lại tất cả các chương trình trong hệ thống.

nếu bạn chỉ xóa các liên kết mềm, hãy tìm nó!

Sử dụng

find /usr/lib | grep libssl

để xác định vị trí tệp .so thực, nếu bạn tìm thấy nó, hãy tạo lại liên kết mềm với:

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

Có thể các chương trình (ngay bây giờ: apt-get) cố gắng truy cập các thư viện được chia sẻ theo một đường dẫn cụ thể, được biên dịch vào chương trình, định vị chương trình của bạn với:

which apt-get

(kết quả của tôi là: / usr / bin / apt-get)

và tìm trong chương trình các vị trí thư viện chia sẻ "tiềm năng" với:

strings /path/to/your/program

(kết quả của tôi là:

/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 nó sử dụng tĩnh /lib64/ld-linux-x86-64.so.2

(Có vẻ như apt-get được biên dịch liboutl của tôi)

Hãy thử xem!


12

Điều tốt nhất cần làm là tìm thấy libssl.so.10từ một máy tính đang hoạt động chạy cùng một phiên bản openssl mà bạn đã có (một máy centos khác chạy cùng một phiên bản là đủ) và sử dụng thẻ nhớ USB để sao chép tệp vào đúng vị trí.


Thay vì sneakernet, bạn có thể sử dụng các công cụ đơn giản để thực hiện việc này qua mạng (không có bảo mật) khi bạn có tệp, chẳng hạn như netcat hoặc có thể ftp.
adric

1
Vấn đề là bạn phải tìm một cái thậm chí không liên kết đến ssl. Thư viện bị thiếu sẽ không ngăn chặn việc sử dụng các tính năng SSL; bất kỳ chương trình nào có tính năng SSL đến từ libssl đều không thể liên kết và không thể chạy được.
Falcon Momot

1
Vâng. netcat (đơn giản cũ) là một cách để giành chiến thắng ở đây. EG trên SU: superuser.com/questions/98089/seinating-file-via-netcat
adric 18/07/13

9

Để khắc phục điều này, bạn cần thay thế tệp. Một cách được đề cập là sao chép thư viện từ một hệ thống khác, một cách khác là cài đặt lại gói cung cấp nó.

Bạn đề cập đến việc sử dụng apt-getvì vậy tôi sẽ giả sử bạn đang sử dụng Ubuntu. Bước đầu tiên là xem chính xác gói bạn cần cài đặt cho tệp đó. Nếu bạn chạy lệnh `

dpkg -S libssl.so.10

Bạn sẽ nhận được đầu ra tương tự như thế này, từ hệ thống Ubuntu 12.04.2 của tôi

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

Sau đó chạy dpkg -l | grep libssl1.0.0cho tôi

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

Điều này cho chúng tôi biết rằng tôi cần phải đi tìm libssl1.0.0phiên bản 1.0.1-4ubuntu5.10và cài đặt nó. Các gói có thể được tải xuống từ

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

Tìm kiếm trong danh sách đó tôi có thể thấy rằng tôi cần tải xuống tệp libssl1.0.0_1.0.1-4ubuntu5.10_amd64.debbằng phương pháp bạn chọn.

Khi bạn đã tải xuống tệp, bạn có thể cài đặt lại gói bằng cách phát hành

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

Mà bất kỳ may mắn nào bây giờ bạn sẽ là chủ sở hữu hoàn toàn mới của một libssl mới.


1

Tôi đã có một vấn đề similair về điều này trong quá khứ. Giải pháp cuối cùng là tôi cài đặt hệ điều hành máy chủ trên máy tính xách tay của mình với VirtualBox không được cài đặt. Tôi đã tìm nạp các tệp từ máy khách hộp ảo của mình và đặt chúng lên máy chủ bằng USB Drive khi @Falcon Momot được đo. Một điều tốt đến từ điều này cho tôi. Tôi đã kết thúc việc sử dụng hộp ảo để chơi xung quanh với các công cụ trước khi tôi làm điều đó trên máy chủ thực tế.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.