Bozuk paketleri kaldırma


9

Son zamanlarda phpmyadmin kurulumu ile ilgili bir hayal kırıklığı içinde, sıfırdan başlamaya karar verdim.

Ne yazık ki, kaldırma aşamasında, o sırada elimde olmayan mysql için root şifresi istendi. Söylemek yeterli, veritabanı konektörlerini düzgün bir şekilde temizleyemediğinden kalıntı bileşenleri olacağını bana bildirdi.

Eve geldiğimde, phpmyadmin'i gördüğünden aptitude purgedaha güçlü olmayan paketi kaldırmaya çalıştım, kaldırmaya çalıştım ve paketle aptitude removeilişkili dizinler zaten önceki denememden kaldırıldığından başarısız oldu.

Phpmyadmin'i yeniden yüklemeye çalıştım, ancak yetenek basitçe mevcut bir güncelleme olmadığını belirtti ve hiçbir şey yapmadı, eğer bir güncelleme olsaydı, muhtemelen aynı sorunlarla karşılaşırdım.

Bu bağlamda, kullandığım veritabanını bırakarak ve kullanıcı tablolarından temizleyerek mysql temizlemeye devam ettim. Ancak paketten başka ne kaldığı hakkında hiçbir fikrim yok, hatta kancaları uygun şekilde nasıl temizleyeceğim.

Sonucu 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

Gile'nin tavsiyelerine uyarak, dbconfig-common bağımlılığını yeniden yüklemeye çalıştım

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 temiz bir şekilde temizlendi görünüyor 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#

Giles tarafından önerildiği gibi arşivlerden dpkg deneniyor

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#

Ben php üzerinde çalışan bir web sunucusu var, ama bu çözüm almak için kesinti riski riske hazırım.


Denediğiniz komutların tamamını ve aldığınız çıktıyı kopyalayıp yapıştırın. Muhtemelen hata mesajlarını görmeden size yardımcı olabiliriz.
Gilles 'SO- kötü olmayı kes'

Yanıtlar:


7

phpmyadmindbconfig-commoniçeriğine bağlıdır /usr/share/dbconfig-common/dpkg/prerm.mysql. Eğer kaldırma başardı anlaşılıyor dbconfig-commonkaldırmadan phpmyadminböyle olmaması gerekirdi, hangi (eğer çalıştım --forceşey?).

Benim tavsiyem ilk denemektir aptitude reinstall dbconfig-common. Çalışıyorsa, aptitude purge phpmyadmintekrar deneyebileceğiniz tutarlı bir sisteminiz olmalıdır .

Yapabileceğiniz başka bir şey de rahatsız edici hattı yorumlamaktır /var/lib/dpkg/info/phpmyadmin.prerm. Bu, kaldırmanızı mümkün kılacaktır phpmyadmin. Bu mysql tablolarını el ile düzenlediğinizde bu satırın ne yapması gerektiğinden şüpheliyim, ancak phpmyadmingenel olarak bilmiyorum veya veritabanı yöneticisi değilim, bu yüzden sadece tahmin ediyorum.

Arasındaki fark removeve purgeolmasıdır removeçıkarırken sadece, programı ve veri dosyalarını (eğer yeniden indirin olabilir şeyler) kaldırır purgeilk yapar removeyapılandırma dosyaları (yerel olarak düzenlenmiş olabilir şeyler) de daha sonra yaptığı kaldırır. Eğer removebu yüzden olacak, başarısız purge.


Son zamanlarda dbconfig-common yeniden yükleme konusunda öneri denedim, ama boşuna. Sorularımı bu çabanın sonuçlarıyla güncelledim.
Ken

@Ken: Deneyin dpkg -i /var/cache/apt/archives/{dbconfig-common,php5-mcrypt,libjs-mootools}*.deb. Önbelleğinizde borç yoksa, onları Packages.debian.org adresinden indirin . Hata mesajları varsa, bunları gönderin ve ben (veya başka biri) size yardımcı olabilir .
Gilles 'SO- kötü olmayı bırak'

Hiçbir işe yaramadı. Temiz Debian sunucumda çekirge sürüsü açılmış gibi görünüyor. Soru, bu son girişimi yansıtacak şekilde güncellendi.
Ken

@Ken: Bağımlılıklarını da yüklemeniz gerekiyor php5-mcrypt. Yetenek sizin için işi yapar; deneyebilirsiniz, ama bence php5myadminiyi bir duruma gelene kadar bütçeyi reddet . dpkgdaha düşük düzeydedir ve kısmen bozuk bir paket veritabanında bile çalışabilir.
Gilles 'SO- kötü olmayı bırak'

Yüklemeye çalışmadan olarak php5-mcrypt, ilk kaldırılmasını istenir phpmyadminve dbconfig-common. Başka çözüm bulamadım, bu yüzden kabul ettiğimde yüzüne düz düşeceğini düşündüm. Aksine, php5-mycrypt oldu basitçe hareket düzgün kanca ve kaldırmayı temizlemek için izin yüklemek yetenek için 'önerilen' phpmyadminve dbconfig-common. Şimdi onları (birlikte phpmyadmindaha fazla kontrol için bir katran olsa da) birlikte yeniden yükledim . Görünüşe göre en son sürüm kendi kendine organizasyon için mysql gerektirmiyor. Çekirgeleri sunucumdan kaldırdığınız için Giles'e teşekkür ederiz!
Ken

3

Bazen paket yönetim sistemi o kadar kırılır (genellikle dairesel bağımlılık zincirinde), sorunlu paketleri kaldırmak için bulduğum tek komut kombinasyonu:

  • cd /var/lib/dpkg/info ; rm <packagename.*>
  • dpkg --purge --force-remove-reinstreq <packagename>
  • VEYA dpkg --remove --force-remove-reinstreq <packagename>
  • Ardından apt-get install <packagename>paketi yeniden yüklemek için

Bazen, durum geçersiz kılma dosyasının da düzeltilmesi gerekebilir ve yukarıdaki yordam bununla ilgili hatalar verebilir. Durum geçersiz kılma dosyalarının nasıl düzeltileceği, kullanıcının işaretleme hatası olup olmamasına bağlıdır.

Genellikle:

  • durum geçersiz kılma dosyaları: /var/lib/dpkg/statoverride
  • Şunları çalıştırarak güncelleyebilirsiniz: dpkg-statoverride --remove <stateoverride-filename>
  • Ne yaptığınızı biliyorsanız, bunları elle de düzenleyebilirsiniz

2

(Kastettiğini varsayacağım aptitude purgeve apt-get removeçünkü bahsettiğin komutlar mevcut değil)

Deneyin dpkg --purge phpmyadmin. Diğer araçların daha düşük seviyeli olması, bu durumda daha etkili olabilir.


Aynı sonucu verdi, ancak yeteneklerin gerektirdiği ayrıntılı geribildirim olmadan. Komut isimlerini benim bulduğum için teşekkür ederim.
Ken

Ben aynı sorun gibi ne var var ama ne yazık ki PHP, Apache, ve daha elle (bu bir bağımlılık olarak bahsettiğim her şeye sahip) php5-mcrypt modülü ekleyerek bu yükleme oldukça dağınık sonuçlanan derledim ve istenmeyen çoğaltma. Başka yolu yok mu?
ken

0

Bunları düzeltmek için 'apt-get -f install' komutunu çalıştırmak isteyebilirsiniz:

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" komut problemini kullanarak sorunla karşı karşıya kaldım

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.