試用版F27を使用しており、パッケージを特定の(動作)バージョンに保ち、後続のバージョンで問題が停止するまでアップグレードしないようにする一時的な状況があります。私は一般的に「あなたはこれを本当に望んでいない」ことを知っていますが、私が言ったように、これはプレrelシステムの一時的な修正です。 aptを使用してシステムパッケージを「修正」することはできますが、dnfに対応するエントリが見つかりません。
答え1
Fedoraのドキュメントでは迅速な文書化この質問に答えるために。ここにまとめると:
到着ピンversionlock
プラグインが一部として提供されるパッケージですdnf-plugins-core
。望むよりman dnf-versionlock
。
sudo dnf install 'dnf-command(versionlock)'
sudo dnf versionlock add <package-name-spec>
sudo dnf versionlock delete <package-name-spec>
sudo dnf versionlock list
sudo dnf versionlock clear # Removes all versionlocks
sudo dnf versionlock exclude # Also possible here
到着入らないようにする取引のパッケージ
sudo dnf upgrade --exclude=packagename
または追加/etc/dnf/dnf.conf
excludepkgs=package-name // See `man dnf.conf` for more
間の違い入らないようにするそして決定した(dnf versionlock
:)入らないようにするパッケージは、dnf
トランザクションが完全に無視されるように指示するパッケージです。バージョンロックパッケージとは、パッケージを識別するが特定のバージョンに保持するよう明示的に要求するパッケージです。パッケージの除外は背中dnf search
でもdnf repoquery
機能し、パッケージが存在しないかのように効果的に機能できるため、これらの区別が重要です。
したがって、この質問については:
versionlock
それがあなたが望むものなので、これをやりたいかもしれません。これは、可能な限りパッケージを固定し、まだ利用可能な最新バージョンを表示できることを思い出させるのに役立ちます。dnf updateinfo --list
これは編集された場合には発生しません。exclude
また、dnf check-update
文字通り更新する項目がないため、固定(または除外)パッケージは表示されません。代わりに、「
exclude
パッケージ」はより広い意味です。おそらく、あなた(またはあなたのシステム管理者)がパッケージセットに全く触れたくないかもしれません。理由。たとえば、次にも
exclude
同様に適用されます。dnf search <keywords> --exclude=packagename
package-name
最後に、上記は依存関係に関係なく与えられたものに直接適用されることに注意してください。しかし、私はdnf update
保持されたパッケージが原因で破損したパッケージの更新をまだ正しく拒否することを観察しました(そしてそのパッケージをスキップしていることを知らせるのに役立ちます)。
答え2
excludepkgs
repoセクションでdnf.conf
インストールまたはアップグレードしようとしないパッケージリストの構成オプションは、そのrepoにのみ影響し、すべてのrepoが影響を受けます。詳細については、マニュアルページを参照してください。dnf
[main]
dnf.conf(5)
答え3
get を使用して除外を取得することもできますが、--exclude=package
「除外」と「修正」は異なる操作なので、正しい固定ソリューションは次のようにすることです。
python3-dnf-plugin-versionlock
以下を置き換えます。
yum-plugin-versionlock
設定ファイルはyumとdnfの間で異なる動作をします。私はdnfに対する正解を持っていません(まだマニュアルページを見ていません)。したがって、詳細は追加しません。パッケージとepoc番号を指定するために使用される順序が逆のようです。 dnfのマニュアルページには「epoc」への言及はありません(以前のシステムについてはこのマニュアルページを見ることができます)。
ヤムは次のとおりです
"${epoch}:${pkg_name}-${pkg_version}.*"
dnfでは、次のようになります。
"${pkg_name}-${epoch}:${pkg_version}.*"
これが何を意味するのかを理解するには、次の例を実行します。
dnf versionlock add bash
そして、ファイルの内容を確認してください。
cat /etc/dnf/plugins/versionlock.list
# Added locks on Fri Aug 28 17:30:58 2020
bash-0:4.4.19-10.el8.*