Ostatnio, z powodu frustracji związanej z konfiguracją phpmyadmina, postanowiłem zacząć od zera.
Niestety, podczas fazy dezinstalacji, pojawiło się pytanie o hasło roota dla mysql, którego wtedy nie miałem pod ręką. Wystarczy powiedzieć, że poinformował mnie, że pozostaną komponenty pozostałości, ponieważ nie będzie w stanie prawidłowo wyczyścić łączników bazy danych.
Kiedy wróciłem do domu, próbowałem usunąć pakiet, przez aptitude purge
który okazało się, że nie jest on silniejszy niż aptitude remove
to, że zobaczył phpmyadmin, próbował go usunąć i nie powiodło się, ponieważ katalogi powiązane z pakietem zostały już usunięte z mojej wcześniejszej próby.
Próbowałem ponownie zainstalować phpmyadmin, ale aptitude po prostu stwierdził, że nie ma dostępnej aktualizacji i nic nie zrobiłem, jeśli byłaby to aktualizacja, prawdopodobnie napotkalibyśmy te same problemy niezależnie od tego.
W związku z tym przystąpiłem do czyszczenia mysql, upuszczając używaną bazę danych i czyszcząc ją z tabel użytkowników. Nie mam jednak pojęcia, co jeszcze zostało z opakowania, ani nawet jak wyczyścić haczyków w odpowiedni sposób.
Wynik 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
Postępując zgodnie z radą Gile'a, próbowałem ponownie zainstalować zależność 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#
Wygląda na to, że phpmyadmin wyczyścił 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#
Podjęto próbę dpkg z archiwów zgodnie z sugestią Gilesa
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#
Mam serwer WWW działający na php, ale jestem gotów zaryzykować przestoje, aby rozwiązać ten problem.
źródło
Odpowiedzi:
phpmyadmin
zależy od tegodbconfig-common
, co zawiera/usr/share/dbconfig-common/dpkg/prerm.mysql
. Wygląda na to, że udało Ci się odinstalowaćdbconfig-common
bez odinstalowaniaphpmyadmin
, co nie powinno się zdarzyć (próbowałeś--force
czegoś zrobić?).Radzę najpierw spróbować
aptitude reinstall dbconfig-common
. Jeśli to działa, powinieneś mieć system w spójnym stanie, z którego możesz spróbowaćaptitude purge phpmyadmin
ponownie.Inną rzeczą, którą możesz zrobić, jest skomentowanie obraźliwej linii
/var/lib/dpkg/info/phpmyadmin.prerm
. Może to spowodować, że będziesz mógł odinstalowaćphpmyadmin
. Podejrzewam, że zrobiłeś to, co powinna zrobić ta linia, kiedy ręcznie edytowałeś te tabele mysql, alephpmyadmin
ogólnie nie znam administratora bazy danych, więc tylko zgaduję.Różnica między
remove
ipurge
polega na tym, żeremove
po prostu usuwa program i jego pliki danych (rzeczy, które można ponownie pobrać), podczas gdypurge
najpierw robi to, coremove
robi, a następnie usuwa także pliki konfiguracyjne (rzeczy, które mogłeś edytować lokalnie). Jeśliremove
zawiedzie, to teżpurge
.źródło
dpkg -i /var/cache/apt/archives/{dbconfig-common,php5-mcrypt,libjs-mootools}*.deb
. Jeśli nie masz debetów w pamięci podręcznej, pobierz je z Package.debian.org . Jeśli pojawią się komunikaty o błędach, opublikuj je, a ja (lub ktoś inny) może ci w tym pomóc.php5-mcrypt
. Aptitude wykona za ciebie pracę; możesz spróbować, ale myślę, że odmówi poruszenia, dopóki nie doprowadziszphp5myadmin
do dobrego stanu.dpkg
jest niższy poziom i może działać nawet na częściowo uszkodzonej bazie danych pakietów.php5-mcrypt
, najpierw monitował o usunięciephpmyadmin
idbconfig-common
. Nie mogłem znaleźć innych rozwiązań, więc pomyślałem, że upadnie na twarz. Przeciwnie, sam fakt, że php5-mycrypt został „zasugerowany” do instalacji, pozwolił na prawidłowe wyczyszczenie haków i usunięciephpmyadmin
idbconfig-common
. Od tamtej pory ponownie je instalowałemphpmyadmin
(chociaż przez tar, aby uzyskać większą kontrolę). Wygląda na to, że najnowsza wersja nie wymaga mysql do samoorganizacji. Dziękuję Giles za usunięcie szarańczy z mojego serwera!Czasami system zarządzania pakietami jest tak zepsuty (często w okrągłym łańcuchu zależności), że jedyną kombinacją poleceń, które znalazłem, aby usunąć problematyczne pakiety, są:
cd /var/lib/dpkg/info ; rm <packagename.*>
dpkg --purge --force-remove-reinstreq <packagename>
dpkg --remove --force-remove-reinstreq <packagename>
apt-get install <packagename>
aby ponownie zainstalować pakietCzasami plik zastępowania stanu może również wymagać naprawy, a powyższa procedura może powodować błędy związane z tym. Sposób naprawy plików zastępowania stanu zależy od tego, czy jest to błąd oznaczający użytkownika, czy nie.
Ogólnie:
/var/lib/dpkg/statoverride
dpkg-statoverride --remove <stateoverride-filename>
źródło
(Zakładam, że miałeś na myśli
aptitude purge
iapt-get remove
ponieważ cytowane polecenia nie istnieją)Spróbować
dpkg --purge phpmyadmin
. Jest niższy poziom niż inne narzędzia, więc może być bardziej skuteczny w tym przypadku.źródło
Możesz uruchomić „apt-get -f install”, aby poprawić te:
Stałem w obliczu powyższego problemu, używając problemu polecenia „sudo dpkg --purge postgresql-9.1”
źródło