У меня есть дистрибутив Ubuntu 18, но мне нужно установить php7.2-dev для расширений PECL.
mvolchkov@ias-su:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic
Я пытаюсь установить php7.2-dev:
mvolchkov@ias-su:~$ sudo apt-get install php7.2-dev
Unresolved packages:
php7.2-dev : Depend on: libpcre3-dev (>= 2:8.35) but will not be installed
Depend on: libssl-dev but will not be installed
But it depends on: libpcre3-dev
Чем я пытаюсь установить libpcre3-dev, но получаю ошибку:
mvolchkov@ias-su:~$ sudo apt-get install libpcre3-dev
libpcre3-dev : Depend on: libpcre3 (= 2:8.39-9) но 2:8.41-4+ubuntu17.10.1+deb.sury.org+1 will be installed
E: Impossible to resolve problems, you have held packages.
Совет пользователя user535733 в комментариях очень расплывчатый и на самом деле не 100% возможен в этом случае, так как это означало бы удаление libpcre3
. Это приведет к удалению тонны ваших посылок.
Ключ к этому был в этом вопросе , где пользователь не смог установить libpcre3-dev
(что является одной из зависимостей, с которыми у вас возникают проблемы при установке).
Я собираюсь предположить, что, поскольку у вас более поздняя версия libpcre3-dev
, чем предполагалось, ранее у вас был сторонний (ondrej) ppa.
Итак, вам нужно не удалить не-Ubuntu пакеты, а понизить зависимости php7.2-dev.
В моем случае выполнение следующих действий решило проблему после удаления стороннего PPA:
sudo apt install libpcre3=2:8.39-9 libpcre3-dev=2:8.39-9
sudo apt install libssl1.1=1.1.0g-2ubuntu4.1 libssl-dev=1.1.0g-2ubuntu4.1
Почему это должно происходить?
Скорее всего, у вас был PHP 7.2.7 из репозитории ondrej, но теперь есть официальные репозитории 7.2.5. Однако libpcre3 и libssl, вероятно, все еще находятся в более поздних версиях из другого репозитория.
Таким образом, эти команды должны решить проблему для вас, и вы сможете успешно установить php7.2-dev
.