
我需要使用什麼 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
手動解析這些內容。