다른 컴퓨터에 오프라인 설치로 데비안 인스턴스에 설치된 패키지 목록을 얻는 방법

다른 컴퓨터에 오프라인 설치로 데비안 인스턴스에 설치된 패키지 목록을 얻는 방법

저는 데비안 인스턴스에 패키지 관리자로 apt를 설치하고 많은 패키지를 설치했습니다. 인터넷 연결 없이 다른 시스템에 동일한 패키지를 설치하고 싶습니다. 종속성별로 정렬된 설치된 패키지 목록을 생성하고, 다른 컴퓨터에 설치할 수 있도록 패키지의 .deb를 가져오는 쉬운 방법이 있습니까?

내 목표는 패키지 목록과 .deb 파일을 다시 생성하고 이를 사용하여 업데이트함으로써 다른 컴퓨터를 업데이트할 수 있는 것입니다.

답변1

  1. 설치된 패키지 목록을 가져옵니다.

     dpkg --get-selections '*' > /tmp/selections.txt
    
  2. 인터넷 접속이 가능한 컴퓨터에 설치된 패키지를 다시 다운로드하려면:

    apt-get clean
    awk '$2=="hold" || $2 == "install" {print $1}' /tmp/selections.txt | 
      xargs -r apt-get -d -y reinstall
    

설치된 패키지 목록이 너무 커서 하나의 명령줄에 표시되지 않도록 하기 위해 여기에서 사용됩니다 /var/cache/apt/archives/. xargs

참고: 실행은 apt-get clean선택 사항입니다. .deb에 이미 있는 모든 파일이 삭제됩니다 /var/cache/apt/archives. 이는 단순히 인터넷이 아닌 컴퓨터에 복사해야 하는 패키지 수를 최소화하기 위한 것입니다(예: 이전 버전, 제거된 패키지 등이 여전히 디렉터리에 존재함). 단점은 설치된 모든 패키지가 이미 아카이브 디렉터리에 있더라도 다시 다운로드된다는 것입니다.

  1. 인터넷이 아닌 컴퓨터 /tmp/selections.txt에 복사합니다 ./tmp/

  2. /var/cache/apt/archives인터넷이 아닌 컴퓨터의 동일한 디렉토리 에 모든 것을 복사하십시오 . scp, rsync, USB 스틱, 외장 하드 드라이브 등 방법은 중요하지 않습니다. 중요한 것은 /var/cache/apt/archives대상 머신 에 복사된다는 것입니다 .

  3. 인터넷이 아닌 대상 컴퓨터에서 실행합니다.

    dpkg --set-selections < /tmp/selections.txt
    apt-get dist-upgrade
    

apt-get dist-upgrade이전에 대상 컴퓨터에는 설치되었지만 다른 컴퓨터에는 설치되지 않은 패키지를 제거 하려면 다음을 실행하십시오.dpkg --clear-selections 앞으로달리기 dpkg --set-selections.

dpkg및 옵션에 대한 자세한 내용은 매뉴얼 페이지를 --get-selections참조하십시오 .--set-selections--clear-selections

관련 정보