我在 Ubuntu 服务器 (16.04, x86-64) 上安装 mssql server (ver. 14.0.600) 时遇到问题。安装停止并显示以下错误:
The following packages have unmet dependencies:
mssql-server : Depends: openssl (<= 1.1.0).
但是,apt-cache policy openssl
openssl 报告为:
Installed: 1.1.0f-2~ubuntu16.04.1+deb.sury.org+1 /
Candidate: 1.1.0f-2~ubuntu16.04.1+deb.sury.org+4
sudo apt-get install -f 最初为:0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded
。 apt-get upgrade (apache,openssl,grub) 之后为:0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded
。
遗憾的是,依赖错误与以前相同。
openssl 1.1.0f > 1.1.0 吗?除了使用 openssl 1.0.2g 重新安装 Ubuntu 之外,还有其他方法可以解决这个问题吗?
根据网上的几篇帖子,尝试降级 openssl 似乎不是一个安全的过程。
编辑: apt-get purge --auto-remove openssl
返回0 upgraded, 0 newly installed, 139 to remove and 0 not upgraded.
这不是我现在想要/敢做的事情。
答案1
更新 openssl 后我遇到了同样的问题,请尝试这个
- 安装 aptute
sudo apt install aptitude
sudo aptitude install mssql-server
将安装以下新软件包:... 以下软件包具有未满足的依赖项:mssql-server:依赖:openssl(<= 1.1.0)但已安装 1.1.0f-2~ubuntu16.04.1+deb.sury.org+1。以下操作将解决这些依赖项:
保留以下软件包的当前版本:
1) mssql-server [Not Installed]
接受这个解决方案吗?[Y/n/q/?] n
- 类型n然后按 Enter 键
以下操作将解决这些依赖关系:
降级以下软件包:
1) openssl [1.1.0f-2~ubuntu16.04.1+deb.sury.org+1 (now) -> 1.0.2g-1ubuntu4.6 (xenial-security)]
接受这个解决方案吗?[Y/n/q/?] Y 以下软件包将被降级:openssl
- 类型是然后按回车键,mssql-server 将被安装
sudo /opt/mssql/bin/mssql-conf setup
重新配置您的安装
答案2
Ubuntu 18.04 的明显解决方案:
apt-get install -y libjemalloc1 libsss-nss-idmap0 libc++1 gawk curl
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
wget http://archive.ubuntu.com/ubuntu/pool/main/c/ca-certificates/ca-certificates_20160104ubuntu1_all.deb
dpkg -i ca-certificates_20160104ubuntu1_all.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.2g-1ubuntu4_amd64.deb
dpkg -i openssl_1.0.2g-1ubuntu4_amd64.deb
apt install -y libcurl3
apt-get update
apt-get install -y mssql-server
需要检查 SQL 后续是否能正常运行。