Movatterモバイル変換


[0]ホーム

URL:


Atsushi2022の日記

データエンジニアリングに関連する記事を投稿してます

Linuxにおけるリポジトリ、yumあるいはdnf

Linuxにおいてリポジトリとは、ダウンロードのためにパッケージ(.rpm, .deb)などを配置してくれているサーバのこと。

例えば、ニフクラさんは、rhui-rhel-8-for-x86_64-baseos-rhui-rpmsrhui-rhel-8-for-x86_64-appstream-rhui-rpmsというリポジトリ(サーバ)に、さまざまなパッケージ(aajohan-comfortaa-fonts.noarchとか)を置いていて、ユーザーがダウンロードできるようにしてくれている。ちなみに、.noarchというのはアーキテクチャに依存しないよ、という意味で、パッケージを作成する人がi386(32bit)やらx86_64(64bit)とか気にしないでいずれのアーキテクチャでも使用できるよ、とお知らせしてくれている。

で、このリポジトリLinuxマシンに追加しておかないと、リポジトリに配置されているパッケージをダウンロードできない。

ほんで、RHELでのリポジトリ追加は以下のコマンドで行う。

yum repolist    # リポジトリの一覧表示yum-config-manager --add-repo repository_url    # リポジトリの追加yum-config-manager --enable repository    # リポジトリの有効化

追加したリポジトリ/etc/yum.repos.d/ディレクトリにファイル(.repo)として保存される。

試しに、.repoファイルの中身をみてみると、ini形式で記述されている。enabled=1リポジトリが有効化されていることを意味している。gpgkeyは公開鍵ファイルのパスで、RPMに含まれた暗号化された署名を公開鍵ファイルで復号できれば、RPMファイルが偽物でないことがわかるようになっている。gpgcheck=1だと、リポジトリー内の全パッケージでGPG署名を確認し、パッケージの真正性を検証する。

/etc/yum.repos.d/vscode.repo

[code]name=Visual Studio Codebaseurl=https://packages.microsoft.com/yumrepos/vscodeenabled=1gpgcheck=1gpgkey=https://packages.microsoft.com/keys/microsoft.asc

リポジトリを無効化したい場合は、--disableで無効化する。

yum-config-manager --disable repository    # リポジトリの無効化

追加したリポジトリを削除するには、/etc/yum.repos.d/ディレクトリにある.repoファイルを削除する。

リポジトリにあるパッケージをインストール、またはアップデートするには、次のコマンドを実行する。

yum list # インストール可能なパッケージの一覧yum list installed # インストール済みのパッケージ一覧  yum install [パッケージ名] # パッケージのインストール  yum check-update # インストール済みのパッケージのうち、アップデートのあるパッケージの一覧yum update [パッケージ名]

実際にリポジトリを追加し、リポジトリ上のパッケージをインストールしてみる

CentOS Stream9のDockerイメージを使用して、リポジトリの追加とインストールを試してみる。ちなみに、Stream9のイメージはDocker Hubではなくて、quay.ioにある。

docker pull quay.io/centos/centos:stream9docker run --name centos_stream9 -it quay.io/centos/centos:stream9 /bin/bash

yum-config-managerがインストールされていないので、yum-utilsをインストールする。

# yum install -y yum-utils

VScodeをインストールしてみたい。公式をみてみると、リポジトリhttps://packages.microsoft.com/yumrepos/vscodeの模様。リポジトリを追加すると、/etc/yum.repos.d/配下にpackages.microsoft.com_yumrepos_vscode.repoが作成されている。

# yum-config-manager --add-repo https://packages.microsoft.com/yumrepos/vscode# ls /etc/yum.repos.d/centos-addons.repo  centos.repo  packages.microsoft.com_yumrepos_vscode.repo

.repoファイルの中身を見るとこんな感じ。

# cat /etc/yum.repos.d/packages.microsoft.com_yumrepos_vscode.repo[packages.microsoft.com_yumrepos_vscode]name=created by dnf config-manager from https://packages.microsoft.com/yumrepos/vscodebaseurl=https://packages.microsoft.com/yumrepos/vscodeenabled=1

これでyum install codeとすればVScodeをインストールできるのだが、.repoファイル名がなんだかかっこ悪いし、gpgcheckもされないので、ファイル名を変更してgpgcheckとgpgkeyを追加する。こんな感じ↓。

/etc/yum.repos.d/vscode.repo

[vscode]name=Visual Studio Codebaseurl=https://packages.microsoft.com/yumrepos/vscodeenabled=1gpgcheck=1gpgkey=https://packages.microsoft.com/keys/microsoft.asc

このように手動で.repoファイルを設定し、yum installでパッケージをインストールすることもできる。例えば、公式のgcloud CLIのインストール手順だと、次のように手動で.repoファイルを作成する。

sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM[google-cloud-cli]name=Google Cloud CLIbaseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el9-x86_64enabled=1gpgcheck=1repo_gpgcheck=0gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpgEOM

ちなみにVScodeの正式なインストール方法でやれば、手動で.repoファイルを作ったりしないで大丈夫です。

今回はyumを使用したけれど、dnfというコマンドもある。これは「yum」の後継となるコマンドで、yumと同じサブコマンド、オプションを使用できる。実際のところyumにしろ、dnfにしろシンボリックリンク先がdnf-3となっているので、結局dnf-3コマンドを実行していることになる。

$ ls -l /usr/bin/yum /usr/bin/dnflrwxrwxrwx 1 root root 5 Oct 26 05:16 /usr/bin/dnf -> dnf-3lrwxrwxrwx 1 root root 5 Oct 26 05:16 /usr/bin/yum -> dnf-3

今日のところはこんな感じ。おわり。

参考

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/deployment_guide/sec-managing_yum_repositories

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/deployment_guide/sec-configuring_yum_and_yum_repositories

https://xtech.nikkei.com/it/article/COLUMN/20061031/252339/

https://onoredekaiketsu.com/yum-command-and-repository/#toc36

https://eng-entrance.com/linux-package-yum

https://qiita.com/sksmnagisa/items/05a6f8a707010b8bea56

https://atmarkit.itmedia.co.jp/ait/articles/2001/31/news006.html

https://blog.apar.jp/linux/16100/

検索

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp