如何下载所有已安装包的源包?

如何下载所有已安装包的源包?

我需要使用什么恰当的咒语将所有已安装软件包的源包下载到目录中?(当将已安装的 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

相关内容