CentOS8/RHEL8でのRPM管理における検討事項

CentOS8/RHEL8でのRPM管理における検討事項

2021-12-015 min read

目次

  1. 初めに
  2. 前提
  3. リポジトリとライフサイクル
  4. yum-v3---yum-v4
  5. リンク

初めに

CentOS8/RHEL8環境にてRPMを導入・検討・調査・構築を行なった際のメモです。

前提

事前準備として、まずRPMや各種関連用語について簡単に触れておきます。

rpm

RHEL, CentOS, Fedoraで利用されているパッケージ管理システムであり、 従来のアーカイブファイルを配信する方法と比べてソフトウェアを配布、管理、更新、検証が容易となります。

またパッケージはバイナリパッケージとソースパッケージの2種類に分類できます。

rpm yum dnf コマンド

rpmコマンドはパッケージ単体の導入・更新を行うためのコマンドです。

dnf/yumはパッケージの導入や更新を包括的に行い依存関係の解決を行うための管理コマンドです。

※また、dnfはyumの実質的な後継バージョンのパッケージ管理ソフトです。

リポジトリ

リポジトリとは、あらゆるユーザー・ベンダが開発したパッケージを管理している貯蔵庫のようなものです。

例えばCentOSでは標準のリポジトリ以外の拡張リポジトリとして、Fedora プロジェクトで有志によって作成されているepelや、PHPに関する新しいモジュールが提供されているremiがあります。

詳細は次のリンクで紹介されています。

Available Repositories for CentOS

リポジトリとライフサイクル

AppStream

RHEL8及びCentOS8ではApplication Streams(AppStream)が導入され、BaseOSとともに2つの方式で配信されています。

特徴は以下のような物があります。

  • BaseOS
    • OSの動作に不可欠であり、安定性が重視される
    • 10年間サポートされる
  • AppStream
    • app開発に用いるパッケージ群
    • 段階的にバージョンアップされる
    • 10年間のサポートは受けられない
    • 異なるバージョンは共存出来ない

Compatibility Level について

元々RHELではCompatibility Level(CL)と呼ばれる、パッケージを段階的に管理する仕組みがあります。

詳しくは以下の記事に記載されています。

RHEL 7までは、以下のようになっていました。

Compatibility Level (以下CL) 1は3つのメジャーバージョンに渡ってAPI/ABIの互換性を維持

  • CL 2では1つのメジャーバージョン内でAPI/ABIの互換性を維持
  • CL 3は将来のため未使用
  • CL 4は互換性を維持しません。

RHEL 8では、CL 3が新しく登場し、以下のように変わります。

  • CL 1は3つのメジャーバージョンに渡ってAPI/ABIの互換性を維持
  • CL 2では1つのメジャーバージョン内でAPI/ABIの互換性を維持
  • CL 3は各コンポーネントについてあらかじめ定義された期間維持し、期間が終了する前に新しいバージョンを継続的に提供
  • CL 4は互換性を維持しません

出典 Red Hat Enterprise Linux 8 で 10年維持されるパッケージはどれ? - 赤帽エンジニアブログ

このうちCL3、CL4がAppStreamとなります。

さらに詳しい情報については Red Hat Enterprise Linux 8: Application Compatibility GUIDE - Red Hat Customer Portal に記載されています。

AppStreamのサポート期間

Red Hat Enterprise Linux 8 Application Streams Life Cycle - Red Hat Customer Portal

ここで紹介されている表をもとに各種コンポーネントの保守期間は次の通りとなります。(2022/01時点での情報)

nodejs

Application Stream Release Date Retirement Date Release
nodejs 16 Nov 2021 Apr 2024 8.5
nodejs 14 Nov 2020 Apr 2023 8.3
nodejs 12 Nov 2019 Apr 2022 8.1.0
nodejs 10 May 2019 Apr 2021 8.0.0

python

Application Stream Release Date Retirement Date Release
python 3.9 May 2021 May 2024 8.4
python 3.8 Apr 2020 May 2023 8.2.0
python 2.7 May 2019 Jun 2024 8.0.0

