linux 终端 ppa,如何在命令行中列出ppa/source中的包?

问题描述

我想列出源中的所有文件,例如命令行中的extras.ubuntu.com。这个命令是什么?

dpkg --list列出所有文件或仅列出文件名。

最佳解决方法

在/var/lib/apt/lists/中找到以Packages结尾的相关文件,然后执行以下命令:

# example for deb http://security.ubuntu.com/ubuntu natty-security multiverse

awk '$1 == "Package:" { print $2 }' /var/lib/apt/lists/security*multiverse*Packages

顺便说一句,我的extras.ubuntu.com_ubuntu_dists_natty_main_binary-i386_Packages是空的。

编辑

您还可以解析apt-cache输出。此脚本列出包含服务器和存储库信息的所有包:

#!/bin/bash

apt-cache policy $(dpkg -l | awk 'NR >= 6 { print $2 }') |

awk '/^[^ ]/ { split($1, a, ":"); pkg = a[1] }

nextline == 1 { nextline = 0; printf("%-40s %-50s %s\n", pkg, $2, $3) }

/\*\*\*/ { nextline = 1 }'

方便地对输出进行排序,您可以获得您正在寻找的信息。

次佳解决方法

我会直接检查server-side,就像那样:

$ curl -s http://extras.ubuntu.com/ubuntu/dists/maverick/main/binary-i386/Packages.gz |

gzip -d | grep Package

Package: news

Package: suspended-sentence

第三种解决方法

我做了一个可怕的剧本:

#!/bin/bash

clear

##array aufbauen

declare -a repoList=()

for i in $(ls /var/lib/apt/lists/ | grep _Packages)

do

#echo $i

repoList=("${repoList[@]}" "$i")

done

repoAnzahl=${#repoList[@]}

echo "Anzahl der Repos: " $repoAnzahl

for ((i=0;$i

do

if [[ "${repoList[$i]}" =~ "archive.ubuntu" ]]

then

rname=${repoList[$i]##*archive.ubuntu}

echo "$i RepoName: " "${rname%%_binary*}"

elif [[ "${repoList[$i]}" =~ "ubuntu" ]]

then

echo "$i RepoName: " "${repoList[$i]%%_ubuntu*}"

else

echo "$i RepoName: " "${repoList[$i]%%_dist*}"

fi

done

read -p "Gib die RepoNummer ein: " repoNummer

packages=()

for i in $(cat /var/lib/apt/lists/${repoList[$repoNummer]} | grep Package)

do

if ! [[ "$i" =~ "Package" ]]

then

packages=("${packages[@]}" "$i")

fi

done

paketAnzahl=${#packages[@]}

echo "Anzahl der pakete: " $paketAnzahl

function listPackages () {

for ((i=0;$i

do

echo ${packages[$i]}

done

}

if test $paketAnzahl -gt 20

then

listPackages | less

else

listPackages

fi

echo "Anzahl der Pakete: " $paketAnzahl

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值