टूटे हुए पैकेजों को निकालना


9

हाल ही में phpmyadmin सेटअप प्राप्त करने के साथ हताशा की स्थिति में, मैंने खरोंच से शुरू करने का फैसला किया।

दुर्भाग्य से, अनइंस्टॉल चरण के दौरान, मुझे mysql के लिए रूट पासवर्ड के साथ संकेत दिया गया था, जो उस समय मेरे पास नहीं था। कहने के लिए पर्याप्त, इसने मुझे सूचित किया कि अवशेष घटक होंगे क्योंकि यह अपने डेटाबेस कनेक्टर्स को ठीक से साफ नहीं कर सकता है।

जब मैं घर आया, तो मैंने उस पैकेज को हटाने का प्रयास किया aptitude purgeजिसके माध्यम से अधिक शक्तिशाली नहीं निकला aptitude remove, क्योंकि इसमें phpmyadmin को देखा, इसे हटाने का प्रयास किया, और विफल रहा क्योंकि पैकेज से जुड़े निर्देशिका पहले ही मेरे पहले प्रयास से हटा दिए गए थे।

मैंने phpmyadmin को फिर से स्थापित करने का प्रयास किया, लेकिन योग्यता ने बस कहा कि कोई अद्यतन उपलब्ध नहीं था, और कुछ भी नहीं किया था, अगर कोई अपडेट था, तो मैं शायद समान समस्याओं में भागूंगा।

इस संबंध में, मैंने अपने द्वारा उपयोग किए गए डेटाबेस को गिराकर और उपयोगकर्ता तालिकाओं से इसे साफ करने के लिए mysql को आगे बढ़ाया। हालांकि मुझे इस बात का कोई पता नहीं है कि पैकेज से और क्या बचा है, या यहां तक ​​कि कैसे अभिवृत्ति में हुक को साफ करना है।

का परिणाम dpkg --purge

ickronia:/home/ken# dpkg --purge phpmyadmin
(Reading database ... 27158 files and directories currently installed.)
Removing phpmyadmin ...
/var/lib/dpkg/info/phpmyadmin.prerm: line 5: /usr/share/dbconfig-common/dpkg/prerm.mysql: No such file or directory
dpkg: error processing phpmyadmin (--purge):
 subprocess pre-removal script returned error exit status 1
/var/lib/dpkg/info/phpmyadmin.postinst: line 35: /usr/share/dbconfig-common/dpkg/postinst.mysql: No such file or directory
dpkg: error while cleaning up:
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
phpmyadmin

गिले की सलाह का पालन करने पर, मैंने निर्भरता dbconfig-common को फिर से स्थापित करने का प्रयास किया

ickronia:/home/ken# aptitude reinstall dbconfig-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
dbconfig-common is not currently installed, so it will not be reinstalled.
dbconfig-common is not currently installed, so it will not be reinstalled.
The following packages are BROKEN:
  phpmyadmin
0 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 0B of archives. After unpacking 0B will be used.
The following packages have unmet dependencies:
  phpmyadmin: Depends: php5-mcrypt but it is not installable
              Depends: dbconfig-common but it is not installable
              Depends: libjs-mootools (>= 1.2.4.0~debian1-1) which is a virtual  package.
The following actions will resolve these dependencies:

Remove the following packages:
phpmyadmin

Score is 121

Accept this solution? [Y/n/q/?] n

*** No more solutions available ***

The following actions will resolve these dependencies:

Remove the following packages:
phpmyadmin

Score is 121

Accept this solution? [Y/n/q/?] n

*** No more solutions available ***

The following actions will resolve these dependencies:

Remove the following packages:
phpmyadmin

Score is 121

Accept this solution? [Y/n/q/?] y
The following packages will be REMOVED:
  phpmyadmin{a}
0 packages upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
Need to get 0B of archives. After unpacking 17.7MB will be freed.
Do you want to continue? [Y/n/?] y
Writing extended state information... Done
(Reading database ... 27158 files and directories currently installed.)
Removing phpmyadmin ...
/var/lib/dpkg/info/phpmyadmin.prerm: line 5: /usr/share/dbconfig-common/dpkg/prerm.mysql: No such file or directory
dpkg: error processing phpmyadmin (--remove):
 subprocess pre-removal script returned error exit status 1
/var/lib/dpkg/info/phpmyadmin.postinst: line 35: /usr/share/dbconfig-common/dpkg/postinst.mysql: No such file or directory
dpkg: error while cleaning up:
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 phpmyadmin
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Reading task descriptions... Done

ickronia:/home/ken#

ऐसा प्रतीत होता है कि phpmyadmin ने dbconfig-common को साफ़ किया

ickronia:/usr/share/dbconfig-common# ls -alF
total 12
drwxr-xr-x  3 root root 4096 2011-02-09 08:09 ./
drwxr-xr-x 98 root root 4096 2011-01-20 21:42 ../
drwxr-xr-x  3 root root 4096 2011-01-05 11:08 data/
ickronia:/usr/share/dbconfig-common#

