लापता libc.so.6 डाउनलोड करने के लिए कहाँ


3

मैंने हाल ही में गलती से फ़ाइल को हटा दिया है /lib/x86_64-linux-gnu/libc.so.6.इस फ़ाइल को अधिकांश कार्यक्रमों की आवश्यकता है, इसलिए मेरा कंप्यूटर मूल रूप से टूट गया है और मैं केवल एक लाइव यूएसबी के माध्यम से हार्ड ड्राइव तक पहुंच सकता हूं।

मैं 64-बिट क्रंचबैंग वाल्डोर्फ चला रहा हूं, जो डेबियन आधारित है।

मैं कैसे बदल सकता हूँ libc.so.6? ( कॉपी /lib64/ नहीं है।)

आउटपुटlocate libc.so (लाइव यूएसबी पर, टूटी हार्ड ड्राइव के साथ)

/lib/x86_64-linux-gnu/libc.so.6
/rofs/lib/x86_64-linux-gnu/libc.so.6
/rofs/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libc.so.6

/Etc/apt/source.list की सामग्री

deb http://mozilla.debian.net/ wheezy-backports iceweasel-release

## CRUNCHBANG
## Compatible with Debian Wheezy, but use at your own risk.
deb http://packages.crunchbang.org/waldorf waldorf main contrib
# deb-src http://packages.crunchbang.org/waldorf waldorf main

## DEBIAN
deb http://http.debian.net/debian wheezy main contrib non-free
# deb-src http://http.debian.org/debian wheezy main contrib non-free

## DEBIAN SECURITY
deb http://security.debian.org/ wheezy/updates main contrib
# deb-src http://security.debian.org/ wheezy/updates main

जवाबों:


4

मैं मान रहा हूं कि आपके लाइव USB स्टिक में समान वितरण है जैसा कि आप अन्यथा चल रहे हैं या कम से कम यह एक डेबियन आधारित है।

उन मान्यताओं के साथ पहले अपने सिस्टम को अपने लाइव यूएसबी स्टिक से बूट करें। फिर क्वेरी जो पैकेज /lib/x86_64-linux-gnu/libc.so.6कमांड के साथ फ़ाइल का मालिक है dpkg -S /lib/x86_64-linux-gnu/libc.so.6(फ़ाइल "libc6" नामक पैकेज के स्वामित्व में निकलेगी लेकिन यह वैसे भी एक अच्छा व्यायाम है)।

जब आपके पास USB स्टिक लाइव डिस्ट्रो से चलने वाला आपका सिस्टम है, तो क्रंचबैंग वाल्डोर्फ साइट से आवश्यक पैकेज या पैकेज डाउनलोड करें ।

फिर अपनी हार्ड डिस्क ड्राइव को कुछ डायरेक्टरी में माउंट करें। उदाहरण के लिए, मैं फिर से जा रहा हूँ, मान लें कि आप अपनी हार्ड डिस्क ड्राइव से अपना रूट विभाजन बढ़ा रहे हैं /mnt

फिर सभी करने के लिए शेष है, के लिए --root /mntनिर्देश का उपयोग करके आवश्यक पैकेज या पैकेज को फिर से स्थापित करना है dpkg। इस तरह से पैकेज आपके लाइव यूएसबी स्टिक फाइलसिस्टम पर समाप्त नहीं होने वाले हैं, बल्कि सिस्टम में आपके पास पहले से ही आपकी हार्ड डिस्क पर हैं।


धन्यवाद, मैं जल्द ही इसका प्रयास करूंगा। लेकिन मैं सोच रहा हूं: क्या यह ठीक उसी डिस्ट्रो को बूट करना भी संभव नहीं होगा और बस यूएसबी से हार्ड ड्राइव में गायब फाइल को कॉपी करना होगा? या ये गड़बड़ करेगा पैकेजिंग?
लोनलीवेबक्रॉलर

2
सबसे अधिक संभावना है कि यह काम करेगा, लेकिन अगर आपने सिस्टम पर अपनी हार्ड डिस्क पर कुछ अपडेट चलाए हैं, तो आपके यूएसबी लाइव सिस्टम पर फ़ाइल समान नहीं हो सकती है। जो मैंने ऊपर सुझाया है, वह इसे सही करने का एकमात्र तरीका नहीं है (दूसरे को डेब्यू-पैकेज के सटीक समान संस्करण को डाउनलोड करना होगा, इसे अनपैक करना और फ़ाइल को हाथ से कॉपी करना होगा, लेकिन तब आप dpkg का उपयोग कर सकते हैं)।
सामी Laine

