インストールされているすべてのパッケージのソースパッケージをディレクトリにダウンロードするには、どのような適切な呪文を使用する必要がありますか? (インストールされたUbuntuシステムをコンピューターと一緒に他の人に渡す場合、ユースケースはGPL準拠です。)
これを試して..
すべてのインストール済みパッケージのソースをダウンロードするディレクトリを作成し、入力します。
mkdir source; cd source
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
そして、コーヒーを飲みに行きます:)
別の方法として、ソースCDを配布することもできます。
受け入れられた答えにはいくつかの問題があり、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
非rootユーザーとして実行します(_apt
が機能します)。ソースが利用できないパッケージを示す可能性があるため、エラーに注意してください。これらを後で手動で解析するには、2>err.log
を使用してスクリプトを実行することをお勧めします。
Ubuntuでは、次のコマンドを参照してください。
apt-get source package-name
root権限を必要とせずにソースパッケージ内のファイルを編集できるため、apt-get source
のみを通常のユーザーとして使用することをお勧めします。