한 시스템에 설치된 패키지 목록을 가져 와서 다른 시스템에 모두 설치하고 싶습니다.
대상 시스템에 dpkg --get-selections파이프 할 수있는 설치된 모든 패키지 목록을 제공 할 수 있음을 알고 있습니다 dpkg --set-selections. 그러나 설치된 패키지 중 일부는 로컬에서 직접 빌드 한 패키지 (예 : checkinstall)이며 리포지토리에서 사용할 수없는 패키지입니다. dpkg --set-selections는 저장소에 이러한 패키지를 찾을 수 없을 때 프로세스가 실패합니다.
그래서 현재 설치된 버전을 현재 리포지토리에서 사용할 수있는 dpkg --get-selections패키지 만 포함하도록 생성 된 목록을 필터링 할 수있는 방법 이 있습니까?
total=$(dpkg --get-selections '*'|wc -l); i=0; dpkg --get-selections '*' | while read line; do i=$(($i+1)); apt-cache policy $(echo "$line" | cut -f1 ) | grep -q 'http://' && echo "$i/$total $line"; echo $line>>/var/tmp/dpkg-selection.list; done