破損したパッケージのインストールを修復する方法(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

これらのエラーを含めるように更新しました
ジョナサン

たぶんあなたはチャットに参加したいのですが、これを整理できるかどうかを確認します。
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*

どうもありがとう!!依存関係を1つずつ削除することが、apt-get stuckから抜け出す唯一のオプションです
-stackMonk

+1。MySQLが削除するパッケージの完全なスタックについて言及してくれてありがとう。それも私のために働いた。
パーヴィーンヴァーマ

私のubuntu 18.04でmysqlclientを削除しようとすると(3番目のコマンドを実行)、次のことが発生しました:依存関係の問題によりmysql-client-5.7の削除が妨げられます:mysql-server-5.7はmysql-client-5.7に依存しています(> = 5.7.26-0ubuntu0.18.04。 1)。dpkg:エラー処理パッケージmysql-client-5.7(--remove):依存関係の問題-処理中にエラーが検出されなかった:mysql-client-5.7、しかしsudo apt purge mysql-server mysql-server-5.7 mysql-server- core-5.7はaskubuntu.com/questions/760724/16-04-upgrade-broke-mysql-serverからインスタンスを削除したようです
Carmine

sudo apt install openjdk-8-jre openjdk-8-jdkをインストールしようとしていたので、今では多くのエラーが発生しました。
カーマイン

mysqlの更新をクリーニングする試みを以前ブロックしていたプロセスを見つけることができました。実際、システムで実行中のインスタンスを停止し、リンクされた他のソリューションからパージしました。その後、システムが更新されたことを確認しました。確かに、私は何とかして多くの更新を見逃していることがわかりました。その後、mysqlインスタンスを必要とするjava sdkのインストールはこれまでのところ順調に進んでいるようです。
カーマイン

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>し、THATが失敗した場合は、それに依存しているパッケージを削除します。繰り返した場合、最終的にapt-getは再び動作します。

参照してくださいはdpkgや適性/ apt-getの違いは何ですか?


他のパッケージがそれらに依存している場合でも、それらのlibmysqlclientパッケージを削除し、すべてをパージすることでうまくいきました。今はmysql_upgradeエラーが発生します。
skerit

mysql_upgradeエラーが発生したことはありません。ただし、さらに多くのパッケージを削除する必要がある場合があります。どのパッケージが破損したかによります。mysqlに関連するインストール済みのすべてのパッケージを検索する方法がありますが、その方法を忘れています。grepを介してパイプされるdpkg listコマンドだと思います。
ジョナサン

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
ジェフ-時間

ありがとうございました!私は何時間も解決策を探していましたが、これが唯一の答えです!
mirza

1
これは私のために働いた。このチュートリアルも役立ちました。
ワウェル

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


私のために働いてくれてありがとう
二条

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-*するすべてのページをアンインストールしてから再インストールしました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.