Sql server 在linux上安装msodbcsql失败,原因是依赖于libcurl3

Sql server 在linux上安装msodbcsql失败,原因是依赖于libcurl3,sql-server,odbc,libcurl,php-curl,php-7.2,Sql Server,Odbc,Libcurl,Php Curl,Php 7.2,在使用php7.2.4-1的Debian系统中,我将在项目中连接sqlserver。但是,它返回安装失败的msodbcsql,这取决于libcurl3。在我的debian系统中是libcurl4 我尝试安装libcurl3,原因是php7.2-curl不工作 php7.2 depends on libcurl4 msodbcsql or msodbcsql17 depends on libcurl3 那么我可以同时安装libcurl3和libcurl4?或者还有别的办法吗 谢谢大家! 因此,您

在使用php7.2.4-1的Debian系统中,我将在项目中连接sqlserver。但是,它返回安装失败的
msodbcsql
,这取决于
libcurl3
。在我的debian系统中是
libcurl4

我尝试安装
libcurl3
,原因是php7.2-curl不工作

php7.2 depends on libcurl4
msodbcsql or msodbcsql17 depends on libcurl3
那么我可以同时安装
libcurl3
libcurl4
?或者还有别的办法吗


谢谢大家!

因此,您的问题是,您试图混合使用stretch和buster软件包,并且在升级过程中有一个libcurl版本转换

  • 可用于拉伸
  • php7.2可用于buster,stretch有php7.0
  • msodbcsql依赖于libcurl3,在stretch和buster中都可用
  • php7.2依赖于仅适用于buster的libcurl4
  • libcurl3和libcurl4发生冲突,原因我将在后面详细介绍
混合使用stretch和buster软件包是很有可能的,但Debian不支持这样的问题。也不支持第三方msodbcsql包

选项1:避免使用msodbcsql 如果您只想在PHP中使用odbc,那么可能不需要msodbcsql。php odbc包将满足您的需要

选项2:降级 避免冲突的简单解决方案是将php降级为php7.0,可在stretch上使用libcurl3。所有冲突都会消失

选项3:强制依赖 另一个解决方案是下载msodbcsql包并使用

dpkg --ignore-depends=libcurl3 -i msodbcsql.deb
这在实践中可能会起作用,因为libcurl3和libcurl4之间的差异是对已折旧的FTP函数的一个不兼容的API的微小更改。由于msodbcsql可能不会使用该函数,因此不会出现任何问题

然而,Debian软件包管理器将痛苦地抱怨,一些选项适合于此

选项4:集装箱运输
最后,如果您没有同时使用msodbcsql和PHP,那么有必要考虑使用一个容器来分隔冲突。

在7.2.9-1中,对于Ubuntu 16,PHP curl扩展与libcurl4一起使用。 您只需下载为debian安装准备的php软件包并使用APT手动安装即可。以前安装的软件包将降级/升级到新版本:

mkdir ./php7.7.9
cd php7.2.9

wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2_7.2.9-1_all.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-bz2_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-cli_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-common_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-curl_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-dev_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-fpm_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-gd_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-imap_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-intl_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-json_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-ldap_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-mbstring_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-mysql_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-opcache_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-readline_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-soap_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-xml_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-xmlrpc_7.2.9-1_amd64.deb
    wget http://ftp.br.debian.org/debian/pool/main/p/php7.2/php7.2-zip_7.2.9-1_amd64.deb

    apt install ./*.deb

非常感谢您的回复。我现在的解决方案是将php版本降级为
php7.1
,这是最快的方法