Я хотел бы посмотреть, в какой степени моя система поддерживается LTS, с помощью каких пакетов поддерживается в течение 5 лет, а каких нет. Я мог бы игнорировать некоторые не поддерживаемые 5 лет пакеты, так как некоторые из них используются редко или очень маловероятно, чтобы попасть в проблемы (безопасности).
Я думаю, что это полезно, так как можно получить отчет и сделать вывод, например, "моя система на 100% LTS" , "из-за пакетов X, Y, Z, моя система на 99% LTS" , "из-за использования KDE моя система теперь на 50% LTS ".
Что касается моего ответа на вопрос Имеется ли в LLDE 12.04 LTS? , я опубликовал способ узнать, какие пакеты Ubuntu поддерживают пять лет. Например:
$ apt-cache show unity | grep ^Supported
Supported: 5y
$ apt-cache show lxde-core | grep ^Supported
<no output>
Я мог бы написать скрипт, чтобы получить всю информацию для всех пакетов, однако команды apt-cache
ужасно медленные:
real 0m1.535s
user 0m1.484s
sys 0m0.036s
С установленными 2700+ пакетами Это займет примерно 70 минут (!).
Как мне ускорить процесс и получить отчет обо всех пакетах, не поддерживаемых 5-летним периодом, в моей системе?
Я бы предпочел простую команду оболочки apt-*
для использовать в простом сценарии оболочки. Если это потребует более сложных сценариев, таких как переход на Python, это тоже хорошо. В конце концов, я хотел бы выпустить (маленький) скрипт для простого и быстрого создания отчета о системе.
Примечание: меня не интересует дискуссия о том, предоставляет ли конкретный вариант Ubuntu LTS или нет - это на самом деле просто пакеты. Вы можете просто смешивать пакеты LTS и не-LTS в системе. Sup>
Я не знаю о Вашей системе, но это - то, что я сделал:
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 электронный 350, который не является точно сверкающим быстрым CPU...
Править: максимальное количество аргументов xargs:
xargs --show-limits
...
POSIX upper limit on argument length (this system): 2091826
...
Вот быстрый однострочник, чтобы получить список пакетов, которые поддерживаются для МЕНЬШЕ, чем полный период LTS в 5 лет, используя grep-dctrl
(1):
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
Вы можете легко измените его, чтобы искать разные периоды поддержки.