概要
CentOS環境にインストールされているパッケージを、別のCentOS環境にもインストールしたいときに実施したことのメモ。
手順
1.「コピー元」で以下のコマンドを実行する
$ rpm -qa --qf "%{NAME}\n" | sort > old_packages.txt
インストール済みパッケージ一覧をソートしてold_packages.txt
に出力する。
2.old_packages.txt
をscpコマンドで「コピー先」の環境に転送する
・リモートからローカルへコピー
$ scp username@remote.example.com:/remote/directory/old_packages.txt /local/directory
・ローカルからリモートへコピー
$ scp old_packages.txt username@remote.example.com:/remote/directory
3.「コピー先」で以下のコマンドを実行する
$ rpm -qa --qf "%{NAME}\n" | sort > new_packages.txt
4.「コピー元」と「コピー先」の差分を出力する
以下のコマンドを実行すれば、「コピー元」にインストールされていて、「コピー先」にはインストールされていないパッケージの名前がpackages_diff.txt
に出力される。
$ diff old_packages.txt new_packages.txt | grep "^<" | cut -d ' ' -f 2 > packages_diff.txt
5.packages_diff.txt
を確認し、不要なパッケージを削除する
6.「コピー先」でパッケージをインストールする
以下のコマンドを実行すれば、まとめてパッケージをインストールできる。
$ yum install $(<packages_diff.txt) -y