我基本上是在给定存储库 URL 和包名称的情况下尝试查询包的最新版本。 所以如果 http://in.archive.ubuntu.com/ubuntu/存储库和 gcc 是包名 那么是否有一个命令/工具可以帮助我找到它的最新版本? 我尝试使用 apt-get 和 apt-cache 问题是我不想将存储库 url 添加到框的/etc/apt/sources.list 中,因为我没有 root 访问权限。 我试过运行
apt-get update -o RootDir=<local-dir>
然后我想我可以将存储库 url 添加到 < local-dir >/etc/apt/sources.list 并运行
apt-cache show <pkg-name> -o RootDir=<local-dir>
但是带有切换根目录的 apt-get 更新失败了
chrooting into <local-dir>/
E: Sub-process returned an error code
这可能吗?或者有其他选择吗?
最佳答案
我不知道是否有“官方”的方式,但是很容易编写自己的解析包列表的脚本:
#!/bin/bash
if [ -n "$1" ]
then
package="$1"
else
package="gcc"
fi
release=$(lsb_release -c|awk '{ print $2 }')
file=$(tempfile)
wget -o /dev/null -O $file http://in.archive.ubuntu.com/ubuntu/dists/$release/main/binary-amd64/Packages.gz
gunzip -qc $file | grep -A 10 "^Package: $package$" | awk '/Version/ { print $2 }'
rm $file
如果您在 Ubuntu 上运行并且正在寻找与您当前版本相匹配的软件包,则此方法有效。如果您在另一个发行版上运行,请设置
release="saucy"
例如。
玩得开心!
关于linux - 查询 debian 存储库的工具/命令(如 rpm 存储库的 repoquery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18615606/