新しくリリースされたPodman4.0は、NetavarkとAardvarkに基づくネットワークスタックの完全な書き直しを特徴としており、既存のContainer Networking Interface(CNI)スタックと一緒に機能します。
Netavarkは、CNIプラグイン(containernetworking-plugins
)の代わりとして機能するLinuxコンテナーのネットワークを構成するためのRustベースのツールです。 Fedoraで)。 Aardvark-dnsは、コンテナレコードの信頼できるDNSサーバーになりました。新しいスタックに加えて、Fedora35のリポジトリの可用性の変更に伴うディストリビューションパッケージの変更があります。
Fedoraユーザー向け
Podman v4は、Fedora36およびRawhideの公式Fedoraパッケージとして利用できます。 NetavarkとAardvark-dnsはどちらも、Fedora 35以降のバージョンで公式のFedoraパッケージとして利用可能であり、Podman4.0の新規インストール用のデフォルトのネットワークスタックを形成します。
Fedora 36以降では、Podman v4を新たにインストールすると、NetavarkとともにAardvark-dnsが自動的にインストールされます。
Podman v4をインストールするには:
$ sudo dnf install podman
Podmanを古いバージョンからv4に更新するには:
$ sudo dnf update podman
Podmanv4はPodmanv3からのいくつかの重大な変更を特徴としているため、Fedora35ユーザーはデフォルトのリポジトリーを使用してPodmanv4をインストールすることはできません。ただし、試してみたい場合は、代わりにCoprリポジトリを使用できます。
$ sudo dnf copr enable rhcontainerbot/podman4
# install or update per your needs
$ sudo dnf install podman
インストール後、すべてのコンテナを移行してNetavarkを使用する場合は、network_backend = "netavark"
を設定する必要があります。 [network]
の下 containers.conf
のセクション 、通常は/usr/share/containers/containers.conf
にあります 。
最新の開発バージョンのテスト
リリースされていない最新のアップストリームコードをテストする場合は、podman-next
を試してください。 Copr:
$ sudo dnf copr enable rhcontainerbot/podman-next
$ sudo dnf install podman
注意:podman-next
Coprは、Podman、Netavark、およびAardvark-dnsの最新の未リリースのソースをRPM Package Manager(RPM)として提供します。これらは、公式パッケージによって提供されるバージョンを上書きします。
Fedoraパッケージャーの場合
PodmanのFedoraパッケージソースは、パッケージのメンテナンスのためにFedoraのリポジトリで入手できます。メインのPodmanパッケージは、containernetworking-plugins
に明示的に依存しなくなりました 。ネットワークスタックの依存関係がcontainers-common
で処理されるようになりました パッケージ。PodmanとBuildahの依存関係を1か所で維持できます。
- containers-common
Requires: container-network-stack
Recommends: netavark
- netavark
Provides: container-network-stack = 2
- containernetworking-plugins
Provides: container-network-stack = 1
この構成により、次のことが保証されます。
- Podmanを新規インストールすると、デフォルトで常にNetavarkがインストールされます。
-
containernetworking-plugins
パッケージはNetavarkと競合せず、ユーザーはそれらを一緒にインストールできます。
バンドルされた依存関係の一覧表示
パッケージソースにバンドルされている依存関係を一覧表示する必要がある場合は、go.mod
を処理できます。 アップストリームソースのファイル。たとえば、Fedoraのパッケージソースは以下を使用します:
$ awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | \
sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\
|module\|replace\|require))/d'
NetavarkおよびAardvark-dns
NetavarkおよびAardvark-dnsの.tarベンダーソースは、アップストリームリリースアーティファクトとして添付されます。次に、Cargo構成ファイルを作成して、ベンダーディレクトリを指すようにします。
tar xvf %{SOURCE}
mkdir -p .cargo
cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
NetavarkおよびAardvark-dnsのFedoraパッケージソースは、Fedoraプロジェクトのリポジトリーでも入手できます。
NetavarkおよびAardvark-dnsが依存するRustクレートのFedoraパッケージバージョンは、最初のパッケージ作成時にしばしば古くなっています(たとえば、rtnetlink、sha2、zbus、およびzvariant)。その結果、NetavarkとAardvark-dnは、vendor
にあるアップストリームベンダーの依存関係を使用して構築されます。 サブディレクトリ。
netavarkバイナリは/usr/libexec/podman/netavark
にインストールされます 、aardvark-dnsバイナリが/usr/libexec/podman/aardvark-dns
にインストールされている間 。
netavark
パッケージにはRecommends
があります aardvark-dns
で パッケージ。 aardvark-dns
パッケージはデフォルトでNetavarkとともにインストールされますが、Netavarkはそれがなくても機能します。
バンドルされた依存関係の一覧表示
パッケージソースにバンドルされている依存関係を一覧表示する必要がある場合は、cargo tree
を実行できます。 アップストリームソースのコマンド。たとえば、Fedoraのパッケージソースは以下を使用します:
$ cargo tree --prefix none | \
awk '{print "Provides: bundled(crate("$1")) = "$2}' | \
sort | uniq
詳細h2>
これらのアップデートがお役に立てば幸いです。ご不明な点がございましたら、GitHubでお気軽にディスカッションを開くか、Slack、IRC、Matrx、Discordを通じて私または他のPodmanメンテナーにご連絡ください。さらに良いことに、私たちはあなたが貢献者として私たちのコミュニティに参加することを望んでいます!