我正在编写一个脚本来显示系统上的配置文件与原始软件包中提供的配置文件之间的差异。除了使用 apt 以非 root 身份下载软件包外,我几乎可以完成所有工作。有没有简单的方法可以做到这一点?
编辑:我研究过“黑客”wget 脚本类型选项,但我遇到的主要问题是如何确定尝试从哪个存储库获取包。它不包含在我能看到的任何 apt-cache 输出中。
答案1
简单aptitude download
来说:
$ ls vim*.deb
ls: vim*.deb: No such file or directory
$ aptitude download vim
[...]
Fetched 835kB in 0s (2933kB/s)
$ ls vim*.deb
vim_1%3a7.0-122+1etch5_amd64.deb
$ id
uid=1000(earl) gid=100(users) groups=100(users)
答案2
sudo
您可以为设定无密码aptitude --download-only
?或者您可以解析各种 apt 命令的输出并从那里手动下载文件。有第三方库可以处理 libapt,例如python-apt
答案3
dget
正是您想要的。从手册页中:
第二种形式,dget 从 /etc/apt/sources.list(.d) 中配置的 Debian 镜像中下载二进制包(即 .deb 文件)。与 apt-get install -d 不同,它不需要 root 权限,写入当前目录,并且不下载依赖项。
答案4
尝试使用底层的 pkg_apt 库?尽管它们可能会使您的脚本更加复杂,而且如果我没记错的话,它们是用 perl 编写的,因此需要您使用它。