Linuxにおいてリポジトリとは、ダウンロードのためにパッケージ(.rpm, .deb)などを配置してくれているサーバのこと。
例えば、ニフクラさんは、rhui-rhel-8-for-x86_64-baseos-rhui-rpms
やrhui-rhel-8-for-x86_64-appstream-rhui-rpms
というリポジトリ(サーバ)に、さまざまなパッケージ(aajohan-comfortaa-fonts.noarch
とか)を置いていて、ユーザーがダウンロードできるようにしてくれている。ちなみに、.noarch
というのはアーキテクチャに依存しないよ、という意味で、パッケージを作成する人がi386(32bit)やらx86_64(64bit)とか気にしないでいずれのアーキテクチャでも使用できるよ、とお知らせしてくれている。
で、このリポジトリをLinuxマシンに追加しておかないと、リポジトリに配置されているパッケージをダウンロードできない。
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署名を確認し、パッケージの真正性を検証する。
[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://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
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。