如何查看哪些 pacman 更新是主要的?

如何查看哪些 pacman 更新是主要的?

我喜欢跟踪我的系统上有什么以及正在更新什么。然而,有很多微小的更新,例如 gedit 3.6.2-1 到 3.6.2-2,我不想考虑太多。

有没有一种简单的方法可以让 pacman 突出显示主要更新,例如版本号中第一或第二段的更改? (当然,我意识到这种启发式方法并不是很有用,但这似乎是一个已经有人解决的问题。)

这是一个包含许多微小更新的示例:

automake            1.12.5-1      1.12.6-1     0.00 MiB                 
bison               2.6.5-1       2.7-1        0.03 MiB                 
cdrtools            3.01a09-1     3.01a10-1    0.00 MiB                 
cifs-utils          5.7-1         5.8-1        0.00 MiB                 
icu                 50.1-2        50.1.1-1     -0.04 MiB                
isl                 0.11-1        0.11.1-1     0.01 MiB                 
lib32-libpulse      2.1-1         3.0-1        0.03 MiB                 
lib32-sqlite        3.7.14.1-1    3.7.15-1     0.00 MiB                 
libpulse            2.1-1         3.0-2        0.16 MiB                 
libwbclient         3.6.9-1       3.6.10-1     0.00 MiB                 
linux               3.6.9-1       3.6.10-1     0.01 MiB                 
ntp                 4.2.6.p5-11   4.2.6.p5-13  -0.05 MiB                
pixman              0.28.0-1      0.28.2-1     0.00 MiB                 
pulseaudio          2.1-1         3.0-2        -0.05 MiB                
python2-beaker      1.6.3-2       1.6.4-1      0.03 MiB                 
python2-distribute  0.6.30-1      0.6.32-1     0.02 MiB                 
python2-mako        0.7.2-2       0.7.3-1      0.00 MiB                 
python2-pyparsing   1.5.6-3       1.5.7-1      0.00 MiB                 
python2-xdg         0.23-2        0.25-1       0.02 MiB                 
samba               3.6.9-1       3.6.10-1     0.02 MiB                 
sbc                               1.0-1        0.24 MiB                 
smbclient           3.6.9-1       3.6.10-1     0.00 MiB                 
sqlite              3.7.14.1-1    3.7.15-1     0.01 MiB                 
vlc                 2.0.4-5       2.0.5-1      -1.42 MiB                
wesnoth-data        1.10.5-1      1.10.5-2     98.07 MiB                
xorg-server         1.13.0.902-2  1.13.1-1     0.00 MiB                 
xorg-server-common  1.13.0.902-2  1.13.1-1     0.00 MiB   

Pulse Audio 2.1 -> 3.0 和内核更新隐藏在其中,我希望它们更加突出。

答案1

我没有 pacman,但我根据您提供的输入示例对此进行了测试,保存到文件并传递到标准,如下所示:

cat versioninfo.dat | python highlight_major_versions.py

您应该能够以相同的方式将 pacman 命令的输出传输到代码。我的机器上的输出如下所示:

在此输入图像描述

蓝色表示主要版本更新(即第一段)。黄色表示次要版本更新(第二段)。红色表示缺少版本信息,在本例中是因为该库是本次更新中的新库。我在版本控制方面没有做任何聪明的事情---计数作为相关点分隔段的一部分。

#!/usr/bin/env python    
import fileinput

# ANSI escape codes for some colours
BLUE   = '\033[94m'
YELLOW = '\033[93m'
RED    = '\033[91m'
ENDC   = '\033[0m'

def colourise_by_version_change(line, prev_v, new_v):
    ''' Colourise the input line based on major/minor version change.'''
    prev_segments = prev_v.split('.')
    new_segments  = new_v.split('.')

    coloured_line = line
    if new_segments[0] > prev_segments[0]:
        coloured_line = BLUE + line + ENDC   
    elif new_segments[1] > prev_segments[1]:
        coloured_line = YELLOW + line + ENDC

    return coloured_line

if __name__ == '__main__':   
    for line in fileinput.input():
        line     = line.strip()
        elements = line.split()
        if len(elements) == 5:
            name, prev_v, new_v, size, size_unit = elements[:5]
            line = colourise_by_version_change(line, prev_v, new_v)

        # There's something missing, so point it out (e.g. a new version)
        else:
            line = RED + line + ENDC

        print line

相关内容