まるまろぐ

本ブログに記載の情報は全て飼い犬が書いたものであり、その内容に誤りや欠陥があった場合にも、私は一切の責任を負いません。

aptでインストール済みのパッケージ構成を(他のサーバで)復元する

古いサーバにaptでインストールされているパッケージたちを新しいサーバにもインストールする必要があり、とりあえずググって出てきた方法で試したがうまくいかず、他にないか探していたらちょうどいいものがあったのでメモ。

環境

移行前、移行先のサーバ共にUbuntu Server 18.04 LTS

手順

1. 移行前のサーバ

sudo apt update & upgrade
sudo apt install apt-clone
sudo apt-clone clone ~/hoge

すると、インストールできないパッケージ等の情報が標準出力に出るとともに、hoge.apt-clone.tar.gzが生成されるので、scpなどで移行先のサーバに送ってください(自分はディレクトリがマウントされていたので送る必要はなかったけど)。

2. 移行先のサーバ

sudo apt update & upgrade
sudo apt install apt-clone
sudo apt-clone restore ~/hoge.apt-clone.tar.gz

以上でインストールは完了です。

余談

もともとはこちらなどに書かれているように、dselectを使ってインストールしようとしていました。しかし、 f:id:hidamarumaru:20181109202928p:plain という警告が出て、まあ入れ直すのだから大丈夫だろうとは思いつつも、highly recommendedと言われてるし、ググってもこの警告に関して言及してる人が見当たらなかったこと、そもそも手順がややこしくpippip freeze > requirements.txtpip -r requirements.txtみたいにあっさり移行できる方法がないのかと思ったこともあり、改めて他の手段を探すことにした結果、apt-cloneを見つけて使うことにしました。そのとき日本語の情報が見当たらなかったのでこの記事を書くことにしました。

上のダイアログでNoを選んでも無事インストールできていたのか気になる……。

参考

https://github.com/mvo5/apt-clone