Недавно, разочаровавшись в установке phpmyadmin, я решил начать с нуля.
К сожалению, на этапе удаления мне предложили ввести пароль root для mysql, которого у меня не было на тот момент. Достаточно сказать, что он сообщил мне, что будут остатки компонентов, так как он не мог должным образом очистить свои коннекторы базы данных.
Когда я вернулся домой, я попытался удалить пакет, aptitude purge
который оказался не более мощным, чем aptitude remove
тот, в котором он увидел phpmyadmin, попытался удалить его и потерпел неудачу, так как каталоги, связанные с пакетом, уже были удалены из моей предыдущей попытки.
Я попытался переустановить phpmyadmin, но aptitude просто заявил, что обновление недоступно, и ничего не сделал, если бы оно было, я, вероятно, столкнулся бы с теми же проблемами, независимо от этого.
В связи с этим я приступил к очистке mysql, удалив используемую базу данных и очистив ее от пользовательских таблиц. Я, однако, понятия не имею, что еще осталось от упаковки, или даже как убрать крючки в aptitude.
Результат 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, но я готов рискнуть простоем, чтобы решить эту проблему.
источник
Ответы:
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
.источник
dpkg -i /var/cache/apt/archives/{dbconfig-common,php5-mcrypt,libjs-mootools}*.deb
. Если в вашем кэше нет дабов, загрузите их с packages.debian.org . Если есть сообщения об ошибках, опубликуйте их, и я (или кто-то еще) может помочь вам с ними.php5-mcrypt
. Aptitude сделает всю работу за вас; Вы можете попробовать, но я думаю, что он откажется сдвинуться с места, пока вы не приведетеphp5myadmin
в хорошее состояние.dpkg
является более низким уровнем и может работать даже с частично поврежденной базой данных пакетов.php5-mcrypt
, сначала предложили удалитьphpmyadmin
иdbconfig-common
. Я не мог найти никаких других решений, поэтому я думал, что это не получится, когда я согласился. Наоборот, просто то, что php5-mycrypt был «предложен» для установки, позволило aptitude правильно очистить хуки и удалитьphpmyadmin
иdbconfig-common
. Теперь я переустановил их вместе сphpmyadmin
(хотя и через tar для большего контроля). Похоже, что последняя версия не требует mysql для самоорганизации. Спасибо, Джайлс, за удаление саранчи с моего сервера!Иногда система управления пакетами настолько сломана (часто в круговой цепочке зависимостей), что единственная комбинация команд, которую я нашел для удаления проблемных пакетов:
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>
источник
(Я предполагаю, что вы имели в виду
aptitude purge
иapt-get remove
, потому что приведенные вами команды не существуют)Попробуй
dpkg --purge phpmyadmin
. Это более низкий уровень, чем другие инструменты, поэтому может быть более эффективным в этом случае.источник
Вы можете запустить 'apt-get -f install', чтобы исправить это:
Я столкнулся с вышеуказанной проблемой, используя команду «sudo dpkg --purge postgresql-9.1».
источник