우분투를 다른 플랫폼으로 마이그레이션 할 때 설치된 응용 프로그램을 어떻게 보존합니까?

StackOverflow https://stackoverflow.com/questions/187629

  •  06-07-2019
  •  | 
  •  

문제

나는 오래된 AMD64에서 새로운 인텔 듀얼 코어로 32 비트 인 새로운 인텔 듀얼 코어로 이동하는 것을보고 있습니다. 설치는 문제가되지 않지만 설치된 모든 앱을 전송할 수 있습니까? 마이그레이션이 비슷한 플랫폼과 파일 시스템을 제외하고 Google에서 지금까지 아무것도 찾을 수 없었습니다. 파일 시스템을 변경하지는 않지만 플랫폼은 다릅니다. Gentoo의 "World"파일의 줄에 무언가가 있습니까?

도움이 되었습니까?

해결책

패키지 목록을 쉽게 저장할 수 있습니다. "Man DPKG"를 참조하고-세트 선택 및-Get-Secection을 검색하십시오.

그러나 그것의 기본은 패키지 목록을 저장하는 것입니다.

dpkg --get-selections > package_list

다른 시스템에서 해당 목록을 복원하려면 :

cat package_list | sudo dpkg --set-selections && sudo apt-get dselect-upgrade

아키텍처를 가로 질러 이동하면 일부 패키지를 사용할 수 없을 것입니다. 그들은 무시 될 것입니다. 예를 들어, ia32-libs 32 비트 시스템에서는 설치할 수 없습니다. X86-64에서 X86으로 이동하면 그 선택이 무시됩니다.

다른 팁

재미, 여기서 나는 Howto Repository (질문을 작성한 다음 내 대답을 선택하십시오)로 사용하고 있었지만, 내 자신의 대답을 쓰는 데 걸렸을 때, 나는 펀치 3 번에 맞았습니다!

어쨌든, 여기에 기록을 세우고 있습니다.

DPKG의-GET-SELECTIONS 및-세트 선택 옵션을 사용하여 현재 설치된 패키지를 캡처하고 선택하십시오.

먼저 이전 시스템에서 현재 패키지 목록을 내보내십시오.

sudo dpkg --get-selections > mypackages.txt

그런 다음 새 시스템에 설치할 패키지 로이 목록을 선택하십시오.

sudo dpkg --set-selections < mypackages.txt

(추가 크레딧은 APT 캐시 디렉토리를 복사하여 다운로드를 최소화하십시오. /var/cache/apt)

마지막으로 선택한 패키지를 다운로드하여 설치하도록 APT에 알려주십시오.

sudo apt-get dselect-upgrade

APT-GET을 사용하여 설치 한 모든 것에 대해 설치된 내용에 대한 레코드를 작성하려면 다음을 실행하십시오.

dpkg -l|awk '/^ii\s*(.*)\s*/ {print $2}'|packages.txt

설치 한 모든 패키지가 포함 된 텍스트 파일이 생성됩니다. 그런 다음 설치 후 다음과 함께 스크립트를 작성하고 실행합니다.

#!/bin/sh
for p in $(cat packages.txt); do apt-get install $p; done

메모:
1) 64 비트에서 32 비트로 이동하기 때문에 일부 패키지는 호환되지 않을 수 있습니다. 위의 스크립트를 실행하기 전에 '64'에 대한 패키지를 grep하고 필요한 경우 대안을 찾으십시오.
2) 소스에서 설치 한 내용은 소스에서 다시 메모하고 설치해야합니다.

행운을 빕니다!

(나처럼) 시스템을 엉망으로 만들기 전에이 작업을 수행하지 않았다면 라이브 CD 나 다른 설치로 부팅하고 Chroot를 사용 하여이 정보를 얻을 수 있습니다.

sudo chroot /path/to/old/system /bin/bash

그런 다음하십시오 dpkg --get-selections 춤을 추고 결과 파일을 사용하여 새 시스템을 설정할 수 있습니다.

이것은 일반적으로 비슷한 문제를 해결하기 위해하는 일입니다 (새 노트북으로 여러 번 마이그레이션).

이 질문에 대한 다른 답변에 두 가지 추가 사항이 있습니다. 이것은 또한 당신의 update-alternatives 그리고 debconf 전송되지 않았다는 것을 깨닫는 데 항상 오랜 시간이 걸리는 설정.

기존 시스템의 백업 :

sudo apt-get install dselect debconf-utils
mkdir system-selections
update-alternatives --get-selections > system-selections/alternatives-selections
dpkg --get-selections '*' > system-selections/dpkg-selections
sudo debconf-get-selections > system-selections/debconf-selections

구성 디렉토리를 뉴스 시스템에 복사합니다 ( "scp -r oldsystem:system-selections ~"):

sudo apt-get install dselect debconf-utils
sudo dselect update
sudo dpkg --set-selections  < system-selections/dpkg-selections
sudo debconf-set-selections < system-selections/debconf-selections
sudo apt-get -u dselect-upgrade
sudo update-alternatives --set-selections < system-selections/alternatives-selections

또한 동일한 방법을 사용하여 홈 디렉토리의 백업을 정기적으로 가져 와서 system-selections (위에서 언급) 원격 저장소에. 따라서 노트북이 깨지거나 도난당하는 경우 비슷한 시스템을 구축하는 것이 매우 빠릅니다.

이것이 대답인지 확실하지 않지만 Aptitude-chreate-state-bundle 명령의 존재를 발견했습니다. 예, 그것은 하나의 명령입니다. Man Page를 확인하십시오.

내가 생각할 수있는 가장 좋은 방법은 현재 시스템에 설치된 패키지 목록을 백업 한 다음 해당 목록을 사용하여 새 시스템에 설치할 패키지를 설정하는 것입니다. 패키지 선택을 백업하고 복원하는 방법에 대한 일반 지침 :

도구를 설치하십시오

sudo apt-get install dselect

백업 패키지 목록

dpkg --get-selections | grep -v deinstall > ubuntu-files

패키지 선택을 복원하십시오

sudo apt-get update
sudo apt-get dist-upgrade
dpkg --set-selections < ubuntu-files
sudo dselect

이것은 dselect 세션을 열 것입니다. 'i'를 입력하고 dselect가 Ubuntu-Files 문서에 나열된 패키지를 설치하도록 허용하십시오. 완료되면 'Q'를 입력하고 Enter 키를 누르면 dselect를 종료하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top