Я новичок в ubuntu и пытаюсь найти команду, которая сообщает, какие пакеты и версии установлены в моей «песочнице». Я хочу связать это как выходной файл
Ваш вопрос может быть отмечен как дубликат, потому что Вы, как ожидают, проведете часть своего собственного исследования прежде, чем отправить на сайтах StackExchange. Но, потому что возможный дубликат (, Как перечислить все установленные пакеты ) не затрагивает информацию о версии, вот Ваш ответ:
dpkg -l | grep "^ii" | awk '{print $2,$3}'
или
dpkg -l | awk '/^ii/ {print $2,$3}'
Декодируемый:
dpkg -l
список все пакеты, включая, которые были удалены.
grep "^ii"
печать только строки, которые запускаются с "ii" (для исключения пакетов, которые были удалены, обычно отмечали "дистанционное управление"). Обратите внимание, что установленные пакеты не могут всегда быть в "ii" состоянии. Эта команда проверит: dpkg -l | grep -v "^ii" | grep -v "^rc" | tail -n +6
awk '{print $2,$3}'
печатают вторые и третьи столбцы (имя пакета и версия, соответственно).
p.s. Я записал некоторые комментарии об этом прежде, но мой код был неверным.
Я знаю, что можно использовать dpkg --get-selections | awk '{print $1}'
для наблюдения всех установленных пакетов. но не уверенный в версиях я сообщу, нахожу ли я еще что-то
Хотя выбирая поля из вывода dpkg -l
конечно, работы, более фундаментальное dpkg-query
команда позволяет выходным полям и формату быть настроенными, не обращаясь к дополнительным инструментам обработки текста. Как это происходит, плоскость
dpkg-query -W
без явной строки формата дает точно разделенный от вкладки список имен пакета и версий (эквивалентный dpkg -l | awk '{print $2,$3}'
) как отмечено в man dpkg-query
:
-W, --show [package-name-pattern...]
Just like the --list option this will list all packages matching
the given pattern. However the output can be customized using
the --showformat option. The default output format gives one
line per matching package, each line having the name (extended
with the architecture qualifier for Multi-Arch same packages)
and installed version of the package, separated by a tab.
Если Вы хотите более симпатичный вывод, более сродни выводу dpkg -l
Вы могли использовать что-то как
dpkg-query -W -f='${binary:Package;-25}\t${Version}\n'
лево-выровнять по ширине имена пакета в поле ширины 25 столбцов, или
dpkg-query -W -f='${db:status-abbrev}\t${binary:Package;-25}\t${Version}\n'
включать ii
и т.д. состояние отмечает в начале каждой строки.