¿Cómo descargar los paquetes fuente de todos los paquetes instalados?

¿Cómo descargar los paquetes fuente de todos los paquetes instalados?

¿Qué encantamientos adecuados necesito usar para descargar los paquetes fuente de todos los paquetes instalados en un directorio? (El caso de uso es el cumplimiento de GPL cuando se entrega un sistema Ubuntu instalado a otra persona junto con una computadora).

Respuesta1

Prueba esto..

Cree un directorio donde desee descargar la fuente de todos los paquetes instalados e ingréselo.

mkdir source; cd source

Crea un archivo llamadogetsource.sh

getsource.sh

#!/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

Hazlo ejecutable.

chmod a+x getsource.sh

Ejecutalo..

./getsource.sh

Y ve a tomar una taza de café :)

Respuesta2

Una alternativa podría ser simplemente entregar los CD originales:

Respuesta3

En Ubuntu, consulte el comando:

apt-get source package-name

Se recomienda que solo lo utilice apt-get sourcecomo usuario normal, porque así podrá editar archivos en el paquete fuente sin necesidad de privilegios de root.

Respuesta4

Hay un par de problemas en la respuesta aceptada y con la mejor respuesta vinculada en Unix Stack Exchange. Aquí hay un script mejorado y probado con comentarios:

#!/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

Ejecutar como usuario no root ( _aptfunciona). Tenga en cuenta cualquier error, ya que puede indicar paquetes sin fuentes disponibles. Es posible que desees ejecutar el script para 2>err.loganalizarlos manualmente más adelante.

información relacionada