複数のコンピューター間でのapt-getインストールの同期


11

複数のPC間でインストール(および削除)を同期する方法はありますか?

できればdropboxで-ファイルの同期を保つためにすでにそれを使用しているので。

パラメータをファイルに保存するapt-get installand apt-get removeコマンドのエイリアス(インストール用、削除用)と、ファイル内のすべてのエントリを読み取り、それぞれのコマンドを実行する別のコマンドを考えました。これは現実的なアプローチですか?

回答:


7

puppetを使用して、インストールするパッケージを指定する構成ファイルを作成できます。また、puppetmasterサーバーではなくDropboxを使用してマシン間でpuppet構成を同期し、さらにcronジョブを使用して定期的にpuppetを実行し、構成の変更を実装できます。


これは、少数のマシンにとって素晴らしいアイデアです。より大きな環境では、間違いなく操り人形師が必要です。私が働いている場所では、パペットで数千台のマシンを管理しています。
エド・マネ

9

より良い方法があるかどうかはわかりませんが(おそらくあります)、必要な規模に応じて、機械の一部にaptitudeの検索機能を使用できます。パターンに一致するパッケージを検索できます。したがって、aptitude search '~i'インストールされているすべてのパッケージを提供します

ただし、さらに一歩進める必要があります。パッケージマネージャーは、どのパッケージがあなたから直接リクエストされ、どのパッケージが他のパッケージのために引き込まれたのかを知りたいです。その情報がなければ、いことが起こります。そのため、その検索パターンを展開して、自動的にインストールされないパッケージを選択できます。aptitude search '!~M ~i'

検索機能の詳細については、Aptitudeのリファレンスマニュアルを参照してください

これで、インストールするパッケージのリストができました。あなたはできる出力をフォーマットするだけで、パッケージ名でリストを取得するには-F「%のP」のように、そのコマンドに-fフラグを渡すことで、必要に応じて。


たとえばマシン1でこれを実行できます。

aptitude -F "%c %p" --disable-columns search '!~M ~i' | awk -F " " '{ print "apt-get -y install " $2 }' > aptshell.sh

そして、新しく作成されたコピーaptshell.shに上のファイルをマシン2とし、このコマンドを使用し、マシン2がそれを実行します:

sudo sh aptshell.sh

元と、プロセスを繰り返す機械2新品同様機1、及びオリジナルマシン1新品同様機2。現在、各マシンには、以前は他のマシンにしかなかったすべてのパッケージがあります。


このバージョン...マシン1は、例えば、マシン2のために、バックのバージョンを保有していることがそれを反映すべきである含めるには素晴らしいだろう
ロンド

例:aptitude -F "%c%p%V" --disable-columns search '!〜M〜i' | awk -F "" '{print "apt-get -y install" $ 2 "=" $ 3}'> aptshell.sh
Rondo

2

これは古い質問ですが、誰もそれを言っていないので、dpkgとcronで何かできるかもしれません。dpkgのget-selectionsコマンドとset-selectionsコマンドで何か巧妙なことをするcronジョブをセットアップします。

dpkg --set-selections < ~/Dropbox/selections.dpkg


dpkg --get-selections > ~/Dropbox/selections.dpkg

これは提案された解決策ではありません。いずれかのコンピューターで変更を行うたびにselections.dpkgが更新されるようにするために何らかの方法を検討する必要があります...


2

Ubuntu Software Centerには、インストールされたパッケージを複数のコンピューター間で同期する機能があります。Ubuntu Oneアカウントを使用してパッケージを保存します。File > Sync Between Computers...Ubuntu Oneアカウントを選択してログインするだけです。

パッケージをUbuntu Software Centerと同期する

現在、何らかの機能が制限されています。たとえば、デフォルトパッケージ(ppasではない)のみがサポートされており、インストールするパッケージを手動で選択する必要があります(これは肯定的な機能と見なすことができます)。詳細な手順については、この記事を参照してください


-2

Dropboxを使用してパッケージインストールを同期することはできません。

Synapticにはパッケージのダウンロードリストを保存する方法がありますが、「今回ダウンロードしたいパッケージだけではなく」「これまでにインストールされたすべてのもの」のケースを処理するかどうかはわかりません


-1あなたの仮定が間違っているため、質問は、インストール/削除リストを使用して、現実的な実装があるかどうかを尋ねていることを実装するプロセスを説明しています。
ジョアンピント
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.