我使用 askububtu 的下一个脚本在全新的 debian 9.3 LXDE 安装中自动下载所有已安装的软件包。
#!/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
我的问题是我遇到了一些错误,它下载了一个类似但不是想要的包:
sh: 1: dpkg-source: 未找到 W: 由于用户 '_apt' 无法访问文件 'libreoffice_5.2.7-1.dsc',因此下载以 root 身份执行。- pkgAcquire::Run (13: Permission denied) E: Unpack command 'dpkg-source --no-check -x libreoffice_5.2.7-1.dsc' 失败。阅读包列表...选择“libreoffice”作为源包而不是“libreoffice-calc”
您可以想象它每 3-4 分钟(libreoffice)下载 300MB 左右(libreoffice)很多次(对于 libreoffice 的几乎所有依赖项)...
有没有人有比该脚本更好的建议来自动下载我系统上使用的软件包的源代码?
您使用的脚本存在一个根本问题:它基于二进制包,而不是源包。这就是你要多次下载 LibreOffice 源代码的原因:有许多二进制包是从同一个源包构建的......
另一个问题是你没有
dpkg-source
安装,所以无法提取源包。我会改用这样的东西:
如果您不想提取源代码,请添加
-d
到该apt-get
行,这样可以避免dpkg-source
错误。