web-dev-qa-db-ja.com

openSUSEの別のコンピュータにまったく同じパッケージをインストールする方法は?

別のコンピューターも仮想マシンにすることができます。ハードウェアの違いと設定のためにディスククローンを作成できません。

コンピューターAがインストールされて実行されており、コンピューターBもあります。同じOSをBにインストールするので、同じ基本システムを取得します。

次に、手動でAと同じリポジトリを追加します。

しかし、最後の段階は私を超えています-Aと同じパッケージをインストールする方法は?パッケージ名だけでなく、バ​​ージョンも一致している必要があることに注意してください。

もちろん、1つずつ手動でインストールするのではなく、自動化された方法を探しています。

実際には、完全に異なるハードウェア構成、クリーンな設定(古いパスワードなしなど)を取得する必要がありますが、ソフトウェアの選択は同じです。

質問

どうやってするの?

バックグラウンド

パッケージ(バージョンごと)は入手可能ですが、最新のものではありません。これのポイントは、実行中のシステムの「コピー」を作成し、コンピューターBでパッケージをアップグレード(コピー)し、機能するかどうかをテストし、機能する場合はAをアップグレードすることです。新しいOSバージョンごとに、多くのリグレッションバグに見舞われます。テストライブやパニックよりも、より系統的にテストする必要があります。

openSUSE 11.4

8
greenoldman

独自のリポジトリを構築する必要があるようです。

RPMを希望のバージョンでそのリポジトリに配置します。次に、両方のマシンで(インストールソースとして)これらのリポジトリをアクティブ化し、パッケージをインストールします。

3
Nils

OpenSuseはRPMを使用しているため、rpmユーティリティを使用できます。

rpm -qaは、システムに現在インストールされているすべてのパッケージを一覧表示します(非常に長いリスト)。このリストには、パッケージ名、バージョン番号、およびアーキテクチャが含まれています。リストをファイルに書き込んで、新しいシステムでzypperにファイルを渡すことができます。

デフォルトですでにインストールされているパッケージがいくつかある可能性がありますが、zypperはそれらをスキップして、必要なパッケージをインストールします。

2
n0pe

まず、_rpm -qa > /tmp/rpm.list.txt_の「クローン」を作成しようとしているマシンにインストールされているすべてのパッケージとそのバージョンを一覧表示します。

次に、_/tmp/rpm.list.txt_を別のシステムの「クローン」に変換しようとしているシステムにコピーし、zypperを実行して、作成したパッケージリストをフィードします:zypper install $(cat /tmp/rpm.list.txt)(またはどこでもソースシステムからのパッケージのリストを含むファイルを置きます)。

1
Sami Laine