항상 그렇듯이 패키지를 정기적으로 업그레이드했는데 문제가 발생하여 종속성이 손상되어 패키지를 제거할 수도 없습니다. 서버는 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/installing-the-microsoft-odbc-driver-for-sql-server
그래서 이를 수정하거나 완전히 제거하고 mssql-tools에 대해 13.1.9.2-1 버전을 반환하고 싶습니다. 이제 apt-get에 버그가 발생하여 해당 서버에 아무것도 설치할 수 없습니다.
미리 감사드립니다
답변1
새 msodbcsql17 패키지는 이전 msodbcsql 패키지 v17과 올바르게 충돌하지 않습니다. 둘 다 설치할 수는 없습니다. 이전 v13 버전의 msodbcsql을 설치할 수 있습니다. 저는 단지 새로운 것을 원해서 다음과 같이 했습니다.
$ sudo dpkg -P msodbcsql
충돌하는 패키지를 수동으로 제거하려면 새 msodbcsql17이 수행해야 하지만 그렇지 않습니다. 그런 다음 다음을 실행할 수 있습니다.
$ sudo apt -f 설치
보류 중인 패키지 설치를 완료합니다.
Microsoft는 여기서 비호환성을 지적합니다.