Я хотів би отримати список пакетів, встановлених в одній системі, та встановити їх у іншій системі.
Я знаю, що це 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