ローカルにインストールされたパッケージと更新されたパッケージのソースの差分を取得する方法はありますか?これは、修正、変更、または追加されたパーツを正確に確認するのに役立ちます。
たとえば、システムにlinux-libc-devパッケージがインストールされていて、
Sudo apt-get update && Sudo apt-get upgrade
ショー
The following packages will be upgraded:
linux-libc-dev
ただし、アップグレードする前に、同じパッケージのローカルバージョンと比較して行われた正確な変更を確認する必要があります。
どうすればできますか?
これが私が一緒にハッキングした別のソリューションです: whatchanged 。
関心のあるバイナリパッケージの名前を唯一の引数として受け取ります。例として最近のSRUを使用するには:
./whatchanged python_papyon
これはそれがすることです:
debdiff
と比較し、stdoutに出力します(おそらく、読みやすくするためにリダイレクトする必要があります)。おそらく、ソースの取得中に問題が発生する可能性がある特定の処理をより適切に処理する必要があり、フロー制御はおそらく少しずれており、バージョンチェックにはより洗練された方法が必要ですが、これまでの限られたテストでは問題なく機能しました。今のところ、それが機能する簡単なハックであると考えてください。それをbzrリポジトリーにプッシュしたり、少数のユーザーにとって便利な場合はLaunchpadプロジェクトを作成したりします。
Edit:Pastebinで腐らせるのではなく、私は Launchpadプロジェクト を開始しました。 bzr branch lp:whatchanged
を使用すると、最新のトランクリビジョンを取得できます。 report バグを自由に感じ、ブランチし、Perlで書き直すなどしてください。
Afaikがこれを行う唯一の方法は、ソースを取得して差分を自分のものにすることです。パッケージのコンパイルに使用される実際のソースは、apt-getで取得できます。 fx:
apt-get source gwibber=2.30.2-0ubuntu3 gwibber=2.30.0.1-0ubuntu1
diff -rupN gwibber-2.30.0.1/ gwibber-2.30.2/
これにより、すべてのファイル間のすべての違いが標準のパッチ形式で出力されます。
ここに1つあります(おそらく最適ではありません) [〜#〜] udd [〜#〜] 実行方法:
最新のSRUが含まれている(前提条件は次のとおりです)リリースのプル-updatesブランチ(Lucidを想定):
bzr branch lp:ubuntu/lucid-updates/package_name
最新のリビジョンによって導入された変更を取得します。これは(前提は以下のとおり)最新のSRUに対応している必要があります。
bzr diff -c`bzr revno`
パッケージアーカイブ内のファイルの違いを確認するには、それらのmd5sumsファイルを抽出し、それらを並べ替えて比較してから、実際のファイルのリストを絞り込んで、劇的に比較できます。