저는 데비안 인스턴스에 패키지 관리자로 apt를 설치하고 많은 패키지를 설치했습니다. 인터넷 연결 없이 다른 시스템에 동일한 패키지를 설치하고 싶습니다. 종속성별로 정렬된 설치된 패키지 목록을 생성하고, 다른 컴퓨터에 설치할 수 있도록 패키지의 .deb를 가져오는 쉬운 방법이 있습니까?
내 목표는 패키지 목록과 .deb 파일을 다시 생성하고 이를 사용하여 업데이트함으로써 다른 컴퓨터를 업데이트할 수 있는 것입니다.
답변1
설치된 패키지 목록을 가져옵니다.
dpkg --get-selections '*' > /tmp/selections.txt
인터넷 접속이 가능한 컴퓨터에 설치된 패키지를 다시 다운로드하려면:
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
. 이는 단순히 인터넷이 아닌 컴퓨터에 복사해야 하는 패키지 수를 최소화하기 위한 것입니다(예: 이전 버전, 제거된 패키지 등이 여전히 디렉터리에 존재함). 단점은 설치된 모든 패키지가 이미 아카이브 디렉터리에 있더라도 다시 다운로드된다는 것입니다.
인터넷이 아닌 컴퓨터
/tmp/selections.txt
에 복사합니다 ./tmp/
/var/cache/apt/archives
인터넷이 아닌 컴퓨터의 동일한 디렉토리 에 모든 것을 복사하십시오 . scp, rsync, USB 스틱, 외장 하드 드라이브 등 방법은 중요하지 않습니다. 중요한 것은/var/cache/apt/archives
대상 머신 에 복사된다는 것입니다 .인터넷이 아닌 대상 컴퓨터에서 실행합니다.
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