
¿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 source
como 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 ( _apt
funciona). Tenga en cuenta cualquier error, ya que puede indicar paquetes sin fuentes disponibles. Es posible que desees ejecutar el script para 2>err.log
analizarlos manualmente más adelante.