गिल्स द्वारा सुझाए गए अभिलेखागार से dpkg के लिए प्रयास किया गया

ickronia:/usr/share/dbconfig-common# dpkg -i /var/cache/apt/archives/{dbconfig-common,php5-mcrypt,libjs-mootools}*.deb
Selecting previously deselected package dbconfig-common.
(Reading database ... 27161 files and directories currently installed.)
Unpacking dbconfig-common (from .../dbconfig-common_1.8.46_all.deb) ...
Selecting previously deselected package php5-mcrypt.
Unpacking php5-mcrypt (from .../php5-mcrypt_5.3.3-6_i386.deb) ...
Selecting previously deselected package libjs-mootools.
Unpacking libjs-mootools (from .../libjs-mootools_1.2.5~debian1-2_all.deb) ...
Setting up dbconfig-common (1.8.46) ...
dpkg: dependency problems prevent configuration of php5-mcrypt:
 php5-mcrypt depends on libltdl7 (>= 2.2.6b); however:
  Package libltdl7 is not installed.
 php5-mcrypt depends on libmcrypt4; however:
  Package libmcrypt4 is not installed.
dpkg: error processing php5-mcrypt (--install):
 dependency problems - leaving unconfigured
Setting up libjs-mootools (1.2.5~debian1-2) ...
Processing triggers for man-db ...
Processing triggers for libapache2-mod-php5 ...
Reloading web server config: apache2.
Errors were encountered while processing:
 php5-mcrypt
ickronia:/usr/share/dbconfig-common#

मेरे पास php पर चलने वाला एक वेबसर्वर है, लेकिन मैं इसे हल करने के लिए डाउनटाइम को जोखिम में डालने के लिए तैयार हूं।


आपके द्वारा किए गए सटीक आदेश और आपके द्वारा प्राप्त पूरे आउटपुट को कॉपी-पेस्ट करें। हम शायद आपकी मदद कर सकते हैं, लेकिन सटीक त्रुटि संदेशों को देखे बिना नहीं।
गिल्स एसओ- बुराई को रोकना '

जवाबों:


7

phpmyadminपर निर्भर करता है dbconfig-common, जिसमें शामिल है /usr/share/dbconfig-common/dpkg/prerm.mysql। ऐसा लगता है कि आप अनइंस्टॉल dbconfig-commonकिए बिना अनइंस्टॉल करने में कामयाब रहे हैं phpmyadmin, जो नहीं हुआ होगा (क्या आपने --forceकुछ करने की कोशिश की ?)।

मेरी सलाह है कि पहले प्रयास करें aptitude reinstall dbconfig-common। यदि यह काम करता है, तो आपके पास एक सुसंगत स्थिति में एक प्रणाली होनी चाहिए जिससे आप aptitude purge phpmyadminफिर से कोशिश कर सकें ।

एक और बात आप कर सकते हैं टिप्पणी में अपमानजनक लाइन से बाहर है /var/lib/dpkg/info/phpmyadmin.prerm। यह आपको अनइंस्टॉल करने में सक्षम बनाने की संभावना है phpmyadmin। मुझे संदेह है कि जब आप उन mysql तालिकाओं को मैन्युअल रूप से संपादित करते हैं तो आपको क्या करना चाहिए, लेकिन मुझे नहीं पता है phpmyadminया सामान्य रूप से डेटाबेस व्यवस्थापक है, इसलिए मैं केवल अनुमान लगा रहा हूं।

के बीच का अंतर removeऔर purgeवह यह है कि removeबस, जबकि कार्यक्रम और उसके डेटा फ़ाइलों (सामान आप फिर से डाउनलोड कर सकते हैं) को हटा purgeपहले क्या करता है removeतो भी करता है विन्यास फाइल (सामान आप स्थानीय रूप से संपादित हो सकता है) को हटा। अगर removeअसफल होता है, तो होगा purge


मैंने हाल ही में dbconfig-common को पुन: स्थापित करने के बारे में सुझाव देने की कोशिश की, लेकिन कोई फायदा नहीं हुआ। मैंने अपने प्रयासों को उस प्रयास के परिणामों से अपडेट किया है।
केन

@Ken: कोशिश करो dpkg -i /var/cache/apt/archives/{dbconfig-common,php5-mcrypt,libjs-mootools}*.deb। आप अपने कैश में Debs नहीं है, तो, उन लोगों से डाउनलोड packages.debian.org । यदि त्रुटि संदेश हैं, तो उन्हें पोस्ट करें और मैं (या कोई और) आपकी सहायता कर सकता हूं।
गिलेस एसओ- बुराई को रोकना '

कोई फायदा नहीं होने का प्रयास किया। ऐसा लगता है जैसे टिड्डियों का झुंड मेरे साफ डेबियन सर्वर पर पहुंच गया है। इस नवीनतम प्रयास को प्रतिबिंबित करने के लिए प्रश्न अपडेट किया गया है।
केन

