我基本上是想查询给定存储库url &包名称的包的最新版本。那么,如果http://in.archive.ubuntu.com/ubuntu/是存储库& gcc是包名,那么是否有一个命令/工具可以帮助我找到它的最新版本?我尝试使用apt&apt-缓存,问题是我不想将存储库url添加到/etc/apt/ since .列表中,因为我没有根访问权限。我试着跑
apt-get update -o RootDir=<local-dir>考虑到我可以将存储库url添加到< local-dir >/etc/apt/sources.list . into & run中
apt-cache show <pkg-name> -o RootDir=<local-dir>但是,带有切换根-dir的apt-get更新失败,以下是
chrooting into <local-dir>/
E: Sub-process returned an error code这个是可能的吗?还是有别的选择?
发布于 2013-09-04 16:02:06
我不知道是否有一种“正式”方式,但编写解析包列表的自己的脚本很容易:
#!/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"例如。
玩得开心!
https://stackoverflow.com/questions/18615606
复制相似问题