在linux上安装msodbcsql失败的原因取决于libcurl3

时间:2018-06-18 03:00:12

标签: 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

我可以同时安装libcurl3libcurl4吗?或者还有其他方法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

所以你的问题是你正试图混合拉伸和破坏包,并且在升级过程中有一个libcurl版本转换。

  • msodbcsql可用于拉伸。
  • php7.2可用于破坏者,拉伸有php7.0。
  • msodbcsql依赖于libcurl3,可以在stretch和buster中使用。
  • php7.2依赖于libcurl4,它只适用于破坏者。
  • libcurl3和libcurl4发生冲突,原因是我要扩展。

混合拉伸和破坏包非常有可能,但由于偶尔会出现类似问题而被Debian认为不支持。第三方msodbcsql包也不受支持。

选项1:避免使用msodbcsql

如果你只想在PHP中使用odbc,你可能不需要msodbcsql。 php-odbc软件包可以满足您的需求。

选项2:降级

避免冲突的简单解决方案是将php降级到php7.0,可以在拉伸和使用libcurl3时使用。所有的冲突都消失了。

选项3:强制依赖

另一个解决方案是下载msodbcsql包并使用

强制安装它
dpkg --ignore-depends=libcurl3 -i msodbcsql.deb

这可能在实践中有效,因为libcurl3和libcurl4之间的差异是折旧FTP功能的次要不兼容的API更改。由于msodbcsql可能不会使用该功能,因此不会出现任何问题。

然而,Debian软件包管理器会抱怨,有些选项适合how-do-i-get-apt-get-to-ignore-some-dependencies.

选项4:包含它

最后,如果你没有一起使用msodbcsql和PHP,那么一个容易让冲突分开的容器值得考虑。

答案 1 :(得分:0)

在适用于Ubuntu 16的7.2.9-1中,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