우분투, 기존 머신과 같은 새로운 머신을 설정하는 방법


27

필요한 응용 프로그램으로 하나의 컴퓨터 설정이 있으며 새 Ubuntu 상자에 동일한 장치를 설치하고 싶습니다.

설치된 모든 앱을 나열하여 상자 사이를 구분하여 누락 된 항목을 추가 할 수있는 스크립트가 있습니까?

미리 감사드립니다, 크리스

답변:


18

pjz가 언급 한 dpkg 트릭뿐만 아니라 / etc / *를 버전 제어하에 두는 앱 인 etckeeper ( tutorial ) 를보고 싶을 수도 있습니다. 서버.

또한 pjz의 방법으로 생성 된 것보다 짧은 목록을 보려면

$ deborphan -a --no-show-section > /tmp/mypackagelist

그러면 필요한 다른 모든 패키지를 종속 패키지로 설치할 패키지 목록이 제공됩니다. 실제로 목록을 살펴보고 싶을 때 유용 할 수 있습니다. (dpkg --get-selections는 loooong 목록 을 생성 합니다). 또한 목록이 짧아서 줄 바꿈을 추가하고 '#'으로 항목을 주석 처리 할 수 ​​있습니다. 그런 다음 추가 패키지를 설치할 때 할 수있는 일

$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y

이 방법으로 일부 컴퓨터에만 설치하려는 패키지가있는 경우 패키지 목록에서 패키지를 모두 삭제할 필요는 없습니다.


etckeeper는 정말 재미있어 보입니다 (+1).
jkp

17
dpkg --get-selections >/tmp/mypackagelist

트릭을해야합니다. 그런 다음 새 시스템의 /etc/apt/sources.list에 이전 시스템과 동일한 항목 세트가 있는지 확인한 후 mypackagelist를 새 시스템으로 복사하고 다음을 수행하십시오.

cat mypackagelist | xargs apt-get -y install 

그리고 당신은 잘 가야합니다.

dpkg --get-selections 행은 / etc / dir에 가끔씩 넣을 수있는 좋은 정보입니다. / bin / 및 / usr / bin /을 백업 할 필요가 없습니다. 시스템에 어떤 패키지가 있는지


예, Jeff.하지만 구성 파일을 수정하는 것은 어떻습니까? dpkg-reconfigure 옵션은 어떻습니까? 호스트 이름 ... 사용자, 공유, 마운트 ... dd
어떻습니까

2

우분투 포럼에는 좋은 답변이 있습니다

  1. 기존 머신 : $ dpkg --get-selections> installed-software
    • 설치된 앱 목록을 가져옵니다.
  2. 새 머신에서 : $ dpkg --set-selections
    • 새 컴퓨터에 현재 설치되어 있지 않은 패키지를 설치하도록 새 컴퓨터를 설정합니다.
    • 새 시스템에 이전 시스템에 일부 패키지가 설치되어 있지 않은지 확인하면 새 시스템에서 dpkg --get-selections> 명령을 찾은 다음 diff를 사용하여 두 출력 파일을 비교할 수 있습니다.
  3. 마지막으로 새 컴퓨터에서 : $ dselect 패키지가 설치됩니다.

포럼 토론의 일부 추가 링크 :

  1. 같은 스레드에서 gpg 키를 잊지 마십시오.
  2. 원하는 모든 패키지를 설치하고 원하지 않는 모든 패키지를 제거하는 방법

2

더 나은 dpkg 명령은 [original machine] 일 수 있습니다.

dpkg --get-selections | grep -v deinstall > packages_list

그런 다음 [새 기계를 설치할 때; packages_list를 전송 한 후]

sudo dpkg --set-selections < packages_list
sudo apt-get -u dselect-upgrade

1

CLI 팬이 아닌 경우 (실제로해야하지만) Synaptic 패키지 관리자를 사용하여 설치된 패키지의 이미지를 저장하고 해당 파일 (시냅틱을 통해)을 사용하여 새 시스템을로드 할 수 있습니다. 파일 / 저장 표시 옵션 아래에 "전체 상태 저장"이라는 확인란이 있습니다.


나는 이것이 코리가 찾은 방법이라고 생각한다
jbdavid

1

왜 기계를 사용하여 클로닝하지 dd않습니까?


1
이. 컴퓨터를 복제하고 이름을 변경하면 가장 빠른 방법입니다.
pjc50


1

FSArchiver 를 사용 하여 머신을 복제하는 것은 완벽합니다. 그렇지 않으면 다음은 유용한 명령 쌍이며,이 중 절반은 백업 크론에 추가 할 수 있습니다.

debconf-get-selections
debconf-set-selections

~

aptitude-create-state-bundle
aptitude-run-state-bundle --unpack

~

dpkg --get-selections
dpkg --clear-selections; dpkg --set-selections

복제해야 할 위치는 / etc 및 / var입니다. 위의 명령은 / var의 일부 파일을 직접 조작하고 / etc의 일부 conffile은 debconf를 통해 간접적으로 조작합니다. 하위 트리를 복제하고 적성을 실행하면 동일한 효과를 얻을 수 있습니다.


0

Docker 가 지금이 작업을 수행 할 수있는 방법이라고 생각 합니다 .Dockerfile에서 요구 사항을 정의하면 모든 Docker 호스트에서 실행할 수 있습니다.

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