कृपया मदद, सामी! मैं संकुल को पैकेज libc.so.6में नहीं पा सकता हूँ ।
लोनलीवेबक्रॉलर

मुझे लगता है कि यह एक है । जैसा कि निर्देश दिया गया है: पहले डाउनलोड करें और फिर dpkg का उपयोग करके इंस्टॉल करें।
agtoever

1

libc.so.6फ़ाइल में मौजूद है libc6पैकेज।

आपको यह पता लगाना होगा कि libc6आपकी मशीन पर कौन सा रिपॉजिटरी पैकेज स्थापित किया गया था। (जांच /etc/apt/sources.list, आदि)।

फिर इसे मैन्युअल रूप से डाउनलोड करें (उदाहरण के लिए, यदि यह डिफ़ॉल्ट रिपॉजिटरी का उपयोग करके एक डेबियन मशीन थी जिसे आप इसे यहां से डाउनलोड कर सकते हैं ), और फिर @SamiLaine द्वारा दिए गए निर्देशों का उपयोग करके इसे स्थापित करें।


क्षमा करें, मैं पैकेज के साथ अच्छा नहीं हूँ और काफी समझ में नहीं आता। पैकेज libc6 है, लेकिन मुझे यह कहां मिलेगा? मैंने /etc/apt/sources.listपोस्ट की सामग्री को चिपकाया है ।
लोनलीवेक्रेलर २

0

एक टर्मिनल खोलें ( Ctrl + Alt + T ) और निम्न कमांड चलाएं:

64-बिट Ubuntu के लिए:

सुडो ln -s /lib64/x86_64-linux-gnu/libc.so.6 /lib64/libc.so.6

32-बिट Ubuntu के लिए:

सुडो ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6


अच्छा प्रयास। दुर्भाग्य से मेरे पास एक /lib64/x86_64-linux-gnu/निर्देशिका नहीं है (मैं उबंटू का उपयोग नहीं कर रहा हूं)।
लोनलीवेबक्रॉलर

0

इसे मूल शेल में आज़माएँ:

ln -s /lib/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6

यदि libc-2.13.soआपके सिस्टम के लिए सही संस्करण नहीं है, तो सही खोजने के लिए bash में टैब-पूर्णता का उपयोग करें।

यदि यह काम नहीं करता है, तो आप एक रूट शेल में ldconfig के स्टेटिकली -लिंक्ड वर्जन के साथ अनुसरण कर सकते हैं :

/sbin/ldconfig

यदि लिबास लिंक के लिए लक्ष्य लाइब्रेरी को हटा दिया गया था, तो पैकेज से डेबियन पैकेज डाउनलोड करें : libc6 पेज, इसे dpkg-deb -X( मैन पेज ) का उपयोग करके अनपैक करें और कॉपी libc-2.13.soकरें /lib/x86_64-linux-gnu। फिर यह सुनिश्चित करने के लिए कि सभी लिंक सही हैं, ldconfig चलाएं।


मैंने libc.so.6एक समान लिंक बनाने के माध्यम से हटा दिया है , इसलिए मुझे संदेह है कि अगर मुझे थोड़ा संदेह है। क्या libc-2.13 (मेरे मामले में) और libc.so.6 समान हैं? मैं क्यों रखूं libc.so.6में /lib64/में और नहीं /lib/x86_64-linux-gnu/है, जहां मैं इसे से हटा दिया?
लोनलीवेबक्रॉलर

यदि आपने इन सभी लिंक्स का स्रोत लाइब्रेरी को डिलीट नहीं किया है, तो ldconfig को आज़माना सार्थक हो सकता है, जो सभी लिंक को फिर से स्थापित करता है। आप -vअधिक जानकारी के लिए क्रिया पैरामीटर का उपयोग कर सकते हैं ।

दुर्भाग्य से मैंने पुस्तकालय को नष्ट कर दिया - यह जटिल है।
लोनलीवेबक्रॉलर

मैंने इस मामले के लिए कुछ और सलाह दी।
harrymc

इसलिए क्षमा करें, मैंने आपको गलत समझा। मेरे पास अभी भी है libc-2.13.so(हालांकि नहीं 2.19)। मैं ऊपर दिए गए लिंक की कोशिश करूंगा।
लोनलीवेबक्रॉलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.