RHEL8ではphp7.4などを入れるのにremiリポジトリが不要…じゃと!? | クズリーマンのカス備忘録

RHEL8ではphp7.4などを入れるのにremiリポジトリが不要…じゃと!?

スポンサーリンク

RHEL9についてはこちらの記事に書きました。

RHEL7(CentOS7)までは、ディストリビューションが提供してるパッケージからだと、phpは5.4のように、一個のバージョンしか指定できなかった。

php7を入れるためにRed Hat Software Collections Productみたいなリポジトリを用意するか、CentOSの場合、Remiリポジトリを追加してそこからphp7をインストールする必要があった。

だがしかし、RHEL8からはAppStreamというリポジトリが(全員)使える。RockyLinuxなどのディストリビューションでも利用可能。

 

RHEL 8 のコンテンツは、BaseOS と AppStream の 2 つのメインリポジトリーにより配布されます。

RHELヘルプ

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年までサポートが続く…じゃと!?

 

RHELのライフサイクルのページのスクショ

RHELライフサイクル(英語)

より。

AppStreamから配信してくれるphp7.4のサポートは、2029年の5月まで、RedHatがサポートしてくれるみたいじゃな。

 

Application StreamsとFull Life Application Streamsの、違いは?

ss

久々に上記の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

 

コメント

タイトルとURLをコピーしました