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


답변:


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-tarfile과 tar같은 파이프 라인을 사용하여 전체 아카이브를 추출하지 않아도됩니다.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

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

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

건배


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

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