Récemment, au cours d'une frustration liée à la configuration de phpmyadmin, j'ai décidé de recommencer à zéro.
Malheureusement, pendant la phase de désinstallation, on m'a demandé le mot de passe root pour mysql que je n'avais pas sous la main à l'époque. Il suffit de dire qu'il m'a informé qu'il y aurait des composants résiduels car il ne pouvait pas nettoyer correctement ses connecteurs de base de données.
Quand je suis arrivé à la maison, j'ai essayé de supprimer le package aptitude purge
qui ne s'avère pas plus puissant que aptitude remove
dans la mesure où il a vu phpmyadmin, a tenté de le supprimer et a échoué car les répertoires associés au package ont déjà été supprimés de ma tentative précédente.
J'ai essayé de réinstaller phpmyadmin, mais aptitude a simplement déclaré qu'il n'y avait pas de mise à jour disponible, et n'a rien fait, s'il y avait une mise à jour, je rencontrerais probablement les mêmes problèmes malgré tout.
À cet égard, j'ai procédé au nettoyage de mysql en supprimant la base de données utilisée et en la nettoyant des tables utilisateur. Je n'ai cependant aucune idée de ce qui reste du paquet, ni même comment nettoyer les crochets en aptitude.
Le résultat de 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
En suivant les conseils de Gile, j'ai essayé de réinstaller la dépendance 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#
Il semble que phpmyadmin ait nettoyé proprement 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#
Tentative de dpkg des archives comme suggéré par Giles
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#
J'ai un serveur Web fonctionnant sur php, mais je suis prêt à risquer des temps d'arrêt pour résoudre ce problème.
Réponses:
phpmyadmin
dépend dedbconfig-common
ce qui contient/usr/share/dbconfig-common/dpkg/prerm.mysql
. Il semble que vous ayez réussi à désinstallerdbconfig-common
sans désinstallerphpmyadmin
, ce qui n'aurait pas dû se produire (avez-vous essayé--force
quelque chose?).Mon conseil est d'essayer d'abord
aptitude reinstall dbconfig-common
. Si cela fonctionne, vous devriez avoir un système dans un état cohérent à partir duquel vous pouvez réessayeraptitude purge phpmyadmin
.Une autre chose que vous pouvez faire est de commenter la ligne incriminée
/var/lib/dpkg/info/phpmyadmin.prerm
. Cela est susceptible de vous permettre de désinstallerphpmyadmin
. Je soupçonne que vous avez fait ce que cette ligne est censée faire lorsque vous avez modifié manuellement ces tables mysql, mais je ne sais pasphpmyadmin
ou l'administrateur de la base de données en général, donc je ne fais que deviner.La différence entre
remove
etpurge
est qu'ilremove
supprime simplement le programme et ses fichiers de données (les trucs que vous pourriez télécharger à nouveau), tandis que d'purge
abord fait ce quiremove
fait, puis supprime également les fichiers de configuration (les trucs que vous pourriez avoir modifiés localement). En cas d'remove
échec, il en sera de mêmepurge
.la source
dpkg -i /var/cache/apt/archives/{dbconfig-common,php5-mcrypt,libjs-mootools}*.deb
. Si vous n'avez pas les deb dans votre cache, téléchargez-les depuis packages.debian.org . S'il y a des messages d'erreur, postez-les et je (ou quelqu'un d'autre) pourrais vous aider avec eux.php5-mcrypt
. L'aptitude ferait le travail pour vous; vous pouvez essayer, mais je pense qu'il refusera de bouger jusqu'à ce que vous vous portiezphp5myadmin
en bon état.dpkg
est de niveau inférieur et peut fonctionner même sur une base de données de packages partiellement rompue.php5-mcrypt
, il a d'abord demandé la suppression dephpmyadmin
etdbconfig-common
. Je ne pouvais pas trouver d'autres solutions, alors je pensais que ça tomberait à plat sur le visage quand je suis d'accord. Au contraire, le simple fait que php5-mycrypt ait été «suggéré» pour l'installation permette de nettoyer correctement les crochets et de les retirerphpmyadmin
etdbconfig-common
. Depuis, je les ai réinstallés avecphpmyadmin
(bien qu'à travers un tar pour plus de contrôle). Il semble que la dernière version ne nécessite pas mysql pour l'auto-organisation. Merci Giles d'avoir supprimé les sauterelles de mon serveur!Parfois, le système de gestion des packages est tellement cassé (souvent dans une chaîne de dépendance circulaire) que la seule combinaison de commandes que j'ai trouvée pour supprimer les packages problématiques est:
cd /var/lib/dpkg/info ; rm <packagename.*>
dpkg --purge --force-remove-reinstreq <packagename>
dpkg --remove --force-remove-reinstreq <packagename>
apt-get install <packagename>
pour réinstaller le packageParfois, le fichier de remplacement d'état peut également avoir besoin d'être corrigé, et la procédure ci-dessus peut générer des erreurs à ce sujet.
Généralement:
/var/lib/dpkg/statoverride
dpkg-statoverride --remove <stateoverride-filename>
la source
(Je vais supposer que vous vouliez dire
aptitude purge
etapt-get remove
, parce que les commandes que vous avez citées n'existent pas)Essayez
dpkg --purge phpmyadmin
. C'est de niveau inférieur que les autres outils, donc pourrait être plus efficace dans ce cas.la source
Vous voudrez peut-être exécuter 'apt-get -f install' pour corriger ces problèmes:
J'étais confronté au problème ci-dessus, en utilisant le problème de commande "sudo dpkg --purge postgresql-9.1" résolu
la source