손상된 패키지 설치를 복구하는 방법 (MySQL)


15

Ubuntu 16.04로 업그레이드 한 후 mysql에 엄청난 오류가 있음을 알았습니다. 설치가 잘못되었다고 확신하여 mysql을 제거하려고 시도했습니다. 그것은 모든 것을 삭제하지는 않았으므로 직접 시도했습니다.

sudo rm -r /etc/mysql
sudo rm -r /usr/share/mysql-workbench
sudo rm -r /usr/share/mysql
sudo rm -r /usr/share/mysql-common

이것은 실수였다. 이 작업을 시도하지 마십시오. 이제 mysql은 제대로 설치되지 않습니다. 의존성을 다시 설치하려고했습니다.

sudo apt-get install --reinstall $(apt-cache depends mysql-server | grep -Po 'Depends:\s+\K[^ ]+$' | tr '\n' ' ' )

그리고 패키지 자체 :

sudo apt install mysql-workbench mysql-server --reinstall

그러나 다음과 같은 모든 종류의 암호 오류가 발생합니다.

sudo apt-get install --reinstall mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not         upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
E: Internal Error, No file name for mysql-server:amd64

그리고 제거

sudo apt-get remove mysql-common
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libmysqlclient20 : Depends: mysql-common (>= 5.5) but it is not going to be installed
 mariadb-client-core-10.0 : Depends: mariadb-common (>= 10.0.24-7) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

또는 재구성하면

sudo dpkg --configure -a
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
/var/lib/dpkg/info/mysql-server-5.7.postinst: line 112: /usr/share/mysql-common/configure-symlinks: No such file or directory
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server

또는 강제 설치하는 경우 :

sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
/var/lib/dpkg/info/mysql-server-5.7.postinst: line 112: /usr/share/mysql-common/configure-symlinks: No such file or directory
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

또는 제거를 수행하는 경우 :

sudo apt-get -f purge mysql-server 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  mysql-server*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 159 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 348226 files and directories currently installed.)
Removing mysql-server (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
/var/lib/dpkg/info/mysql-server-5.7.postinst: line 112: /usr/share/mysql-common/configure-symlinks: No such file or directory
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 mysql-server-5.7
E: Sub-process /usr/bin/dpkg returned an error code (1)

apt는 부분 설치에서 복구 할 수 없습니까? OS를 다시 설치해야합니까?


에 의해 더 간단한 접근법을 시도 sudo apt-get install --reinstall mysql했습니까?
Videonauth

오류가 포함되도록 업데이트했습니다.
Jonathan

아마 당신이 채팅을 하고 싶을 때 우리는 이것을 분류 할 수 있는지 알 수 있습니다.
Videonauth

답변:


22

손상된 패키지를 청소하려면 다음을 수행하십시오.

sudo apt-get clean
sudo apt-get update
sudo dpkg -r mysql-client-5.7
sudo dpkg -r mysql-server-5.7
sudo dpkg -r libmysqlclient20:i386
sudo dpkg -r libmysqlclient20:amd64
sudo dpkg -r libmysqlclient18:amd64
sudo dpkg -r mysql-common
sudo dpkg -r mysql 

그런 다음 다시 설치하십시오.

sudo apt-get install mysql mysql-client* mysql-server*

고마워 !! 하나 하나가 밖으로 얻을 수있는 유일한 옵션입니다 종속성을 제거 붙어있는 apt-get
stackMonk

이것을 위해 +1. MySQL에서 제거 할 수있는 전체 패키지 스택을 언급 해 주셔서 감사합니다. 그것은 나에게도 효과가있었습니다.
Parveen Verma

내 우분투 18.04에서 mysqlclient를 제거하려고하면 (3 번째 명령 실행) 다음과 같은 결과가 발생했습니다. 종속성 문제로 인해 mysql-client-5.7의 제거를 막을 수 있습니다. 1). dpkg : 오류 처리 패키지 mysql-client-5.7 (--remove) : 종속성 문제-처리 중 오류가 발생하지 않았습니다 : mysql-client-5.7, 실행 중 sudo apt purge mysql-server mysql-server-5.7 mysql-server- 코어 5.7 여기에서 다른 이름으로는 askubuntu.com/questions/760724/16-04-upgrade-broke-mysql-server 그 인스턴스 삭제 보인다
카마인