ruby

Application Stream Release Date Retirement Date Release
ruby 3.0 Nov 2021 Mar 2024 8.5
ruby 2.7 Nov 2020 Mar 2023 8.3
ruby 2.6 Nov 2019 Mar 2022 8.1.0
ruby 2.5 May 2019 May 2029 8.0.0

php

Application Stream Release Date Retirement Date Release
php 7.4 Nov 2020 May 2029 8.3
php 7.3 Nov 2019 Nov 2021 8.1.0
php 7.2 May 2019 May 2021 8.0.0

perl

Application Stream Release Date Retirement Date Release
perl 5.30 Nov 2020 Nov 2023 8.3
perl 5.26 May 2019 May 2029 8.0.0
perl 5.24 May 2019 May 2021 8.0.0

postgresql

Application Stream Release Date Retirement Date Release
postgresql 13 May 2021 May 2026 8.4
postgresql 12 Feb 2020 May 2029 8.1.1
postgresql 10 May 2019 May 2024 8.0.0
postgresql 9.6 May 2019 Nov 2021 8.0.0

nginx

Application Stream Release Date Retirement Date Release
nginx 1.20 Nov 2021 Nov 2023 8.5
nginx 1.18 Nov 2020 Nov 2022 8.3
nginx 1.16 Nov 2019 Nov 2021 8.1.0
nginx 1.14 May 2019 May 2021 8.0.0

redis

Application Stream Release Date Retirement Date Release
redis 6 May 2021 May 2024 8.4
redis 5 May 2019 May 2022 8.0.0

Yum v3 -> Yum v4

RHEL8ではYym(v4)が導入されました。 v3からの変更点は次の記事に記載されています。

Changes in DNF CLI compared to YUM — dnf latest documentation

リンク

