apt-get dist-upgrade が mssql-tools および msodbcsql17 パッケージで失敗する、ubuntu 16.04

apt-get dist-upgrade が mssql-tools および msodbcsql17 パッケージで失敗する、ubuntu 16.04

いつものようにパッケージの定期アップグレードを実行しましたが、何かが壊れてしまいました。依存関係が壊れているため、パッケージを消去することさえできません。サーバーは Azure 上の Ubuntu 16.04 です。このサーバーでは MySQL を使用しているので、このパッケージは Azure だけのものなのでしょうか?

出力は以下のとおりです:

You might want to run 'apt-get -f install' to correct these. The following packages have unmet dependencies: mssql-tools : Depends: msodbcsql17 (>= 17.0.0.1) but it is not installed Depends: msodbcsql17 (< 17.1.0.0) but it is not installed E: Unmet dependencies. Try using -f.

そして、ほとんどの場合に推奨されているように apt-get -f install を実行すると、出力は次のようになります。

apt-get -f install Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... Done The following additional packages will be installed: msodbcsql17 The following NEW packages will be installed: msodbcsql17 0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded. 6 not fully installed or removed. Need to get 3,760 kB of archives. After this operation, 0 B of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 https://packages.microsoft.com/ubuntu/16.04/prod xenial/main amd64 msodbcsql17 amd64 17.0.1.1-1 [3,760 kB] Fetched 3,760 kB in 0s (15.1 MB/s) Preconfiguring packages ... (Reading database ... 153677 files and directories currently installed.) Preparing to unpack .../msodbcsql17_17.0.1.1-1_amd64.deb ... Unpacking msodbcsql17 (17.0.1.1-1) ... dpkg: error processing archive /var/cache/apt/archives/msodbcsql17_17.0.1.1-1_amd64.deb (--unpack): trying to overwrite '/usr/lib/libmsodbcsql-17.so', which is also in package msodbcsql 17.0.1.1-1 Errors were encountered while processing: /var/cache/apt/archives/msodbcsql17_17.0.1.1-1_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1)

ドキュメントに従って、記載されているようにドライバー自体を削除してみました: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/sql-server 用の microsoft odbc ドライバーのインストール

したがって、これを修正するか、完全に削除して、mssql-tools のバージョン 13.1.9.2-1 に戻したいと考えています。apt-get にバグがあるため、そのサーバーに何もインストールできません。

前もって感謝します

答え1

新しい msodbcsql17 パッケージは、古い msodbcsql パッケージの v17 と正しく競合しません。両方をインストールすることはできません。古い v13 バージョンの msodbcsql をインストールできます。私の場合は、新しいものだけが必要だったので、次のようにしました。

$ sudo dpkg -P msodbcsql

競合するパッケージを手動で削除します。これは、新しい msodbcsql17 が行うべきことですが、実行されていません。その後、以下を実行できます。

$ sudo apt -f インストール

保留中のパッケージのインストールを完了します。

Microsoft はここで非互換性について言及しています:

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/sql-server 用の microsoft odbc ドライバーのインストール

関連情報