Como baixar os pacotes fonte para todos os pacotes instalados?

5

Quais são os encantamentos apt que eu preciso usar para baixar os pacotes fonte para todos os pacotes instalados em um diretório? (O caso de uso é compatível com a GPL ao fornecer um sistema Ubuntu instalado para outra pessoa junto com um computador.)

    
por hsivonen 05.04.2012 / 15:32

4 respostas

7

Tente isso ...

Crie um diretório onde você deseja que a fonte de todos os pacotes instalados seja baixada e digite-a.

mkdir source; cd source

Crie um arquivo chamado getsource.sh

getsource.sh

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

Torne-o executável.

chmod a+x getsource.sh

Execute-o ..

./getsource.sh

E vá tomar uma xícara de café:)

    
por SirCharlo 05.04.2012 / 15:52
1

Uma alternativa para você pode ser simplesmente distribuir os CDs de origem:

  • link
por Jorge Castro 05.04.2012 / 16:51
0

No Ubuntu, consulte o comando:

apt-get source package-name

recomenda-se usar somente apt-get source como um usuário comum, porque você pode editar arquivos no pacote fonte sem precisar de privilégios de root.

    
por codegenki 05.04.2012 / 15:38
0

Há alguns problemas na resposta aceita e com a melhor resposta vinculada no Unix Stack Exchange. Aqui está um script melhorado e testado com comentários:

#!/bin/bash

# ${Source} doesn't always show the source package name, ${source:Package} does.
# Multiple packages can have the same source, sort -u eliminates duplicates.
dpkg-query -f '${source:Package}\n' -W | sort -u | while read p; do
    mkdir -p $p
    pushd $p

    # -qq very quiet, pushd provides cleaner progress.
    # -d download compressed sources only, do not extract.
    apt-get -qq -d source $p

    popd
done

Executar como usuário não raiz ( _apt works). Anote quaisquer erros, pois eles podem indicar pacotes sem fontes disponíveis. Você pode querer executar o script com 2>err.log para analisá-los manualmente mais tarde.

    
por Jonah Braun 25.05.2018 / 01:34

Tags