Recientemente, en un momento de frustración con la configuración de phpmyadmin, decidí comenzar desde cero.
Desafortunadamente, durante la fase de desinstalación, se me solicitó la contraseña de root para mysql que no tenía a mano en ese momento. Baste decir que me informó que habría componentes residuales ya que no podría limpiar adecuadamente sus conectores de base de datos.
Cuando llegué a casa, intenté eliminar el paquete a través del aptitude purge
cual resultó no ser más potente que aptitude remove
en que vio phpmyadmin, intenté eliminarlo y fallé ya que los directorios asociados con el paquete ya se eliminaron de mi intento anterior.
Traté de reinstalar phpmyadmin, pero aptitude simplemente afirmó que no había actualizaciones disponibles y no hizo nada, si hubiera una actualización, probablemente me encontraría con los mismos problemas de todos modos.
En este sentido, procedí a limpiar mysql eliminando la base de datos que usó y limpiándola de las tablas de usuario. Sin embargo, no tengo idea de qué más queda del paquete, o incluso cómo limpiar los ganchos en aptitude.
El resultado 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
Siguiendo los consejos de Gile, traté de reinstalar la dependencia 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#
Parece que phpmyadmin limpió limpiamente 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#
Intentó dpkg de archivos como lo sugirió 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#
Tengo un servidor web ejecutándose en php, pero estoy dispuesto a arriesgar el tiempo de inactividad para resolver esto.
fuente
Respuestas:
phpmyadmin
depende dedbconfig-common
, que contiene/usr/share/dbconfig-common/dpkg/prerm.mysql
. Parece que has logrado desinstalardbconfig-common
sin desinstalarphpmyadmin
, lo que no debería haber sucedido (¿intentaste--force
algo?).Mi consejo es que primero lo intentes
aptitude reinstall dbconfig-common
. Si funciona, debe tener un sistema en un estado coherente desde el que pueda volveraptitude purge phpmyadmin
a intentarlo .Otra cosa que puedes hacer es comentar la línea ofensiva
/var/lib/dpkg/info/phpmyadmin.prerm
. Es probable que esto le permita desinstalarphpmyadmin
. Sospecho que hiciste lo que se supone que debe hacer esa línea cuando editaste esas tablas mysql manualmente, pero no séphpmyadmin
ni el administrador de la base de datos en general, así que solo estoy adivinando.La diferencia entre
remove
ypurge
es queremove
solo elimina el programa y sus archivos de datos (las cosas que podría volver a descargar), mientras quepurge
primero hace lo queremove
hace y luego también elimina los archivos de configuración (las cosas que podría haber editado localmente). Siremove
falla, también lo harápurge
.fuente
dpkg -i /var/cache/apt/archives/{dbconfig-common,php5-mcrypt,libjs-mootools}*.deb
. Si no tiene las debs en su caché, descárguelas de packages.debian.org . Si hay mensajes de error, publíquelos y yo (u otra persona) podría ayudarlo con ellos.php5-mcrypt
. Aptitude haría el trabajo por ti; puedes intentarlo, pero creo que se negará a ceder hasta que lleguesphp5myadmin
a un buen estado.dpkg
es de nivel inferior y puede funcionar incluso en una base de datos de paquetes parcialmente descompuesta.php5-mcrypt
, primero solicitó la eliminación dephpmyadmin
ydbconfig-common
. No pude obtener ninguna otra solución, así que pensé que se caería de bruces cuando acepté. Por el contrario, simplemente el acto de que php5-mycrypt fue 'sugerido' para la instalación permitió la aptitud para limpiar adecuadamente los ganchos y quitarphpmyadmin
ydbconfig-common
. Ahora los he reinstalado junto conphpmyadmin
(aunque a través de un alquitrán para más control). Parece que la última versión no requiere mysql para la autoorganización. ¡Gracias Giles por eliminar las langostas de mi servidor!A veces, el sistema de administración de paquetes está tan roto (a menudo en una cadena de dependencia circular) que la única combinación de comandos que he encontrado para eliminar paquetes problemáticos son:
cd /var/lib/dpkg/info ; rm <packagename.*>
dpkg --purge --force-remove-reinstreq <packagename>
dpkg --remove --force-remove-reinstreq <packagename>
apt-get install <packagename>
de volver a instalar el paqueteA veces, el archivo de anulación de estado también puede necesitar repararse, y el procedimiento anterior puede arrojar errores al respecto. La forma de arreglar los archivos de anulación de estado depende de si se trata de un error que marca a un usuario o no.
Generalmente:
/var/lib/dpkg/statoverride
dpkg-statoverride --remove <stateoverride-filename>
fuente
(Voy a suponer que quisiste decir
aptitude purge
yapt-get remove
, porque los comandos que citaste no existen)Tratar
dpkg --purge phpmyadmin
. Es de menor nivel que las otras herramientas, por lo que podría ser más efectivo en este caso.fuente
Es posible que desee ejecutar 'apt-get -f install' para corregir estos:
Estaba enfrentando el problema anterior, usando el problema de comando "sudo dpkg --purge postgresql-9.1" resuelto
fuente