web-dev-qa-db-ja.com

依存関係が満たされていないため、Ubuntu 18にPHP7.2-devをインストールできません

Ubuntu 18を配布していますが、PECL拡張のためにphp7.2-devをインストールする必要があります。

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.
2
max volchkov

コメントのuser535733からのアドバイスは非常に曖昧であり、libpcre3をアンインストールすることを意味するため、この場合は実際には100%不可能です。これを行うと、大量のパッケージが削除されます。

これの鍵はこれにありました question ユーザーがlibpcre3-dev(インストールに問題がある依存関係の1つ)をインストールできませんでした。

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 

なぜこれが起こる必要があるのですか?

OndrejリポジトリからPHP 7.2.7を持っている可能性がありますが、公式リポジトリから7.2.5を持っています。ただし、libpcre3とlibsslは、おそらく他のリポジトリの新しいバージョンに残っています。

したがって、これらのコマンドは問題を解決し、php7.2-devを正常にインストールできるはずです。

6
Andrew Webs