dpkg --set-selections '*'에서 모든 데이터 및 종속성 복원


44

따라서 한 대의 컴퓨터에서 실행할 수 있습니다.

dpkg --get-selections '*' > selection.txt

다른 머신에서 :

dpkg --set-selections < selection.txt

... 뒤에 다음 중 하나가옵니다.

aptitude install
apt-get -u dselect-upgrade

... 패키지를 설치합니다.

그러나 패키지 (예 xyz:)가 다른 패키지 ( abc)의 종속성으로 자동 설치 되었는지 여부와 같은 일부 정보가 프로세스에서 손실되는 것으로 보입니다 . 당신은 같은 것을 할 때마다 그것을 볼 수 있습니다 apt-get --purge remove abc. 원래 시스템 xyz에서는 종속 패키지 로 패키지 가 설치되었으며 이를 제거 abc하는 apt-get autoremove데 사용할 수 있다는 알림 을받습니다.

이제는 deborphan및을 알고 debfoster있지만 (단순한) 작업을 수행하는 데 번거 롭습니다.

위에 표시된대로 선택 항목을 저장하고 복원하는 것만으로는 설치된 패키지의 미묘한 종속성을 복원하기에 충분하지 않습니다.

패키지 관리를 위해 전체 메타 데이터 세트를 백업하고 전체를 복원하는 방법이 있습니까?


나는 종종 내 패키지 (마이너스 라이브러리)와 함께 'sudo apt-get install'을 사용하여 큰 쉘 스크립트를 생성하는 것과 같은 것을 궁금해했다. 물론, 나는 당신과 같은 문제에 부딪칩니다.
척 R

dpkg가 실제로 해당 정보를 담당하는지 확인하는 것이 가장 좋습니다. 그렇지 않다면 아마도 그 직업 일 것입니다.
Huckle

3
수동 방식으로 가고 있다면 apt-mark자동 및 수동으로 설치된 패키지에 대한 정보를 저장 / 복원하는 데 관심이있을 수 있습니다.
Lekensteyn

10.04 패키지 저장소에 있지 않습니까? 정식 저장소 또는 타사의 일부입니까?
0xC0000022L

2
아니요, "정보 용"의견 일뿐입니다. 패키지의 마크를 가져오고 설정하기 위해 apt-mark를 사용합니다 (아파트의 일부이므로 이미 설치되어 있어야 함 ). 자세한 내용 은 맨 페이지 를 참조하십시오.
htorque

답변:


39

지원:

apt-mark showauto > pkgs_auto.lst
apt-mark showmanual > pkgs_manual.lst

복원:

sudo apt-mark auto $(cat pkgs_auto.lst)
sudo apt-mark manual $(cat pkgs_manual.lst)

감사합니다. 귀 하나 Lekensteyn이 답변으로 작성해달라고 요청했습니다.
0xC0000022L

이 명령으로 해당 목록에서 프로그램을 다시 설치할 수 있습니까?
Svetlana Belkin

복원시 추가로 설치된 패키지를 제거 할 수 있습니까?
n611x007

1
당신은 차이 설명 할 수 automanual? 감사.
Anto

실수로 다른 패키지를 수동으로 표시했습니다. 되돌릴 방법이 있습니까? 감사합니다
dentex

2

이 질문에 대한 선택된 답변이 불완전하며 더 이상 작동하지 않습니다. 고통스러운 수정은 bash for-loop를 사용하여 출력 * .lst 파일을 구문 분석하고에 공급하는 것 apt install입니다. 그러나 잘못된 선택이므로 여기에서는 설명하지 않습니다.

Unix & Linux Stackexchange 의이 답변 에서 apt-clone볼 수 있듯이을 사용하는 것이 더 좋습니다 . 작은 파일이 생성됩니다 (시스템의 경우 약 100K 이하). 의심 할 여지없이 약간의 노력이나 고통으로 패키지를 복제합니다.

간단히 말해, 원래 머신에서 :

apt-clone clone `uname -n`

그런 다음 복제 할 머신에서 복제 파일을 복사하고 다음을 실행하십시오.

apt-clone restore original-machine-name.apt-clone.tar.gz

이 페이지는 초기 웹 검색에서 표시되었으므로이 답변을 포함했지만 다른 답변은 그렇지 않았습니다. 이 방법은 훨씬 쉬워 보입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.