@Ken: आप के php5-mcryptरूप में अच्छी तरह से निर्भरता स्थापित करने की जरूरत है । एप्टीट्यूड आपके लिए काम करेगा; आप कोशिश कर सकते हैं, लेकिन मुझे लगता है कि जब तक आप php5myadminएक अच्छी स्थिति में नहीं लाते हैं, तब तक यह हिलने से इंकार कर देगा । dpkgनिम्न स्तर है और आंशिक रूप से टूटे पैकेज डेटाबेस पर भी काम कर सकता है।
गिल्स एसओ- बुराई को रोकना '

स्थापित करने के प्रयास में php5-mcrypt, यह पहली बार को हटाने के लिए कहा जाए phpmyadminऔर dbconfig-common। मैं कोई अन्य उपाय नहीं कर सकता था, इसलिए मुझे लगा कि जब मैं सहमत हुआ तो यह उसके चेहरे पर गिर जाएगा। इसके विपरीत, बस एक्ट कि स्थापना के लिए php5-mycrypt का 'सुझाव' दिया गया था, जो हुक को ठीक से साफ करने और हटाने phpmyadminऔर करने के लिए उपयुक्तता की अनुमति देता है dbconfig-common। मैं अब उनके साथ फिर से स्थापित हो गया हूं phpmyadmin(यद्यपि अधिक नियंत्रण के लिए एक टार के माध्यम से)। ऐसा प्रतीत होता है कि नवीनतम संस्करण को स्वयं-संगठन के लिए mysql की आवश्यकता नहीं है। मेरे सर्वर से टिड्डियों को हटाने के लिए धन्यवाद गाइल्स!
केन

3

कभी-कभी पैकेज प्रबंधन प्रणाली इतनी टूट जाती है (अक्सर एक परिपत्र निर्भरता श्रृंखला में) कि समस्या के पैकेज को हटाने के लिए मैंने जो आदेश दिए हैं उनका एकमात्र संयोजन है:

  • cd /var/lib/dpkg/info ; rm <packagename.*>
  • dpkg --purge --force-remove-reinstreq <packagename>
  • या dpkg --remove --force-remove-reinstreq <packagename>
  • फिर apt-get install <packagename>पैकेज को फिर से स्थापित करने के लिए

कभी-कभी, राज्य-ओवरराइड फ़ाइल को भी ठीक करने की आवश्यकता हो सकती है, और उपरोक्त प्रक्रिया उस के बारे में त्रुटियों को फेंक सकती है .. राज्य ओवरराइड फ़ाइलों को कैसे ठीक करें यह इस बात पर निर्भर करता है कि यह एक उपयोगकर्ता को चिह्नित करने में त्रुटि है या नहीं।

आम तौर पर:

  • राज्य ओवरराइड फ़ाइलें हैं: /var/lib/dpkg/statoverride
  • आप इसे चलाकर अपडेट कर सकते हैं: dpkg-statoverride --remove <stateoverride-filename>
  • यदि आप जानते हैं कि आप क्या कर रहे हैं, तो आप उन्हें हाथ से भी संपादित कर सकते हैं

2

(मैं आपको मानने जा रहा हूं aptitude purgeऔर apt-get removeक्योंकि आपके द्वारा उद्धृत आदेश मौजूद नहीं हैं)

कोशिश करो dpkg --purge phpmyadmin। यह निचले स्तर का है कि अन्य उपकरण, इसलिए इस मामले में अधिक प्रभावी हो सकते हैं।


यह एक ही परिणाम प्रदान करता है लेकिन अभिवृत्ति द्वारा अपेक्षित क्रिया प्रतिक्रिया के बिना। कमांड नामों की मेरी मिनिंग पकड़ने के लिए धन्यवाद।
केन

मुझे वही मिला है जो एक ही समस्या की तरह लगता है, लेकिन दुर्भाग्य से मैंने PHP, Apache को मैन्युअल रूप से संकलित किया है, और इसलिए इनको स्थापित करने के लिए php5-mcrypt मॉड्यूल को जोड़कर (जिसमें मेरे पास निर्भरता के रूप में उल्लिखित सब कुछ है) एक परिणाम के रूप में गड़बड़ है और अवांछित दोहराव। क्या कोई और रास्ता नहीं है?
केन

0

आप इन्हें ठीक करने के लिए 'apt-get -f install' चलाना चाहते हैं:

The following packages have unmet dependencies:
 postgresql-client-9.1 : Breaks: postgresql-9.1 (< 9.1.11-0ubuntu0.12.04) but 9.1.10-0ubuntu12.04 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

मुझे समस्या का सामना करना पड़ रहा था, "sudo dpkg --purge postgresql-9.1" कमांड प्रॉब्लम का उपयोग करके

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.