2019年12月7日土曜日

Oracle Linux 7 での最近の Yum リポジトリ登録について。

JPOUG Advent Calendar 2019 の 7日目の投稿です。
6日目は tomo さんの TimesTenって知ってる? でした。

最近の Oracle Linux 7 の Yum リポジトリの参照方法について、
様子を紹介しようと思います。

ドキュメントは、下記のあたりが参考になります。
Yum Modularization Notice

今回の環境は Oracle Linux 7.7 です。
# cat /etc/oracle-release
Oracle Linux Server release 7.7

Yum リポジトリ登録の設定について。
Oracle Linux では、ソフトウェア パッケージ管理で PRM を使用していて、
Yum でパッケージをインストールします。
yum コマンドが .rpm をダウンロード/インストールするときに参照する Yum リポジトリは、/etc/yum.repos.d ディレクトリ配下の .repo ファイルに記載します。
# ls -1 /etc/yum.repos.d/
oracle-linux-ol7.repo
uek-ol7.repo
virt-ol7.repo

これはテキストファイルで、ひとつのファイルに複数のリポジトリを記載することもできます。enabled が 1 だと有効で、0 だと無効です。
# cat /etc/yum.repos.d/oracle-linux-ol7.repo
[ol7_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol7_u0_base]
name=Oracle Linux $releasever GA installation media copy ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/0/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_u1_base]
name=Oracle Linux $releasever Update 1 installation media copy ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/1/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_u2_base]
name=Oracle Linux $releasever Update 2 installation media copy ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/2/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_u3_base]
name=Oracle Linux $releasever Update 3 installation media copy ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/3/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_u4_base]
name=Oracle Linux $releasever Update 4 installation media copy ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/4/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_u5_base]
name=Oracle Linux $releasever Update 5 installation media copy ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/5/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_u6_base]
name=Oracle Linux $releasever Update 6 installation media copy ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/6/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_u7_base]
name=Oracle Linux $releasever Update 7 installation media copy ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/7/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0


[ol7_optional_latest]
name=Oracle Linux $releasever Optional Latest ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/optional/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_MODRHCK]
name=Latest RHCK with fixes from Oracle for Oracle Linux $releasever ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/MODRHCK/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
priority=20
enabled=0

[ol7_latest_archive]
name=Oracle Linux $releasever Latest ($basearch) - Archive
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/latest/archive/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

[ol7_optional_archive]
name=Oracle Linux $releasever Optional ($basearch) - Archive
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/optional/archive/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0


[ol7_security_validation]
name=Oracle Linux $releasever ($basearch) Security Validations
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/security/validation/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=0

Yum の .repo ファイルは、以前はテキスト エディタなどで作成/編集することが多かったのではないかと思います。

しかし、最近の Oracle Linux では、これらの .repo ファイル自体も RPM で管理されており、コマンドで有効/無効を切り替えられるようになっています。

RPM での Yum リポジトリ管理の様子。
まず、Minimal Install した Oracle Linux 7.7 に登録されている Yum リポジトリです。
ol7_UEKR5 と ol7_UEKR5 だけが有効です。
# yum repolist


.repo ファイルに記載があっても無効化されているリポジトリは、yum repolist disabled で確認できます。
# yum repolist disabled



ここにない .repo ファイルは、基本的に「<リポジトリの名前>-release-<Oracle Linux のバージョン>」のような命名規則の RPM で管理されています。
# yum list *-release-*
読み込んだプラグイン:ulninfo
インストール済みパッケージ
oraclelinux-release.x86_64                     7:7.7-1.0.5.el7     @anaconda/7.7
oraclelinux-release-el7.x86_64                 1.0-8.el7           @anaconda/7.7
redhat-release-server.x86_64                   1:7.7-10.0.1.el7    @anaconda/7.7
利用可能なパッケージ
mysql-release-el7.x86_64                       1.0-2.el7           ol7_latest
oracle-ceph-release-el7.x86_64                 1.0-2.el7           ol7_latest
oracle-epel-release-el7.x86_64                 1.0-2.el7           ol7_latest
oracle-gluster-release-el7.x86_64              1.0-4.el7           ol7_latest
oracle-golang-release-el7.x86_64               1.0-4.el7           ol7_latest
oracle-nodejs-release-el7.x86_64               1.0-3.el7           ol7_latest
oracle-olcne-release-el7.x86_64                1.0-2.el7           ol7_latest
oracle-openstack-release-el7.x86_64            1.0-2.el7           ol7_latest
oracle-php-release-el7.x86_64                  1.0-2.el7           ol7_latest
oracle-release-el7.x86_64                      1.0-2.el7           ol7_latest
oracle-softwarecollection-release-el7.x86_64   1.0-2.el7           ol7_latest
oracle-spacewalk-client-release-el7.x86_64     1.0-2.el7           ol7_latest
oracle-spacewalk-server-release-el7.x86_64     1.0-2.el7           ol7_latest
oraclelinux-developer-release-el7.x86_64       1.0-2.el7           ol7_latest

