当我试图在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
看来你已经通过启动板PPA安装了PHP:
https://launchpad.net/~ondrej/+archive/php5
如果ppa仍然处于活动状态,请检查您的apt sources.list。 在14.04,你应该有这些回购积极的:
deb http://ppa.launchpad.net/ondrej/php5/ubuntu trusty main deb-src http://ppa.launchpad.net/ondrej/php5/ubuntu trusty main
说明:
看起来您之前已经添加了额外的PHP启动板存储库,但在远程升级过程中它已被禁用。 因此,apt试图从标准的debian repo安装php5-gd
,但是这个版本也需要一个标准的php-common作为依赖(你没有)。 通过再次激活启动板回购,从那里安装了php5-gd
,所有其他的PHP软件包应该已经从ppa升级到Ubuntu 14.04(“可信”)版本。
我知道原来的答案已经有一段时间了。 我通过首先安装sudo apt-get install php7.0-fpm
然后运行sudo apt-get install php7.0-gd
安装Ubuntu Server 14.04 LTS。 证实它的工作很好,特别是对于所有的php解决scheme,我的用例captcha生成。 在这一点上没有理由不从php5x升级,因为7x在2017年有很多好处,没有缺点。