RHEL7(CentOS7)までは、ディストリビューションが提供してるパッケージからだと、phpは5.4のように、一個のバージョンしか指定できなかった。
php7を入れるためにRed Hat Software Collections Productみたいなリポジトリを用意するか、CentOSの場合、Remiリポジトリを追加してそこからphp7をインストールする必要があった。
だがしかし、RHEL8からはAppStreamというリポジトリが(全員)使える。RockyLinuxなどのディストリビューションでも利用可能。
RHEL 8 のコンテンツは、BaseOS と AppStream の 2 つのメインリポジトリーにより配布されます。
AppStreamってなに?
RHEL 8 のコンテンツは、BaseOS と AppStream の 2 つのメインリポジトリーにより配布されます。
- BaseOS
- BaseOS リポジトリーのコンテンツは、すべてのインストールの基盤となる、基本的な OS 機能のコアセットを提供します。このコンテンツは RPM 形式で提供されており、以前のリリースの Red Hat Enterprise Linux と同様のサポート条件が適用されます。
- AppStream
- AppStream リポジトリーには、さまざまなワークロードとユースケースに対応するために、ユーザー空間アプリケーション、ランタイム言語、およびデータベースが同梱されます。AppStream のコンテンツ形式には、従来の RPM 形式と、RPM 形式の拡張 (モジュール と呼ばれます) の 2 つが利用できます。
RHEL8から追加された、新しい標準リポジトリ。
今までBaseOSだけだったところに、新たに追加された。
しかもこれ、moduleという概念を取り入れていて、インストールするバージョンが選択できる。
例)php7.2かphp7.4、好きな方を選んでインストールできる
AppStream からphp7.4をインストールする
module listで確認する
php7.4、本当にあるのかな…?確認。
# dnf module list php
Last metadata expiration check: 0:00:27 ago on Fri Dec 3 20:04:27 2021.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
AppStreamに7.4がある…!本当やった…
バージョンを指定してインストールする
dnf module install php:7.4
「:」の右辺は、listで表示された際のStream 欄に記載されとるもの。じゃ。
php インストールされたか確認
# php -v
PHP 7.4.19 (cli) (built: May 4 2021 11:06:37) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
インストールされとる…じゃ…と?
php7.4、2029年までサポートが続く…じゃと!?
より。
AppStreamから配信してくれるphp7.4のサポートは、2029年の5月まで、RedHatがサポートしてくれるみたいじゃな。
Application StreamsとFull Life Application Streamsの、違いは?
久々に上記のRED HATのライフサイクルページを見たら、
Application Streams
と
Full Life Application Streams
の2つができてた。。
一応、上記のライフサイクルのリンク先にそれぞれ解説は書いてある。
Application Streams の日本語訳:
ほとんどのアプリケーションストリームの新バージョンは、Red Hat Enterprise Linux 9 のライフサイクル中 に必要に応じて利用可能になります。ライフサイクルは、必要に応じてアップストリームのサポート期間または製品のニーズに合わせられます。同じアプリケーションストリームの複数のバージョンが、サポート期間が重複しながら同時に利用可能になる場合があります。
Full Life Application Streams の日本語訳:
可能であれば、短命のアプリケーションストリームが複数提供される場合、RHELリリースの期間を延長する単一のストリームが提供されることがあります。
なるほど分からん。分かる人いたらコメントで教えてケロ。
こちらの、RedHatの中の人がはてぶに書いてくれてる記事を見ると、以前には「Full Life Application Streams」の方は存在しなくて、ここ(CL3)にも、CL4にも載っていないものは、RHELと同じ期間(つまりフル期間)サポートされるという判断だったみたいっすな。
しかし今では、
Full Life Application Streams
の方を見れば、RHELと同じ期間(RHEL8の場合は2029年の6月まで)サポートがされるパッケージが確認できる模様ですな。
サポート期間だけを確認したければ、上記のライフサイクルページを見れば良いっぽい。
ちなみに、CL3とかCL4とかってのは、
Compatibility Level
互換性レベル
の略らしい。
上記のライフサイクルページに載ってるのは、CL3。
パッケージとモジュールでインストールしたもの混在させるとどうなるか?
を、検証してqiitaにあげてくださっている記事があった。あとで読もうっと。
dnf module installしたパッケージのupdate方法(手順)
dnf module install したパッケージ(モジュール)をメンテナンスするとき(脆弱性やバグなどの対応で)のアップデート方法例は、以下。
dnf module update php:7.4
どうやってupdateするんやー。と思っていたが、
dnf --help
して、よく見たら下の方にも書かれてた。
<modular command> disable: disable a module with all its streams
enable: enable a module stream
info: print detailed information about a module
install: install a module profile including its packages
list: list all module streams, profiles and states
provides: list modular packages
remove: remove installed module profiles and their packages
repoquery: list packages belonging to a module
reset: reset a module
switch-to: switch a module to a stream and distrosync rpm packages
update: update packages associated with an active stream
コメント