이제 sudo apt install openjdk-8-jre openjdk-8-jdk를 설치하려고 할 때 많은 오류가 발생했습니다.
Carmine

이전에 mysql 업데이트를 정리하려는 시도를 차단하고 있던 프로세스를 찾을 수 있었으며 실제로 시스템에서 실행중인 인스턴스를 중지 한 다음 연결된 다른 솔루션에서 제거했습니다. 그 후 시스템이 업데이트되었는지 확인했습니다. 실제로 나는 어떻게 든 많은 업데이트가 그립다는 것을 알았습니다. 그 후 지금까지 mysql 인스턴스가 필요한 Java SDK 설치가 잘 진행된 것 같습니다
Carmine

13

@Videonauth 덕분에

sudo dpkg -r mysql-client-5.7
sudo dpkg -r mysql-server-5.7
sudo dpkg -r libmysqlclient20:i386
sudo dpkg -r libmysqlclient20:amd64
sudo dpkg -r libmysqlclient18:amd64
sudo dpkg -r mysql-common

그런 다음 실행하십시오.

sudo apt-get purge mysql\* mariadb\* libmysql\* libmariadb\*

실패하면 실행 sudo dpkg -r <failedpackage>하고 실패하면 종속 패키지를 제거하십시오. 반복하면 결국 apt-get이 다시 작동합니다.

dpkg와 aptitude / apt-get의 차이점은 무엇입니까?를 참조하십시오 .


다른 패키지가 의존하더라도 libmysqlclient 패키지를 제거하고 모든 것을 제거하는 것이 속임수입니다. 지금은 mysql_upgrade 오류가 발생합니다.
skerit

mysql_upgrade 오류가 발생하지 않았습니다. 그러나 더 많은 패키지 를 제거해야 할 수도 있습니다 . 어떤 패키지가 손상되었는지에 달려 있다고 가정합니다. mysql과 관련된 설치된 모든 패키지를 검색하는 방법이 있지만 방법을 잊어 버렸습니다. 나는 그것이 grep을 통해 파이프 된 dpkg list 명령이라고 생각합니다.
Jonathan

9

이 시도,

이 명령을 실행하여 mysql을 제거하고 버전 5.7을 설치된 버전으로 교체하십시오.

sudo apt purge mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7 mysql-server

이것을 실행하여 패키지를 정리하고 업데이트하십시오

sudo apt update && sudo apt dist-upgrade && sudo apt autoremove && sudo apt -f install

마지막으로 mysql을 설치하십시오.

sudo apt install mysql-server

이것은 나를 위해 일했습니다.


1
선택한 답변하지 않았다 곳은 나를 위해 일한, (그것의 실패 sudo dpkg -r mysql-client-5.7)
제프-H를

감사합니다! 나는 몇 시간 동안 해결책을 찾고 있었고 이것이 유일한 대답입니다!
mirza

1
이것은 나를 위해 일했습니다. 이 튜토리얼 도 도왔다.
nwaweru

4

mysql위에 표시된대로 제거한 후 다음 과 같이 mysql을 설치해야합니다.

sudo apt-get install mysql-common 
sudo apt-get install mysql-server

이 방법으로 설치하면 설치 오류가 발생하지 않습니다.


이것은 나를 위해 작동합니다
user1735921

2

나는 정확한 이유를 모르지만 이러한 모든 방법이 효과가 없었습니다. 제 경우에는 문제를 해결 한 절차는 다음과 같습니다.

sudo apt-get purge mysql-*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade

sudo rm -rf /etc/mysql
sudo rm -rf /var/lib/mysql*

재부팅 !

마침내, 나는 달릴 수 있었다 sudo apt-get install mysql-server!


그것은 나를 위해 일했다
Nijo

1

이것은 나를 위해 일했다

sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade

그 후 나는 다음과 같이 mysql을 다시 설치했다.

sudo apt-get install mysql-server 이제는 잘 작동합니다.


0

sudo dpkg -r 명령 이 작동하지 않습니다.

나는 sudo apt-get purge mysql-*관련된 모든 pageage를 제거한 다음 다시 설치했습니다.

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