O script do Debian para baixar a fonte dos pacotes instalados falha

1

Eu usei o próximo script do askububtu para automatizar o download de todos os pacotes instalados em uma nova instalação do debian 9.3 LXDE.

A partir daqui:

#!/bin/bash
dpkg --get-selections | while read line
do
        package='echo $line | awk '{print $1}''
        mkdir $package
        cd $package
        apt-get -q source $package
        cd ..
done

Meu problema é que recebo alguns erros e ele faz o download de um pacote semelhante, mas não o desejado:

sh: 1: dpkg-source: not found W: Download is performed unsandboxed as root as file 'libreoffice_5.2.7-1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) E: Unpack command 'dpkg-source --no-check -x libreoffice_5.2.7-1.dsc' failed. Reading package lists... Picking 'libreoffice' as source package instead of 'libreoffice-calc'

Você pode imaginar que ele baixa 300MB ou mais a cada 3-4 minutos (libreoffice) por muitas vezes (para quase todas as dependências do libreoffice) ...

Alguém tem uma sugestão melhor do que esse script para automatizar o download de origem dos pacotes usados no meu sistema?

    
por koleygr 10.02.2018 / 21:02

1 resposta

2

Há um problema fundamental com o script que você está usando: é baseado em pacotes binários, não em pacotes de origem. É por isso que você está fazendo o download da fonte do LibreOffice várias vezes: há muitos pacotes binários criados a partir do mesmo pacote de fontes ...

Outro problema é que você não tem dpkg-source instalado, por isso os pacotes de fontes não podem ser extraídos.

Eu usaria algo assim:

#!/bin/bash
dpkg-query -f '${Source}\n' -W | cut -d\  -f1 | sort -u | while read package
do
    mkdir $package
    pushd $package
    apt-get -q source $package
    popd
done

Se você não quiser extrair a fonte, adicione -d à linha apt-get , que evitará os erros dpkg-source .

    
por 10.02.2018 / 21:39