このうち、oraclelinux-release(-el7 なし)だけは .repo とは関係しない RPM です。
/etc/oracle-release ファイルなどが含まれます。
# rpm -ql oraclelinux-release
/etc/issue
/etc/issue.net
/etc/oracle-release
/etc/os-release
/etc/pki/rpm-gpg
/etc/pki/rpm-gpg/RPM-GPG-KEY
/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-test
/etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
/etc/redhat-release
/etc/rpm/macros.dist
/etc/sysconfig/64bit_strstr_via_64bit_strstr_sse2_unaligned
/etc/system-release
/etc/system-release-cpe
/usr/share/doc/oraclelinux-release/GPL
/usr/share/doc/oraclelinux-release/releasenotes.html
/usr/share/eula/eula.en_US
/usr/share/oraclelinux-release/EULA
/var/lib/supportinfo

ためしに、EPEL リポジトリの .repo ファイルを追加してみます。
# yum install -y oracle-epel-release-el7

oracle-epel-release-el7 がインストールされました。
# rpm -q oracle-epel-release-el7
oracle-epel-release-el7-1.0-2.el7.x86_64

oracle-epel-release-el7 に含まれるファイルです。
# rpm -ql oracle-epel-release-el7
/etc/yum.repos.d/oracle-epel-ol7.repo
/usr/share/doc/oracle-epel-release-el7
/usr/share/doc/oracle-epel-release-el7/LICENSE

.repo ファイルには、ol7_developer_EPEL という名前で、1つだけリポジトリが記載されています。
# cat /etc/yum.repos.d/oracle-epel-ol7.repo
[ol7_developer_EPEL]
name=Oracle Linux $releasever Development Packages ($basearch)
baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/developer_EPEL/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

yum repolist でも、ol7_developer_EPEL リポジトリの有効化が確認できます。
# yum repolist


追加されたリポジトリからパッケージをインストールできるようになります。
yum list で、ol7_developer_EPEL に含まれる ansible が見つかるようになりました。
# yum list ansible
読み込んだプラグイン:ulninfo
利用可能なパッケージ
ansible.noarch        2.8.4-1.el7         ol7_developer_EPEL

yum install で、依存関係のあるパッケージを含めて ansible がインストールできます。
# yum install -y ansible

yum-config-manager での Yum リポジトリ有効化/無効化。
リポジトリの有効化/無効化は、.repo ファイルの直接編集ではなく、yum-utils に含まれる yum-config-manager コマンドを利用します。
Oracle Linux 7.7 ではMinimal Install でも yum-utils がインストールされるようになりました。(ちなみに、7.6 以前からの yum update でも追加インストールされます)

たとえば、先ほど RPM で追加して、有効化されている EPEL リポジトリ「ol7_developer_EPEL」を無効化してみます。
yum-config-manager --disable コマンドを実行すると、変更後のリポジトリ設定が表示されます。
# yum-config-manager --disable ol7_developer_EPEL
=========================== repo: ol7_developer_EPEL ===========================
[ol7_developer_EPEL]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7Server
baseurl = https://yum.oracle.com/repo/OracleLinux/OL7/developer_EPEL/x86_64/
cache = 0
cachedir = /var/cache/yum/x86_64/7Server/ol7_developer_EPEL
check_config_file_age = True
compare_providers_priority = 80
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = 0
enablegroups = True
exclude =
failovermethod = priority
ftp_disable_epsv = False
gpgcadir = /var/lib/yum/repos/x86_64/7Server/ol7_developer_EPEL/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/7Server/ol7_developer_EPEL/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
hdrdir = /var/cache/yum/x86_64/7Server/ol7_developer_EPEL/headers
http_caching = all
includepkgs =
ip_resolve =
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid =
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink =
minrate = 0
mirrorlist =
mirrorlist_expire = 86400
name = Oracle Linux 7Server Development Packages (x86_64)
old_base_cache_dir =
password =
persistdir = /var/lib/yum/repos/x86_64/7Server/ol7_developer_EPEL
pkgdir = /var/cache/yum/x86_64/7Server/ol7_developer_EPEL/packages
proxy = False
proxy_dict =
proxy_password =
proxy_username =
repo_gpgcheck = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
ui_id = ol7_developer_EPEL/x86_64
ui_repoid_vars = releasever,
   basearch
