パッケージから単一のファイルを復元する方法は?


回答:


21

たとえばtransmission-daemon、パッケージをダウンロードします

sudo apt-get --download-only install transmission-daemon

パッケージを開梱します

mkdir ~/dummy
dpkg-deb -x /var/cache/apt/archives/transmission-daemon_*.deb ~/dummy

たとえば、ファイルを復元します /etc/init.d/transmission-daemon

sudo cp ~/dummy/etc/init.d/transmission-daemon /etc/init.d

dirを削除します

rm -rf ~/dummy

2
またapt-get download、現在の作業ディレクトリへのダウンロード.

4
あなたは、関連するパイプラインを使用してアーカイブ全体を抽出避けることができるdpkg-deb --fsys-tarfiletar:そうのように、dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
小次郎

1
/tmp/dummyそれはより便利で~/dummy、それを削除する必要があるようです。
カールリヒター

好むapt-get downloadので、apt-get --download-only installパッケージが既にインストールされている場合の意志ストップ。camypajの答えが示すように。
ジュリアンカルシケ

kojiroのコメントを拡張するには、さまざまなマシンでnginxののworker_processes設定のデフォルト値を調べる必要がありました。そこで、次のコマンドを思いつきましたfor f in /var/cache/apt/archives/nginx-common*; do dpkg-deb --fsys-tarfile "$f" | tar xO ./etc/nginx/nginx.conf | grep worker_processes; done
x-yuri

12

私はこれが少し古いことを知っていますが、ここに私の改善点があります:

$ sudo apt-get download <package-name>

の代わりに

$ sudo apt-get --download-only install <package-name>

パッケージが既にインストールされている状況があったため(提案されたソリューションは機能しませんでした)、問題を解決するために1つの構成ファイルのみを復元したかったのです。

乾杯


3
パッケージが既にインストールされている場合、通常はそのパッケージに/var/cache/apt/archives/あり、ダウンロードする必要はありません。
アーメドマスード14年

2
はい。ただし、パッケージが比較的最近インストールされ、アーカイブが手動または自動でクリーンアップされていない場合のみ。
-joeytwiddle
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.