読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】rpm で入れたら依存のエラー。yum・dnf・zypper の使い方と /etc/yum.repos.d のリポジトリ設定【LPICレベル1】

15レスカテゴリ:Linux
1: 名無しさん

rpm -i で入れようとしたら、足りないパッケージがあるって止まった
apt みたいに依存をまとめて入れるのは何を使うん?

2: 名無しさん

前提のおさらい。rpm は手元の .rpm を1つずつ扱って、依存は取ってこない。署名は rpm -K、公開鍵は rpm --import

3: 名無しさん

>>1
Red Hat 系は yum か dnf、SUSE 系は zypper。リポジトリから依存をたどってまとめて入れる

4: 名無しさん

>>3
yum と dnf はどう違うん?

5: 名無しさん

>>4
dnf は yum の後継で、使い方はほぼ同じ。AlmaLinux 9 の yum パッケージを調べたら、/usr/bin/yum は dnf-3 へのリンク、/etc/yum.conf は dnf/dnf.conf へのリンクやった。古い系統では yum が本体

6: 名無しさん

>>3
よく使うコマンド(dnf の man。yum も同じ)
install 入れる、remove 消す、upgrade 更新(update は古い別名)
check-update 更新があるか見るだけ
search キーワード、info パッケージ、list --installed
provides ファイル そのファイルを持つパッケージ
repolist 使うリポジトリの一覧、clean all キャッシュを消す

7: 名無しさん

>>6
dnf provides /usr/bin/tree で、まだ入れてないパッケージでも探せるんか。rpm -qf は入ってるものだけやから、ここが違う

8: 名無しさん

>>6
パッケージのファイルを取ってくるだけなら dnf download(プラグイン)や --downloadonly。yum の時代は yumdownloader

9: 名無しさん

>>2
リポジトリの設定はどこ?

10: 名無しさん

>>9
全体の設定は /etc/dnf/dnf.conf(yum は /etc/yum.conf)、リポジトリは /etc/yum.repos.d/ の .repo ファイル。AlmaLinux 9 の almalinux-baseos.repo はこうなってた
[baseos] リポジトリの ID
name=AlmaLinux $releasever - BaseOS
mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos
enabled=1 使う
gpgcheck=1 署名を確かめる
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9

11: 名無しさん

>>10
mirrorlist の代わりに baseurl= で場所を直接書くこともできる。同じファイルの debuginfo と source のリポジトリは enabled=0 で止めてあった。$releasever などは dnf が版の番号に置き換える

12: 名無しさん

>>3
zypper は?

13: 名無しさん

>>12
openSUSE・SUSE のコマンド。短い別名がある(zypper の man)
install(in)、remove(rm)、update(up)、search(se)、info(if)
refresh(ref)リポジトリの情報を取り直す
repos(lr)一覧、addrepo(ar)追加、removerepo(rr)削除
what-provides(wp)提供しているパッケージ
リポジトリの設定は /etc/zypp/repos.d/

14: 名無しさん

>>13
apt の update にあたるのが zypper の refresh。dnf は .repo の metadata_expire(AlmaLinux は86400秒)が過ぎたら自分で取り直して、すぐ取り直すなら dnf makecache

15: 名無しさん

>>6
依存は dnf・yum・zypper に任せて、設定は /etc/yum.repos.d と /etc/zypp/repos.d。探すのは provides と wp。rpm と役割を分けて覚えるわ

管理人のひとこと