在Debian上安装php-gd扩展

4

我无法在我的服务器上安装php-gd扩展。

我有php 7.2:

PHP 7.2.10-1+0~20181001133426.7+jessie~1.gbpb6e829 (cli) (built: Oct  1 2018 13:50:53) ( NTS )

和 Debian 8 Linux:

Debian GNU/Linux 8

安装GD扩展的命令:

sudo apt-get install php7.2-gd

并且结果:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libc-ares2 libnfsidmap2 libpcre16-3 libpcre32-3 libuuid-perl libv8-3.14.5 php-http-request php-mail-mimedecode php-net-dime php-net-url
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  php7.2-gd
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 27.5 kB of archives.
After this operation, 186 kB of additional disk space will be used.
Get:1 https://packages.sury.org/php/ jessie/main php7.2-gd amd64 7.2.10-1+0~20181001133426.7+jessie~1.gbpb6e829 [27.5 kB]
Err https://packages.sury.org/php/ jessie/main php7.2-gd amd64 7.2.10-1+0~20181001133426.7+jessie~1.gbpb6e829
  HttpError404
E: Failed to fetch https://packages.sury.org/php/pool/main/p/php7.2/php7.2-gd_7.2.10-1+0~20181001133426.7+jessie~1.gbpb6e829_amd64.deb  HttpError404

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

有什么想法可以解决这个问题吗?
2个回答

9

php-7.2-gd软件包目前还没有在Debian仓库中提供。但是这并不重要,您当然可以安装它。有一个很棒的网站名为DEB.SURY.ORG,将不同的软件打包到Debian和Ubuntu中(特别是PHP软件包)。

首先,下载软件包源的密钥:

$ sudo curl -s https://packages.sury.org/php/apt.gpg | sudo apt-key add -

然后在/etc/apt/sources.list.d/目录下创建一个.list文件:
$ echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list

然后更新和升级您的发行版:
$ sudo apt update -y && sudo apt dist-upgrade -y

现在你可以通过以下命令安装php7.2-gd软件包:

$ sudo apt install php7.2-gd

1
更加便携的执行方式:curl -s https://packages.sury.org/php/apt.gpg | sudo apt-key add - - viktorkho
1
无法在Buster上工作:包php7.2-gd不可用,但被另一个软件包引用。 - viktorkho
@viktorkho 对不起,你是对的。我已经更新了我的答案。注意:当时busterdebian-testing的代号,这就是问题所在。现在,buster已经成为debian-stable,因此,上面的答案应该提供一个选项来安装php7.2-gd包。在Debian Buster(稳定版)上测试过,可以正常工作。 - Joey

-1
运行以下命令:
apt update
apt upgrade
apt install php7.2-gd

错误“Failed to fetch”的原因是apt尝试使用过时的数据库从sury仓库下载/安装已删除的旧版php7.2-gd

2019年3月8日中,php7.2-gd_7.2.10-1+0~20181001133426.7+jessie~1.gbpb6e829_amd64.deb已升级到新版本php7.2-gd_7.2.16-1+0~20190307202206.17+jessie~1.gbpa7be82_amd64.deb,旧版本已被删除,这就是为什么apt无法检索有关旧包的信息。

Ondřej Surý仓库已经正确配置,apt不会显示任何错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接