【发布时间】:2020-09-07 22:53:55
【问题描述】:
我有一个安装在我的 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 时,它可以工作
【问题讨论】:
-
应该
while从dpkg-query -f或从文件ins.txt读取? -
请先将您的脚本粘贴到那里:shellcheck.net
-
来自 ins.txt - 列出了我要下载的所有软件包..
-
dpkg-query -f没有列出软件包。它用于指定输出格式。您的ins.txt文件包含什么?为什么你实际上使用dpkg-query?只需删除它,以及它后面的管道字符。 -
@mivk - 我得到相同的 Unable to find a source 错误,即使在我删除它之后也是如此。第一行现在只是:while read package
标签: bash shell ubuntu sh apt-get