Ubuntu 18.04 MSSQL 存储库

Ubuntu 18.04 MSSQL 存储库

我很高兴看到 18.04 的发布。

我的构建需要能够通过 PHP 连接到在 Ubuntu 18.04 上运行的 MSSQL 服务器。

mssql-server这个版本的 Ubuntu是否已经发布了 repo ?

答案1

https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-linux-2017到目前为止仅提到 16.04。

mssql-serverrepo 中的软件包在 Ubuntu 17.10 之前版本中运行良好,但在 18.04 之后由于依赖项过时而无法再安装。

但是我们仍然可以安装并运行它:-) 首先我们添加 repo:

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
$ echo 'deb [arch=amd64] https://packages.microsoft.com/ubuntu/16.04/mssql-server-2017 xenial main' | sudo tee -a /etc/apt/sources.list.d/mssql-server.list

然后我们安装依赖项:

$ sudo apt install openssl1.0 libcurl4 libjemalloc2 libc++1 libsss-nss-idmap0 libc++abi1
$ # Mark them as dependencies so they're autoremoved if you remove mssql-server:
$ sudo apt-mark auto openssl1.0 libcurl4 libjemalloc2 libc++1 libsss-nss-idmap0 libc++abi1

然后我们修复 .deb 中的依赖列表以指定 openssl1.0 而不是 openssl:

$ mkdir tmp && cd tmp
$ sudo apt download mssql-server
$ ar x mssql-server_14.0.3025.34-3_amd64.deb
$ emacs -Q control.tar.gz

在 Emacs 中:

  1. control单击文件列表中的文件
  2. 编辑以“Depends”开头的行,将其改为openssl1.0openssl注意:在同一行中两次提到它),
  3. 编辑以“Depends”开头的行,将其libjemalloc2改为libjemalloc1
  4. Save然后点击X左侧Save
  5. 然后点击Save文件列表,
  6. 然后退出(文件→退出)。

然后我们用新名称重新打包档案并安装它:

$ # Note: order of arguments matters here:
$ ar rcs mssql-server_14.0.3025.34-3fixed_amd64.deb debian-binary control.tar.gz data.tar.xz
$ sudo dpkg -i mssql-server_14.0.3025.34-3fixed_amd64.deb

mssql-conf setup现在只需从第 4 步( )继续https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-linux-2017您应该能够使用例如sqsh或来测试您的连接tsql


编辑:我在这里获得了在 Ubuntu 19.10 上执行此操作的当前脚本:https://gist.github.com/unhammer/6bff7adabb98e581508c042dc1fb9914

相关内容