Ubuntu Server 20.04 の PHP のデフォルト バージョンは 7.4.3 ですが、これを 7.4.30 にアップグレードしたいと考えています。ppa:ondrej/php を apt リポジトリに追加しましたが、apt アップグレードを実行すると PHP が 8.1 にアップグレードされることが示されます。PHP 8 にスキップしたくないことを apt に伝えるにはどうすればよいですか?
答え1
要約:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
詳しい説明:
すでにppa:ondrej/php
リポジトリを追加しているので ( 経由sudo add-apt-repository ppa:ondrej/php
)、 を使用してapt-cache
インストール可能な利用可能なバージョンを一覧表示し、 を使用してapt install
特定のバージョンをインストールできます。
このapt
ツールは、一般的なアプリケーションのインストールを簡素化するためにエイリアスを使用します。 が のapt install php
エイリアスになったことに気付いたかもしれませんがapt install php8.1
、 ondrej/php リポジトリはphp8.1
、php8.0
、 、 のパッケージを追加し、を指す のphp7.4
エイリアスを追加します。php
php8.1
php 7.4.30 をインストールするため、コマンドにバージョン番号を明示的に含める必要がありますapt install
。このコマンドは、使用可能なすべてのバージョンを一覧表示します。私は、またはよりも出力が読みやすいため、apt-cache
を使用することを好みますが、どちらのコマンドでも必要な情報が得られます。好みのコマンドを使用してください。apt-cache madison
apt-cache showpkg
apt-cache policy
apt-cache madison php7.4
次のような結果が返されます:
php7.4 | 1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1 | http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages
php7.4 | 7.4.3-4ubuntu2.12 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
php7.4 | 7.4.3-4ubuntu2.12 | http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
php7.4 | 7.4.3-4ubuntu1 | http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
列は次のように構成されます。
<package name> | <version> | <repository>
apt
オプションの構文を使用して、パッケージの特定のバージョンをインストールすることをサポートしますpackage=version
。この場合、必要なバージョンは で1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
、これは ondrej/php リポジトリからのものです。
すべてを一緒に入れて:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
答え2
Ubuntu のメンテナーは、バグ修正とセキュリティ更新を公式パッケージに含めます。彼らはメジャー バージョンを維持します。そのため、アップストリームのマイナー リリースにアップグレードする必要はありません。
Ubuntu 20.04 には PHP のバージョンがあることがわかります7.4.3-4ubuntu2.12
。
参照してください変更履歴
この種の「アップグレード」を探すのはよくある間違いです。