You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04 Docker环境下Sqlcmd/mssql-tools安装失败求助

在Ubuntu 20.04 Docker环境中解决sqlcmd安装依赖问题

问题背景

按照微软官方文档《Install the SQL Server command-line tools sqlcmd and bcp on Linux》指引,在Docker的Ubuntu 20.04环境安装sqlcmd时,执行sudo apt-get install -y mssql-tools unixodbc-dev报错依赖未满足:

The following packages have unmet dependencies:
 mssql-tools : Depends: msodbcsql17 (>= 17.3.0.0) but it is not going to be installed
 unixodbc-dev : Depends: unixodbc (= 2.3.7) but it is not going to be installed
                Depends: odbcinst1debian2 (= 2.3.7) but 2.3.6-0.1build1 is to be installed
E: Unable to correct problems, you have held broken packages.

手动补充依赖执行apt install -y mssql-tools unixodbc-dev unixodbc仍失败:

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:  unixodbc : Depends:
odbcinst1debian2 (>= 2.3.7) but 2.3.6-0.1build1 is to be installed
Depends: libodbc1 (>= 2.3.7) but 2.3.6-0.1build1 is to be installed  unixodbc-dev : Depends: odbcinst1debian2 (= 2.3.7) but
2.3.6-0.1build1 is to be installed E: Unable to correct problems, you have held broken packages.

后续还出现libodbc1和odbcinst1debian2依赖multiarch-support无法安装的问题。系统信息如下:

# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

解决方案

1. 修复系统依赖状态

先清理并修复系统中损坏的依赖包:

sudo apt-get update --fix-missing
sudo apt-get autoremove && sudo apt-get clean && sudo apt-get autoclean
sudo apt-get -f install

2. 配置正确的微软软件源

确保使用适配Ubuntu 20.04的微软源:

# 移除可能存在的错误源文件
sudo rm -f /etc/apt/sources.list.d/mssql-tools.list
# 添加Ubuntu 20.04对应的微软源
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
# 导入微软GPG密钥
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
# 更新源缓存
sudo apt-get update

3. 分步安装依赖与工具

避免一次性安装导致的依赖冲突,分步骤执行:

  • 先安装msodbcsql17(解决mssql-tools的核心依赖):
    sudo apt-get install -y msodbcsql17
    
  • 安装指定版本的unixodbc相关依赖:
    sudo apt-get install -y unixodbc=2.3.7 odbcinst1debian2=2.3.7 libodbc1=2.3.7
    
  • 最后安装mssql-tools和unixodbc-dev:
    sudo apt-get install -y mssql-tools unixodbc-dev
    

4. 验证安装结果

执行以下命令确认sqlcmd安装成功:

sqlcmd -?

如果输出帮助信息,则说明安装完成。

内容的提问来源于stack exchange,提问作者WestCoastProjects

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:32:06