Какой самый надежный способ перечислить установленное программное обеспечение в дистрибутивах на базе debian?

NixOS поддерживает откаты обновления, хотя, насколько я понимаю, это не так далеко, как хотелось бы: если вы обновите A, B и C за одну операцию, вы можете откатить всю эту операцию, но не только A и B. (Вам следует иметь возможность откатить A, B и C назад, а затем обновить C ...) Тем не менее, это имеет смысл с точки зрения транзакций.

Debian (в сочетании с архивом снимков , если у вас больше нет старых пакетов) позволит вам понизить версию B, и такие инструменты, как apt или aptitude ] во многих случаях выяснит, что A также нужно понизить до более ранней версии (как только вы убедите их, что вы не хотите просто повышать B). Но, как вы говорите, это имеет тенденцию быть несколько беспорядочным, и понижение версии пакета в любом случае не поддерживается в Debian (что означает, что большую часть времени они работают, но если они ломаются, это не ошибка).

4
08.11.2016, 18:49
3 ответа

В debian вы можете запустить dpkg --list

Чтобы получить дополнительную информацию о запуске конкретного пакета:

dpkg -p <package_name>

или

dpkg -s <package_name>

например:

# dpkg -s gcc 
Package: gcc
Status: install ok installed
Priority: optional
Section: devel
Installed-Size: 42
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Architecture: amd64
Source: gcc-defaults (1.136)
Version: 4:4.9.2-2
Provides: c-compiler
Depends: cpp (>= 4:4.9.2-2), gcc-4.9 (>= 4.9.2-1~)
Recommends: libc6-dev | libc-dev
Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, libtool,  flex, bison, gdb, gcc-doc
Conflicts: gcc-doc (<< 1:2.95.3)
Description: GNU C compiler
This is the GNU C compiler, a fairly portable optimizing compiler for C.
This is a dependency package providing the default GNU C compiler.

В дистрибутиве на основе RHEL вы можете запустить rpm -qa

2
27.01.2020, 20:48

В Debian, возможно, вы могли бы использовать параметр - showformat = format для dpkg-query .

В качестве примера:

dpkg-query --show --showformat='${binary:Package}\t${Version}\t${Architecture}\t${binary:Summary}\n' gcc
2
27.01.2020, 20:48

Здесь будут перечислены исходные пакеты и версии, соответствующие установленным двоичным пакетам:

dpkg-query --show -f '${source:Package} ${source:Version}\n' | sort -u

Это наиболее близкое соответствие с отдельными частями программного обеспечения, которые вы можете получить автоматически: вы увидите gcc-4.9 только один раз с соответствующей версией вместо всех соответствующих двоичных пакетов. Вы не можете легко получить информацию о "поставщике", вам нужно будет посмотреть детали пакета ( apt-cache show ... ) или информацию о лицензировании (в / usr / share / doc / / copyright - он должен указывать на «исходный» проект, т.е. «поставщик»); не гарантируется, что это будет в машиночитаемом формате, поэтому будет задействован некоторый человеческий синтаксический анализ.

Вы по-прежнему найдете некоторые пакеты с исходным кодом, название которых содержит (основную) версию, например. gcc-4.9 , gcc-5 и т.д .; они неизбежны, когда пакеты разработаны таким образом, что основные версии можно устанавливать совместно, как в случае с GCC.

Эквивалентная команда оборотов

rpm --qf "%{SOURCERPM}\n" -qa | sort -u
6
27.01.2020, 20:48

Теги

Похожие вопросы