回答:
これらのファイルを見て、
/var/log/installer/initial-status.gz
'-プライマリインストール
/var/log/dpkg.log
'タイムラインを更新します(これはあなたが望むものです)/var/log/apt/term.log
'- apt
システムで更新されたもの/var/cache/apt/archives/'
されたdeb
パッケージが含まれます更新:新規インストールの正確なリストについては、次の2つの手順を使用します。
grep -w install /var/log/dpkg.log > full-list.log
/var/log/installer/initial-status.gz
タイムスタンプを超えた行を見るこれらのパッケージを使用して別のシステムにクリーンインストールを取得したいので、「deb」ファイルを「cache / apt / archives」パスから新しいインストールのパスにコピーし、1回でインストールすることもできます(ダウンロードせずに再び)。
にやにや笑いのために、最初にインストールされたパッケージと自動的にインストールされたパッケージを除く、手動でインストールされたパッケージを把握するワンライナー(ここでは明確にするために分割)をまとめました。
comm -13 \
<(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort) \
<(comm -23 \
<(dpkg-query -W -f='${Package}\n' | sed 1d | sort) \
<(apt-mark showauto | sort) \
)
これはとの両方で機能bash
しzsh
ます。
libtiff
、libxcb
私は自分自身をインストールしていない、などが。この回答:superuser.com/a/105000/24349は、インストール時間に基づいてソートし、システムのインストール時間の前にすべてを削除することで、それを処理します。シェルの素晴らしい(ab)使用!
上記の情報に基づいて、手動でインストールされたパッケージをリストする短いPythonスクリプトを作成しました。このリンクを参照してください。
私は責任を負いませんが、自由に使用してください。ただし、フィードバックや提案はいつでも歓迎します。
私の答えを確認してくださいここに関連する質問に:どのように私はDebianシステムにインストールされているすべてのパッケージのリストを表示することができますか?。質問に対する他の回答のいくつかには、そのようなリストを取得するための素晴らしい提案も含まれています。
以前の質問もこの質問に対応しているため、この質問は重複としてマークする必要がありますが、見つけやすいようにこの質問を単独で立てておくと便利です。
一貫した履歴があり、aptitudeを使用すると仮定します。
history | grep -e "^..... aptitude install"
aptitude install ... duhでインストールしたパッケージのみをリストします
これはハックジョブですが、完全に機能します。
まず、http://releases.ubuntu.com/maverick/(または使用しているUbuntuのバージョン)にアクセスし*.manifest file
て、使用しているUbuntuのバージョンに関連付けられているものを取得します。
次に、次のスクリプトを実行します(<manifest file>
、山かっこなどを、ダウンロードしたファイルへのパスに置き換えます。いつでも> output
末尾に追加して、ファイルダンプを作成できます。
diff --suppress-common-lines <(sed 's/ .*//' <manifest file>) <(dpkg --get-selections | sed 's/[ \t].*//') | grep '>' | sed 's/[>] //'
Geekosaur、素敵なコードをありがとう。私はそれを使用しましたが、それを機能させる方法を見つけるのに時間がかかりました。Ubuntu 11.10でそれを行った方法は次のとおりです。bashターミナルで動作します。
comm -13 \
<(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort) \
<(comm -23 \
<(dpkg-query -W -f='${Package}\n' | sed 1d | sort) \
<(apt-mark showauto | sort) \
) > user-installed-packages
次に、タブを追加します\t
— —そしてinstall
各行に:
sed 's/$/\tinstall/' user-installed-packages >uip
次に、新しいマシンで:
sudo dpkg --set-selections < uip
そして、パッケージをインストールするには:
sudo apt-get dselect-upgrade
これを行う別の方法は、最初のニーズに応じてインストールする基本パッケージを決定する「タスク」に基づいて、インストールされたものを決定することです。
tasksel --list-tasks
少なくともあなたが持っているだろうserver
。ただし、さらに多くを選択することもできます。インストールしたタスクごとに、インストールされているパッケージのリストを取得できます。インストールで選択したパッケージに対して、次のコマンドがすべてを1行で実行します(わかりやすくするために分割されています)。
(tasksel --task-packages server ; \
tasksel --task-packages openssh-server ; \
tasksel --task-packages lamp-server) | sort | uniq
上記に対する一般的なアプローチは次のとおりです。
(for a in $( tasksel --list-tasks | grep "^i" | awk '{ print $2 }' ) ; \
do tasksel --task-packages $a; done) | sort | uniq
今使っapt-cache depends --installed -i --recurse <packagename> | grep -v "^ "
タスクで定義されたすべてのパッケージで使用される依存関係のリストを取得します。これは、次のように1行で実行できます。
apt-cache depends --installed -i --recurse \
$(for a in $( tasksel --list-tasks | \
grep "^i" | \
awk '{ print $2 }' ) ; \
do tasksel --task-packages $a; done) | grep -v "^ " | sort | uniq
以下に、システムにインストールされているすべてのパッケージをリストします(依存関係は含まれません)。
dpkg --get-selections | grep "[[:space:]]install" | awk '{print $1}'
comm
コマンドを使用して、2番目のリストのみにあるものを見つけます(つまり、両方のファイルと最初のファイルにあるものを無視します)
comm -13 <(apt-cache depends --installed -i --recurse \
$(for a in $( tasksel --list-tasks | \
grep "^i" | \
awk '{ print $2 }' ) ; \
do tasksel --task-packages $a; done) | grep -v "^ " | sort ) \
<( dpkg --get-selections | grep "[[:space:]]install" | \
awk '{print $1}' | sort)