如何使用dnf
或yum
列出所有软件包,按受欢迎程度排序(假设这是一个可用的功能)?
我对流行度没有严格的定义,但下载次数等标准指标应该可以。
答案1
你能做的最好的事情就是在排序列中显示谷歌结果计数和包名称,例如;
UA='user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.75 Chrome/68.0.3440.75 Safari/537.36'
while read -r P ; do
C=$(curl -s 'https://www.google.ca/search?q=$P' -H "$UA" \
| grep About \
| perl -pe 's/<[^<>]+>/ /g;s/.*About +([0-9,]+) +results.*$/$1/g;s/^.*[a-z].*$//g')
echo -e "$C\t$P"
done \
< <(yum list all | grep " " | perl -pe 's/[ .].*//g' | sort -u) \
| sort -rn
(省略用户代理将导致“403 Forbidden”)
但结果可能没有用(头);
14,740,000,000 SDL
14,740,000,000 PyYAML
14,740,000,000 GeoIP
14,740,000,000 autogen-libopts
14,740,000,000 authconfig
14,740,000,000 audit-libs-python
14,740,000,000 audit-libs
14,740,000,000 audit
14,740,000,000 alsa-lib
14,740,000,000 acl