Bash 脚本无法从列表中下载源包

Bash script unable to download source packages from a list

我有一个安装在 Ubuntu 16.04 上的软件包列表。我有一个 bash 脚本,它试图在适当的目录(创建)中一个一个地下载它们的源代码。我收到一个错误:

Reading package lists...
E: Unable to find a source package for xxxx
~/source
~/sourcexxx

我的 bash 脚本如下所示:

#!/bin/bash
while read package
do
    #cd /mnt
    mkdir $package
    pushd $package
    apt-get -d -q source $package
    popd
done < ins.txt

我不想更新任何系统文件。 apt-get -d -q source xxx 可以独立运行,但不能在上面的脚本中运行。可能是什么原因?

我的一部分 ins.txt:

adduser
adium-theme-ubuntu
adwaita-icon-theme
alacarte
alsa-base
alsa-utils
amd64-microcode
anacron
apg
app-install-data
app-install-data-partner
apparmor
apparmor-easyprof

当我单独执行 apt-get -d -q source adduser 时,它有效

使用你的列表,在删除 dpkg-query -f | 部分后,这对我来说似乎工作正常(在 Ubuntu 16.04):

#!/bin/bash

while read package
do
    echo "Package $package"
    mkdir -v $package
    pushd $package
    apt-get -d -q source $package
    popd
done < ins.txt

可能有些包没有来源,或者您的 ins.txt 文件包含无效包。

但是这个问题肯定会更好地发布在 Ask Ubuntu 上。