깨진 패키지 제거


9

최근에 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에서 웹 서버를 실행하고 있지만이 문제를 해결하기 위해 가동 중지 시간을 감수 할 의향이 있습니다.


시도한 정확한 명령과 전체 출력을 복사하여 붙여 넣습니다. 정확한 오류 메시지가 표시되지 않으면 도움이 될 수 있습니다.
Gilles 'SO- 악의를 멈춰라'

답변:


7

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.


최근에 dbconfig-common 재설치에 대한 제안을 시도했지만 아무 소용이 없습니다. 그 노력의 결과로 내 질문을 업데이트했습니다.
Ken

@ 켄 : 시도하십시오 dpkg -i /var/cache/apt/archives/{dbconfig-common,php5-mcrypt,libjs-mootools}*.deb. 캐시에 뎁이 없으면 packages.debian.org 에서 다운로드 하십시오 . 오류 메시지가 있으면 게시하면 나 (또는 ​​다른 사람) 도와 줄 수 있습니다.
Gilles 'SO- 악마 그만해'

아무 소용이 없었습니다. 깨끗한 데비안 서버에서 메뚜기 떼가 풀린 것처럼 보입니다. 이 최신 시도를 반영하여 질문이 업데이트되었습니다.
Ken

@Ken : 의존성도 설치해야합니다 php5-mcrypt. 적성은 당신을 위해 일을 할 것입니다. 시도해 볼 수는 있지만 php5myadmin좋은 상태가 될 때까지 버지 거부 할 것 입니다. dpkg하위 수준이며 부분적으로 손상된 패키지 데이터베이스에서도 작동 할 수 있습니다.
Gilles 'SO- 악의를 멈춰라'

설치하기에서 php5-mcrypt, 그것은 처음의 제거를 묻는 메시지가 phpmyadmindbconfig-common. 다른 솔루션을 얻을 수 없으므로 동의했을 때 얼굴이 평평해질 것이라고 생각했습니다. 반대로, PHP5-mycrypt이었다 간단하게 행동하는 것이 적절 후크 및 제거 청소 허용 설치 적성에 대한 '제안' phpmyadmindbconfig-common. 나는 이제 phpmyadmin더 많은 제어를 위해 tar를 통해 다시 설치했습니다 . 최신 버전에는 자체 구성을 위해 mysql이 필요하지 않은 것으로 보입니다. 서버에서 메뚜기를 제거해 주셔서 감사합니다!
Ken

3

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

  • 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>
  • 자신이하는 일을 알고 있다면 직접 편집 할 수도 있습니다

2

(난 당신이 의미 가정거야 aptitude purgeapt-get remove명령은 당신이 인용 있기 때문에 존재하지 않는다)

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


그것은 동일한 결과를 제공했지만 적성에 필요한 자세한 피드백은 없었습니다. 명령 이름을 다듬어 주셔서 감사합니다.
Ken

나는 같은 문제처럼 느껴지지만 불행히도 PHP, Apache 등을 수동으로 컴파일 했으므로 php5-mcrypt 모듈 (종속성으로 언급 한 모든 것이 있음)을 추가하여 설치하면 다소 지저분 해집니다. 원치 않는 복제. 다른 방법이 없습니까?
ken

0

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.