Recommends
CentOS8/RHEL8でのRPM管理における検討事項
2021-12-01
centos
linux
red%20hat
RPMのspecファイルで利用するマクロ・変数
2022-01-09
centos
linux
red%20hat
AutotoolsでconfigureやMakefileの作成
2022-01-10
centos
linux
red%20hat
RPMパッケージ作成 Dockerを利用して
2022-01-10
centos
linux
red%20hat
CentOS で スマートにプロキシを設定する
2021-01-29
curl
centos
linux
CentOS に MySQL8.0をインストールする
2021-01-26
mysql
mariadb
centos
CentOS8でEPELとPowerToolsリポジトリの有効化
2020-11-30
centos
red%20hat
EPEL
CentOS8 に Oracle12.2 clientをインストールする
2021-03-07
oracle
centos
red%20hat
MySQL8.0 で利用できるパラメータを表示する方法
2021-01-27
mysql
mariadb
centos
PHP-FPM(php7.4) Apache2.4 でWebサーバ構築 on CentOS...
2021-01-17
php
apache
centos
CentOS8 に PHP7.4 インストール
2021-01-17
php
apache
centos
CentOS8にDNFでPerl5.30のインストール
2020-12-22
centos
red%20hat
perl
centos-streamのDockerコンテナイメージを作成した
2020-12-13
centos
red%20hat
centos%20stream
ファイルの1行目を表示 Linuxコマンド head
2020-08-31
centos
linux
ubuntu
inotify-tools rsync unison を利用してディレクトリを同期する
2019-11-03
linux
centos
rsync
New Posts
[JS]Intl.DateTimeFormatで和暦と西暦を変換
2022-08-18
javascript
[NestJS]少し大きな規模のRESTfull APIを構築するディレクトリ構成を考えて...
2022-09-04
nestjs
typescript
%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
Prisma MySQL でUTC以外の任意のタイムゾーンを利用するのが難しい件
2022-08-08
prisma
typescript
mysql
Prisma TypeScript MySQLなプロジェクトの構築
2022-08-08
prisma
typescript
mysql
Prisma TypeScript SQLiteなプロジェクトの構築
2022-08-06
prisma
typescript
sqlite
[AWS]Lambda vs Fargate. APIを実装する場合に思うこと
2022-07-30
amazon%20aws
amazon%20ecs
%E9%9B%91%E8%AB%87
macOSにzigをインストールしてHello World!する
2022-07-18
zig
mac
[AWS CDK] Cognito の OIDC プロバイダに Auth0 を設定
2022-07-03
auth0
amazon%20aws
aws%20cdk
Amazon S3 でライフサイクルポリシーを設定する
2022-06-19
amazon%20aws
amazon%20s3
AWS Certified Developer Associate に合格した
2022-06-19
amazon%20aws
%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93
Fisher-Yates shuffleで配列シャッフル [js/ts/php]
2022-06-19
javascript
node.js
typescript
JavaScriptでUTF-16コードを文字列に変換
2022-06-18
javascript
node.js
[JS]乱数でランダムな整数を生成する
2022-06-18
javascript
node.js
[JS]BigIntでMathが使えない件
2022-06-12
javascript
node.js
atcoder
AWS SAPに合格しました
2022-06-11
amazon%20aws
%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93
Hot posts!
Proxy環境下でcurlを実行する
2019-12-07
linux
curl
OpenCVのMatのタイプ一覧表
2018-11-25
%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86
opencv
Macでも利用できるDBクライアント MySQL PostgreSQL Oracle など
2019-12-21
linux
%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9
mysql
TablePlusを使ってみる。シンプルでモダンなSQLクライアントツール
2018-09-30
%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9
DBクライアントツールはDBeaverをおすすめしたい
2021-03-08
oracle
mysql
sqlite
AWS S3のアクセスキーIDとシークレットアクセスキーの取得 作業用ユーザを作成
2019-06-12
amazon%20aws
linux
amazon%20s3
AtCoderで初めて色がつくまでの話(茶色) レートが中々上がらなかった原因
2018-11-25
%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
%E9%9B%91%E8%AB%87
CentOS8でEPELとPowerToolsリポジトリの有効化
2020-11-30
centos
red%20hat
EPEL
Macでターミナルからポートスキャンを行う方法。
2018-12-09
linux
mac
apple
Python + OpenCVのfillConvexPolyで複雑なポリゴンを描画する
2018-11-27
python
%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86
opencv
Date
▶︎
2022 年 (39)
▶︎
2021 年 (40)
▶︎
2020 年 (30)
▶︎
2019 年 (90)
▶︎
2018 年 (89)
▶︎
2017 年 (1)
Tags
javascript(98)
amazon%20aws(47)
linux(47)
node.js(38)
%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0(36)
%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86(30)
html5(29)
typescript(28)
php(24)
centos(24)
python(22)
%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0(21)
mysql(19)
mac(19)
canvas(18)
opencv(17)
%E9%9B%91%E8%AB%87(16)
wordpress(15)
atcoder(14)
docker(14)
apache(12)
%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92(12)
%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9(12)
amazon%20s3(12)
red%20hat(12)
ubuntu(11)
github(10)
git(10)
vue.js(10)
%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86100%E6%9C%AC%E3%83%8E%E3%83%83%E3%82%AF(10)
mariadb(10)
aws%20cdk(9)
css3(8)
%E5%8F%AF%E8%A6%96%E5%8C%96(8)
%E5%B0%8F%E3%83%8D%E3%82%BF(8)
amazon%20lightsail(7)
react(7)
%E3%83%96%E3%83%AD%E3%82%B0(6)
cms(6)
oracle(6)
perl(6)
gitlab(6)
next.js(6)
iam(5)
amazon%20ec2(5)
%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93(5)
aws%20amplify(5)
curl(4)
webassembly(4)
ssh(4)
Author
s-yoshiki
s-yoshiki
githubzenntwitterqiita
ただの備忘録です。
JavaScript/TypeScript/node.js/React/AWS/OpenCV
※このブログの内容は個人の見解であり、所属する組織等の見解ではありません。