在 ubuntu 中安装 ms-sql 时出现软件包冲突。损坏的软件包

在 ubuntu 中安装 ms-sql 时出现软件包冲突。损坏的软件包

我正在尝试在 Ubuntu 20.04 中安装 ms sql。我甚至在 20.04 中也成功安装了它,如下所示指南,但有时我会多次遇到这个问题,并且不确定为什么会发生这种情况。

当我尝试运行以下命令时

curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list

sudo apt-get install mssql-tools unixodbc-dev

我最终遇到以下错误:

以下软件包具有未满足的依赖关系:

mssql-tools:依赖:msodbcsql17(>= 17.3.0.0)但是它不会被安装

unixodbc-dev:依赖:unixodbc(= 2.3.7)

依赖:odbcinst1debian2 (= 2.3.7) 但 2.3.6-0.1build1 是安装

E:无法纠正问题,您持有破损的包裹。

sudo apt-cache policy <package>显示这些软件包有多个可用版本。我尝试安装依赖项的正确版本,但再次运行时没有帮助sudo apt-get install mssql-tools unixodbc-dev

当我检查msprod.list文件时,它看起来像'https://packages.microsoft.com/config/ubuntu/18.04/prod“尾巴.list不见了,所以我添加了它(不确定是否应该这样做)。然后我已经安装好了一切。

现在,当我sudo apt update这样做时,会出现以下错误:

E:存储库'https://packages.microsoft.com/ubuntu/18.04/prod.listbionic Release' 没有 Release 文件。

N:从这样的存储库进行更新并不安全,因此默认情况下是禁用的。

N:请参阅 apt-secure(8) 手册页以了解存储库创建和用户配置详细信息。

我真的不明白发生了什么,也不明白我必须做什么才能以最简单的方式让事情正常运转。

答案1

  1. .list您应该从行中删除sources.list。没有 的list,它指向一个目录(apt期望如此)。有.list,它是一个带有sources.list行的文件。
  2. 请注意,对该文件所做的每个更改(包括其初始添加)只有在运行时才会生效apt update

最简单的方法应该是直接使用下载的文件msprod.list,尽管我不确定你最初的问题到底是什么。我通常使用 来解决这些问题aptitude,它有一个很好的交互式求解器。

哦:unixodbc (= 2.3.7)遗憾的是它还没有出现在 Debian(或 Ubuntu)中。

答案2

将软件包版本从 18.04 切换到 19.04 解决了我在 Ubuntu 20.04 上的问题:

#Ubuntu 19.10
curl https://packages.microsoft.com/config/ubuntu/19.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

参考:https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15#ubuntu17

相关内容