如何获得有效安装的非LTS包列表?
我想看看我的系统在多大程度上受LTS支持,通过5年支持哪些包,哪些不支持。 我可以忽略一些非5yr支持的软件包,因为有些软件包很少使用或者不太可能涉及(安全性)问题。
我认为这很有用,因为人们可以得到报告并得出结论,例如“我的系统是100%LTS” , “由于包X,Y,Z,我的系统只有99%LTS” , “由于使用KDE,我的系统现在是50%LTS“ 。
与我在问题中的答案相关12.04 LXDE是否有LTS? ,我发布了一种方法,看看Ubuntu的哪些软件包具有五年的支持。 例如:
$ apt-cache show unity | grep ^Supported Supported: 5y $ apt-cache show lxde-core | grep ^Supported
我可以编写一个脚本来获取所有包的所有信息,但apt-cache
命令非常慢:
real 0m1.535s user 0m1.484s sys 0m0.036s
安装了2700多个软件包,大约需要70分钟(!)。
如何加速处理并获取系统中所有非5yr支持的软件包的报告?
我更喜欢一个简单的apt-*
shell命令,用于简单的shell脚本。 如果它需要更高级的脚本,比如进入Python,这也很好。 最后,我想发布一个(小)脚本,以便轻松快速地创建系统报告。
注意:我对Ubuntu的特定风格是否提供LTS的讨论不感兴趣 – 这实际上只是包。 您可以在系统上混合使用LTS和非LTS包。
我不知道你的系统,但这就是我做的:
time dpkg -l | grep 'ii' | awk ' {print $2}' | xargs apt-cache show | grep '^Supported:' | grep -v '5y' | wc -l 158 real 0m27.549s user 0m5.580s sys 0m21.701s
好不好吧?
包裹总数:
dpkg -l | grep 'ii' | wc -l 2602
我正在运行AMD E-350,这不是一个非常快速的CPU …
编辑:xargs的最大参数数量:
xargs --show-limits ... POSIX upper limit on argument length (this system): 2091826 ...
这里有一个快速的单行程序,可以使用grep-dctrl
(1)为您提供低于5年的完整LTS周期的程序包列表:
sudo apt-get install dctrl-tools dpkg -l | grep '^ii' | awk ' {print $2}' | xargs apt-cache show | grep-dctrl -v -FSupported --exact-match -nsPackage 5y | sort | uniq
您可以轻松修改它以查找不同的支持期。