Когда я попытался использовать функцию imagefromjpeg () в PHP, она выдала ошибку, поэтому я попытался установить библиотеку 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
Кажется, вы установили PHP через PPA панели запуска:
https://launchpad.net/~ondrej/+archive/php5
Проверьте свой apt sources.list, если ppa все еще активен. 14.04 у вас должны быть активны следующие репозитории:
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 в качестве зависимости (которой у вас нет). При повторной активации репозитория панели запуска php5-gd
был установлен оттуда, и все остальные ваши пакеты php должны были быть обновлены до версий Ubuntu 14.04 ("надежных") из ppa.
Я знаю, что первоначальный ответ был давно. Я установил это на Ubuntu Server 14.04 LTS, сначала установив sudo apt-get install php7.0-fpm
затем бег sudo apt-get install php7.0-gd
. Подтверждено, что он отлично работает, особенно для генерации капчи, что является моим вариантом использования решения, полностью основанного на php. Нет причин не обновляться с php5x на этом этапе, поскольку 7x имеет много преимуществ и не имеет недостатков на данный момент в 2017 году.