如何下載所有已安裝套件的源碼包?

如何下載所有已安裝套件的源碼包?

我需要使用什麼 apt 咒語才能將所有已安裝套件的來源套件下載到一個目錄中? (當已安裝的 Ubuntu 系統與電腦一起提供給另一個人時,用例是 GPL 合規性。)

答案1

試試這個..

建立一個要下載所有已安裝軟體包的來源的目錄,然後輸入該目錄。

mkdir source; cd source

建立一個名為取得原始檔案

取得原始檔案

#!/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普通使用者身分使用,因為這樣您就可以編輯原始碼包中的文件,而無需root權限。

答案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

以非 root 使用者身分運作(_apt有效)。請注意任何錯誤,因為它們可能表明軟體包沒有可用的來源。您可能希望稍後運行腳本來2>err.log手動解析這些內容。

相關內容