Quelles aptitudes dois-je utiliser pour télécharger les packages source de tous les packages installés dans un répertoire? (Le cas d'utilisation est la conformité à la GPL lorsque vous donnez un système Ubuntu installé à une autre personne avec un ordinateur.)
Essaye ça..
Créez un répertoire dans lequel vous souhaitez télécharger la source de tous les packages installés, puis entrez-le.
mkdir source; cd source
Créez un fichier nommé 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
Rendez-le exécutable.
chmod a+x getsource.sh
L'exécuter..
./getsource.sh
Et va prendre une tasse de café :)
Une alternative pour vous pourrait être de simplement distribuer les CD sources:
Il y a quelques problèmes dans la réponse acceptée et avec la meilleure réponse liée dans Unix Stack Exchange. Voici un script amélioré et testé avec des commentaires:
#!/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
Exécuter en tant qu'utilisateur non root (_apt
fonctionne). Notez toutes les erreurs car elles peuvent indiquer des paquetages sans sources disponibles. Vous voudrez peut-être exécuter le script avec 2>err.log
pour les analyser manuellement ultérieurement.
Sur Ubuntu, référez-vous à la commande:
apt-get source package-name
il est recommandé d'utiliser uniquement apt-get source
en tant qu'utilisateur ordinaire, car vous pourrez alors modifier les fichiers du paquet source sans avoir besoin des privilèges root.