web-dev-qa-db-ja.com

「apt-get update」に相当するyumとは何ですか?

Debianのapt-get updateパッケージインデックスをフェッチして更新します。私はこのやり方に慣れているので、それを見つけて驚いたyum updateはすべてを行いますandはシステムをアップグレードします。これは、何もインストールせずにパッケージインデックスを更新する方法に興味を持ちました。

99
tshepang

check-updateコマンドは、パッケージインデックスを更新し、利用可能な更新を確認します。

yum check-update
98
wag

yum check-updateはインストール済みパッケージの更新をチェックしますが、更新が必要な場合は、他のほとんどのコマンドもチェックします。

厳密にapt-get updateと同等のコマンドはyum makecache ...ですが、通常、yumで直接実行することはお勧めしません。

31
James Antill

残念ながら、デフォルトでyum check-updateは、yum.confのmetadata_expireパラメータが経過するまで(デフォルト90m)、リモートリポジトリからの変更をプルダウンしません。どうやらその目的は「インタラクティブに実行せずに適用する必要がある更新がマシンにあったかどうかを知ること」なので、基本的には「更新可能なパッケージのリストを更新する」のではなく「更新可能なパッケージがあるかどうかを確認する」期待するだろう。

したがって、yum check-updateを実行してこれを取得すると、次のようになります。

$ Sudo yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

packagename      version     repo

これは、check-updateがapt-get updateのように更新を実行しないことを意味します。

this を実行すると、すべてのコマンドが「自動更新」を実行するまでにかかる時間がわかります:yum repolist enabled -v

回避策:

seyum clean expire-cache(またはyum clean all)最初に、その後のすべてのyumコマンドは「実行時に」キャッシュを自動更新します。 。今後のyumコマンドはキャッシュを更新するため、これは実際にはapt-get updateと同じです。

または、yum.confのmetadata_expireパラメーターをデフォルトの90分未満に変更すると思います。

または、(他の回答から)yum makecacheを実行すると、キャッシュが削除され、すぐに新しいコピーがプルダウンされます。しかし、それはclean all(?)FWIWよりも時間がかかるようです。

23
rogerdpack

これはローカルキャッシュを更新するコマンドなので、

yum makecache

Working with Yum cache によると、あなたが探しているコマンドのようです。

Yumはすでにyum.confのmetadata_expire値に基づいてメタデータをチェックして更新するため、通常はこのコマンドを直接実行する必要はありません。デフォルトは6時間です。

ただし、Ansibleプレイブックには、パッケージをインストールせずにキャッシュのみを更新する方法がないため、少なくとも1つのユースケースがある可能性があります(Ansibleの問題 461 を参照) =および 40068 、バージョン2.8で修正されたようです 4618 )。 Ansible yumモジュールは、「update_cache:yes」オプションのパッケージ名が必要です。したがって、代替として「コマンド:yum makecache」をプレイブックで使用できます。

--refreshスイッチを使用してメタデータの同期を強制することもできますが、dnfにはmakecacheコマンドもあります。

2
Tufan K