
システムを32ビットから64ビットに変更し、以前と同じDebian Squeezeを使用しますが、以前にインストールしたプログラム名を覚えておらず、紛失したくありません。
だから私は私のためにこれを行うコマンドが欲しいです。私がインストールしたすべてのプログラムの名前をファイルに保存しますが、システムに付属の標準プログラムは保存しません。他のシステムを使用する場合はファイルとディレクトリを参照するため、すべてが自動的にインストールされます。
もう一度質問:手動でインストールされたプログラムを使用してこれを実行できますかdpkg-i package.deb
?では、どうすればよいですか?
答え1
現在の Debian リリースでは、以下を使用して明示的にインストールされたパッケージのリストを取得できます。
apt-mark showmanual
存在しない以前のバージョンの Debian を実行している場合、apt-mark showmanual
または他のオプションを実行したい場合は、aptitude を使用できます。
aptitude search '~i !~M' -F %p >package.list
~i
インストールされたパッケージと一致し、!~M
他のパッケージの依存関係で自動的にインストールされたパッケージは省略されます。-F %p
パッケージ名のみを含めるように出力形式を変更します。
後でこのパッケージをインストールできます。
apt-get install $(cat package.list)
Debianスクイズはそうではありませんが、自動的にインストールされたパッケージを一覧表示しますapt-mark showmanual
。apt-mark showauto
この機能を使用している場合は、以前のシステムのすべてのパッケージの一覧を使用し、dpkg --get-selections >package.list
すべてのパッケージを復元してから自動パッケージ表示を使用できますapt-mark markauto
。ユースケース(32ビットから64ビット)の場合、このアプローチでは、一部のライブラリがアーキテクチャによって名前が異なるため、一部のライブラリを手動で表示できます。
ユースケースがパッケージセットを保持するのではなく、スキーマを変更するのではなく、同じインストールを再現する場合は、アプリクローン(wheezy 以降 Debian にデプロイされる) は、すべてを自動的に実行します。
答え2
を使ってみましたdpkg --get-selections >packages
か?特定のパッケージを除外したい場合は、出力ファイルを編集できますpackages
。完了したら、ターゲットシステムに送信し、次のように言います。
dpkg --set-selections <packages
パッケージはインストール用に表示されます。また、話す必要がありますaptitude update; aptitude dist-upgrade
。
別の質問:これらのパッケージがi386
アーキテクチャパッケージであり、すでにインストールされている場合は、一般的なパッケージをmultiarch
使用できます。ただし、ケースバイケースで調査して、これらのパッケージを含む64ビットバージョンをインストールすることをお勧めします。.deb
dpkg -i package.deb
答え3
これを行う簡単で標準的な方法はありません。 「システムに付属の標準プログラム」と他のプログラムを区別しないdpkg
ため、ログとオプションを操作する必要があるようです。dpkg
簡単ではありません。、明確にするために、太字の大文字のテキストを使用することをお勧めします。しかし、次のことができます。
ファイルからインストールされているソフトウェアのリストを抽出します
/var/log/dpkg.log*
。システムのインストール中にインストールされたものを削除します。 (インストール時間を使用して検出)
dpkg --get-selections
リストを形式で保存
望むより!システムが稼働している場合は、次のコマンドを使用してプログラムを再インストールします。
apt-get update
dpkg --set-selections < yourSelection
apt-get -u dselect-upgrade
答え4
RPMパッケージングを使用してRHEL / Fedoraシステムで同じことを行う方法を理解しようとしています。これは役に立ちましたが、sudo dnf history
このコマンドは、アナコンダインストーラがシステムをインストールした後にユーザーがインストールしたものだけを一覧表示します。
これは私が使用するコマンドです:
sudo dpkg -l|awk '/^ii/{ print $2 }'|grep -v -e ^lib -e -dev -e $(uname -r) > /path/to/your/filename000.txt