我正在尝试在 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
.list
您应该从行中删除sources.list
。没有 的list
,它指向一个目录(apt
期望如此)。有.list
,它是一个带有sources.list
行的文件。- 请注意,对该文件所做的每个更改(包括其初始添加)只有在运行时才会生效
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