さまざまなディストリビューションのリストからパッケージをインストールする方法は?

さまざまなディストリビューションのリストからパッケージをインストールする方法は?

pkglist.txtすべてのディストリビューションにインストールする方法があると思いますが、少なくともManjaroとUbuntuにインストールされているパッケージのリストを持っていると思います。どうすればいいですか?

私は次のようなことを考えました。

# If on Manjaro:
yay -S --no-confirm --needed - < pkglist.txt
# Else if on Ubuntu:
xargs sudo apt install < pkglist.txt

問題は、多くのUnable to locate packageエラーが発生することです。ファイルからパッケージを 1 つずつインストールし、エラーを無視できます。

ベストアンサー1

これは基本的に「他のディストリビューションは異なります」と結び付けられます。通常、これは不可能です。両方のディストリビューションのパッケージ名のリストを保持する必要があります。

自動化できるいくつかのヒントがあります。

  • ほとんどのディストリビューションでは、どのパッケージが特定のファイルを提供しているかをパッケージリポジトリに尋ねることができます。たとえば、そのファイルが呼び出されることを知っている場合は、debian、ubuntuなどでfind packageを使用できます/usr/bin/oocalc。 Fedora/RHELでもapt-file search /usr/bin/oocalc同様です。dnf repoquery --whatprovidesoids、私はArch / Manjaroが同様のツールを持っていると確信しています。ただし、ディストリビューションによってはファイルが別の場所に配置される可能性があるため、これらすべてがすばやく分析されます。たとえば、一部のディストリビューションではアーキテクチャプレフィックスを使用します。さらに、同じファイルを提供する複数のパッケージがある場合があります。 (たとえば、同じプログラムの他のバージョン、コミュニティ対アップストリームパッケージなど。例については、mariadb / mysqlを参照してください。)
  • もちろん、パッケージ名から最も適切なパッケージを自動的に推測し、同様の一致を試すこともできます。頑張ってください!通常、100%の成功率を得ることはできません。
  • マシンのプロビジョニングを自動化したいと思われるので、他の人が維持するansibleロールを使用すると(したがって、他の人が「このパッケージはどのパッケージをインストールしますか?」リストを維持する)、同時に複数の問題を解決できます。

おすすめ記事