当我尝试在 PHP 中使用 imagefromjpeg() 函数时,它抛出了错误。因此,我尝试使用以下命令安装 GD 库:
sudo apt-get install php5-gd
但我收到以下错误。
php5-gd : Depends: php5-common (= 5.5.9+dfsg-1ubuntu4) but 5.5.10+dfsg-1+deb.sury.org~saucy+1 is to be installed
E: Unable to correct problems, you have held broken packages.
我正在使用 Ubuntu 14.04LTS。我最近将操作系统从 ubuntu 13.10 升级。如何解决此错误?
的输出dpkg -l|grep php
是:
ii cakephp 1.3.15-1 all MVC rapid application development framework for PHP
ii cakephp-scripts 1.3.15-1 all MVC rapid application development framework for PHP (scripts)
ii libapache2-mod-php5 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 server-side, HTML-embedded scripting language (Apache 2 module)
ii libedit2:amd64 3.1-20130712-2+debphp.org~saucy+3 amd64 BSD editline and history libraries
ii libjson-c2:amd64 0.11-3+debphp.org~saucy+1 amd64 JSON manipulation library - shared library
ii libjson-c2:i386 0.11-3+debphp.org~saucy+1 i386 JSON manipulation library - shared library
ii libjson0:amd64 0.11-3+debphp.org~saucy+1 amd64 JSON manipulation library (transitional package)
ii php-gettext 1.0.11-1 all read gettext MO files directly, without requiring anything other than PHP
ii php-pear 5.5.10+dfsg-1+deb.sury.org~saucy+1 all PEAR - PHP Extension and Application Repository
ii php5 5.5.10+dfsg-1+deb.sury.org~saucy+1 all server-side, HTML-embedded scripting language (metapackage)
ii php5-cgi 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 server-side, HTML-embedded scripting language (CGI binary)
ii php5-cli 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 command-line interpreter for the php5 scripting language
ii php5-common 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 Common files for packages built from the php5 source
ii php5-curl 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 CURL module for php5
ii php5-dev 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 Files for PHP5 module development
rc php5-gd 5.4.9-4ubuntu2.4 amd64 GD module for php5
ii php5-imagick 3.1.2-1+debphp.org~saucy+1 amd64 ImageMagick module for php5
ii php5-json 1.3.2-3+debphp.org~saucy+1 amd64 JSON module for php5
ii php5-mcrypt 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 MCrypt module for php5
rc php5-mysql 5.4.9-4ubuntu2.4 amd64 MySQL module for php5
ii php5-mysqlnd 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 MySQL module for php5 (Native Driver)
ii php5-pgsql 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 PostgreSQL module for php5
ii php5-readline 5.5.10+dfsg-1+deb.sury.org~saucy+1 amd64 Readline module for php5
ii php5-xdebug 2.2.3-2build1 amd64 Xdebug Module for PHP 5
ii phpmyadmin 4:4.0.10-1 all MySQL web administration tool
ii pkg-php-tools 1.11 all various packaging tools and scripts for PHP packages
答案1
看来您已经通过启动板 PPA 安装了 PHP:
https://launchpad.net/~ondrej/+archive/php5
检查你的 apt sources.list 是否 ppa 仍处于活动状态。在 14.04 上,你应该有以下 repos 处于活动状态:
deb http://ppa.launchpad.net/ondrej/php5/ubuntu trusty main
deb-src http://ppa.launchpad.net/ondrej/php5/ubuntu trusty main
解释:
似乎您之前添加了额外的 PHP-launchpad 存储库,但在 dist-upgrade 期间它被停用了。因此,apt 尝试php5-gd
从标准 debian 存储库安装,但此版本还需要标准 php-common 作为依赖项(您没有)。通过再次激活 launchpad 存储库,php5-gd
已从那里安装,并且您的所有其他 php 软件包应该已从 ppa 升级到 Ubuntu 14.04(“可信赖”)版本。
答案2
我知道最初的答案已经有一段时间了。我先安装sudo apt-get install php7.0-fpm
然后运行,在 Ubuntu Server 14.04 LTS 上安装了它sudo apt-get install php7.0-gd
。确认它运行良好,尤其是对于验证码生成,这是我使用全 php 解决方案的用例。现在没有理由不从 php5x 升级,因为 7x 在 2017 年的这个时候有很多好处,没有缺点。