username =

ここで yum repolist を確認すると、ol7_developer_EPEL が表示されなくなっています。
# yum repolist


Oracle Linux デフォルトの Yum リポジトリ(ol7_latest など)にない .repo の追加。
Oracle Linux ディストリビューションとして標準的なパッケージ以外でも、.repo ファイルが RPM で提供されているケースがあります。
たとえば、「Oracle Linux Virtualization Manager」(リポジトリは ovirt-release42)は、デフォルト登録されている ol7_latest 外部に RPM が公開されています。

yum では .rpm ファイルをフルパスで指定することもできるため、
yum install で、ファイルの URL を指定して .rpm をインストールするか・・・
# yum install -y http://yum.oracle.com/repo/OracleLinux/OL7/ovirt42/x86_64/getPackage/ovirt-release42-4.2.8-1.0.3.el7.noarch.rpm

一度ローカルに .rpm ファイルをダウンロードしてから、yum install することもできます。どちらの例も http:// から改行されて表示されていると思いますが、改行なしで続けて入力します。
# curl -O http://yum.oracle.com/repo/OracleLinux/OL7/ovirt42/x86_64/getPackage/ovirt-release42-4.2.8-1.0.3.el7.noarch.rpm
# yum install -y ./ovirt-release42-4.2.8-1.0.3.el7.noarch.rpm

.rpm ファイル名を直接指定した場合でも、yum install では登録されているリポジトリの RPM ファイルも含めて依存パッケージをインストールします。

ちなみに、例にあるように ovirt-release42 をインストールすと、.repo ファイルが配置されて・・・
# rpm -q ovirt-release42
ovirt-release42-4.2.8-1.0.3.el7.noarch
# rpm -ql ovirt-release42
/etc/pki/rpm-gpg/RPM-GPG-ovirt-4.2
/etc/yum.repos.d/ovirt-4.2-dependencies.repo
/etc/yum.repos.d/ovirt-4.2.repo
/usr/share/ovirt-release42
/usr/share/ovirt-release42/ovirt-el7-ppc64le-deps.repo
/usr/share/ovirt-release42/ovirt-el7-x86_64-deps.repo
/usr/share/ovirt-release42/ovirt-f27-deps.repo
/usr/share/ovirt-release42/ovirt-pre.repo
/usr/share/ovirt-release42/ovirt-snapshot.repo
/usr/share/ovirt-release42/ovirt-tested.repo
/usr/share/ovirt-release42/ovirt.repo

複数のリポジトリが追加されます。
# yum repolist


ちなみに・・・
例として追加した Yum リポジトリからは、Oracle Linux Virtualization Manager という、Oracle Linux KVM を管理する oVirt ベースのツールをインストールできます。
主なパッケージは ovirt-engine です。



管理ポータル に・・・



ログインすると・・・



こんな画面のものです。



これは、ORACLE のマニュアルが公開されているサイトの Virtualization カテゴリで、あの Oracle VM Server よりも先に掲載されています。



バージョンについては、Oracle Linux Virtualization Manager というよりベースの oVirt のもののようです。
https://www.ovirt.org/release/4.2.8/

以上、Oracle Linux の最近の Yum リポジトリ登録(とおまけに Oracle Linux Virtualization Manager)についてでした。
(続くかもしれない)

JPOUG Advent Calendar 2019 の 8日は、明治そして大正昭和平成令和 さんです。よろしくお願いします。

0 件のコメント:

コメントを投稿