깨진 패키지 제거 커넥터를 제대로 정리할

최근에 phpmyadmin 설정에 대한 좌절감이 나는 처음부터 시작하기로 결정했습니다.

불행히도 제거 단계에서 당시에 가지고 있지 않은 mysql의 루트 암호를 묻는 메시지가 표시되었습니다. 말할 것도없이, 데이터베이스 커넥터를 제대로 정리할 수 없어서 잔여 구성 요소가있을 것이라고 알려주었습니다.

내가 집에 도착했을 때, 나는 통해 패키지를 제거하려고 시도 aptitude purge보다 더 강력한 것으로 판명되는 aptitude remove패키지와 관련된 디렉토리가 이미 내 이전 시도에서 제거 된 이후는, phpMyAdmin을보고 그것을 제거하려고 시도하고, 실패에있다.

phpmyadmin을 다시 설치하려고 시도했지만 aptitude는 단순히 사용할 수있는 업데이트가 없으며 업데이트가있는 경우 아무것도하지 않았다고 말했지만 아무 상관없이 동일한 문제가 발생했을 것입니다.

이와 관련하여 사용 된 데이터베이스를 삭제하고 사용자 테이블에서 정리하여 mysql을 정리했습니다. 그러나 패키지에서 무엇이 남았는지, 또는 후크를 적시에 청소하는 방법조차 모릅니다.

의 결과 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의 조언에 따라 종속성 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#

Giles가 제안한 아카이브에서 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.


답변

때로는 패키지 관리 시스템이 너무 손상되어 (종종 순환 종속성 체인에서) 문제가있는 패키지를 제거하기 위해 찾은 유일한 명령 조합은 다음과 같습니다.

  • 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 purgeapt-get remove명령은 당신이 인용 있기 때문에 존재하지 않는다)

시도하십시오 dpkg --purge phpmyadmin. 다른 도구보다 낮은 수준이므로이 경우 더 효과적 일 수 있습니다.


답변

‘apt-get -f install’을 실행하여 다음을 정정 할 수 있습니다.

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″명령 문제를 사용하여 위의 문제에 직면했습니다.