インストールされているすべてのパッケージのソース パッケージをダウンロードするにはどうすればよいですか?

インストールされているすべてのパッケージのソース パッケージをダウンロードするにはどうすればよいですか?

インストールされたすべてのパッケージのソース パッケージをディレクトリにダウンロードするには、どのような apt 呪文を使用する必要がありますか? (使用例は、インストールされた Ubuntu システムをコンピューターとともに別の人に渡す場合の GPL 準拠です。)

答え1

これを試して..

インストールされているすべてのパッケージのソースをダウンロードするディレクトリを作成し、そのディレクトリに入ります。

mkdir source; cd source

という名前のファイルを作成しますgetsource.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

実行可能にします。

chmod a+x getsource.sh

実行してください。

./getsource.sh

そしてコーヒーを飲みに行きましょう :)

答え2

別の方法としては、ソース CD を配布する方法もあります。

答え3

Ubuntu では次のコマンドを参照してください:

apt-get source package-name

apt-get source通常のユーザーとしてのみ使用することをお勧めします。そうすれば、ルート権限を必要とせずにソース パッケージ内のファイルを編集できます。

答え4

承認された回答と Unix Stack Exchange のリンクされたより良い回答には、いくつかの問題があります。以下に、コメント付きの改良およびテスト済みのスクリプトを示します。

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

非ルート ユーザーとして実行します (_aptが機能します)。エラーは、利用可能なソースがないパッケージを示している可能性があるため、注意してください。 スクリプトを実行して、後で手動でこれらを解析することもできます2>err.log

関連情報