패키지에서 단일 파일을 복원하는 방법은 무엇입니까?


답변:


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

디렉토리를 제거

rm -rf ~/dummy

2
또한 apt-get download현재 작업 디렉토리로의 다운로드.

4
다음 dpkg-deb --fsys-tarfiletar같은 파이프 라인을 사용하여 전체 아카이브를 추출하지 않아도됩니다.dpkg-deb --fsys-tarfile "$package"*.deb | tar -x ./path/to/file
kojiro

1
/tmp/dummy더 편리하고 ~/dummy제거해야 할 필요가 있습니다.
Karl Richter

선호 apt-get download하기 때문에 apt-get --download-only install패키지가 이미 설치되어있는 경우 의지 중지합니다. camypaj의 답변에서 알 수 있듯이.
Julien Carsique

코지로의 의견을 확장하기 위해, 나는 기본값 무엇이 있는지 볼 수밖에 없었 nginxworker_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>

패키지가 이미 설치된 상황 (따라서 제안 된 솔루션이 작동하지 않음)이 있었고 문제를 해결하기 위해 하나의 구성 파일 만 복원하고 싶었습니다.

건배


3
패키지가 이미 설치되어있는 경우 일반적으로 발견되며 /var/cache/apt/archives/다운로드하지 않아도됩니다.
Ahmed Masud

2
예. 그러나 패키지가 비교적 최근에 설치되었고 아카이브가 수동 또는 자동으로 정리되지 않은 경우에만 가능합니다.
joeytwiddle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.