MS SQL server for linux 的安装问题

chr*_*erk 13 server package-management dependencies

我在 Ubuntu 服务器(16.04,x86-64)上安装 mssql 服务器(版本 14.0.600)时遇到问题。安装停止并出现以下错误:

The following packages have unmet dependencies:
mssql-server : Depends: openssl (<= 1.1.0).
Run Code Online (Sandbox Code Playgroud)

但是,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
Run Code Online (Sandbox Code Playgroud)

sudo apt-get install -f 最初是:0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded. 之后apt-get的升级(阿帕奇,OpenSSL的,蛴螬)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. 这不是我现在想要/不敢做的事情。

小智 14

更新 openssl 后我遇到了同样的问题,试试这个

  1. 安装 aptitute sudo apt install aptitude
  2. sudo aptitude install mssql-server

将安装以下新软件包: ... 以下软件包具有未满足的依赖项: mssql-server : Depends: openssl (<= 1.1.0) but 1.1.0f-2~ubuntu16.04.1+deb.sury.org+1已安装。以下操作将解决这些依赖项:

将以下软件包保持在其当前版本:

        1)  mssql-server [Not Installed]                       
Run Code Online (Sandbox Code Playgroud)

接受这个解决方案吗?[Y/n/q/?] n

  1. 输入n然后按回车

以下操作将解决这些依赖项:

降级以下软件包:

        1)  openssl [1.1.0f-2~ubuntu16.04.1+deb.sury.org+1 (now) -> 1.0.2g-1ubuntu4.6 (xenial-security)]
Run Code Online (Sandbox Code Playgroud)

接受这个解决方案吗?[Y/n/q/?] Y 以下软件包将被降级:openssl

  1. 输入Y并回车,mssql-server将被安装
  2. sudo /opt/mssql/bin/mssql-conf setup

重新配置您的安装

  • 我遇到了同样的问题,它没有向我显示降级选项,我什至无法使用 `sudo apt-get install openssl=1.0.2` 降级,因为它说`E: Version '1.0.2' for '未找到 openssl',我使用的是 ubuntu 18.04 (2认同)

小智 12

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
Run Code Online (Sandbox Code Playgroud)

有必要检查 SQL 随后是否正常运行而没有问题。