我很高兴看到 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-server
repo 中的软件包在 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 中:
control
单击文件列表中的文件- 编辑以“Depends”开头的行,将其改为
openssl1.0
(openssl
注意:在同一行中两次提到它), - 编辑以“Depends”开头的行,将其
libjemalloc2
改为libjemalloc1
, Save
然后点击X
左侧Save
的- 然后还点击
Save
文件列表, - 然后退出(文件→退出)。
然后我们用新名称重新打包档案并安装它:
$ # 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