Как посмотреть какие пакеты установлены в linux
Перейти к содержимому

Как посмотреть какие пакеты установлены в linux

  • автор:

Выводим список установленных пакетов в Linux по дате

Sep 20, 2018 07:02 · 536 words · 3 minute read tips ubuntu debian centos

Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки — давайте разберемся!

Как всем известно, в разных дистрибутивах Linux используются различные пакетные менеджеры, поэтому, в зависимости от операционной системы, команды будут отличаться.

Например, если вы используете дистрибутив Debian (и производные — Ubuntu, Kubuntu, Xubuntu и т.д.), то для вывода списка установленных пакетов достаточно запустить команду:

grep -i "installed" /var/log/dpkg.log 

Как можно догадаться, данная команда выведет список пакетов, если их установка зафиксирована в файле /var/log/dpkg.log . Так как в Linux используется ротация логов с целью экономии места на диске, старые установочные логи хранятся в архивах. Если нужно узнать список вообще всех установленных пакетов в хронологическом порядке, то стоит воспользоваться командой:

zcat /var/log/dpkg.log.* | grep -i "installed" 

Результат выполнения команды будет примерно следующим:

.  2018-09-12 09:41:34 status installed libcryptsetup12:amd64 2:2.0.2-1ubuntu1.1 2018-09-12 09:41:34 status installed libc-bin:amd64 2.27-3ubuntu1 2018-09-12 09:42:02 status installed man-db:amd64 2.8.3-2 2018-09-12 09:42:02 status installed initramfs-tools-bin:amd64 0.130ubuntu3.3 2018-09-12 09:42:08 status installed google-cloud-sdk:all 216.0.0-0 2018-09-12 09:42:08 status installed initramfs-tools-core:all 0.130ubuntu3.3 2018-09-12 09:42:08 status installed initramfs-tools:all 0.130ubuntu3.3 2018-09-12 09:42:21 status installed initramfs-tools:all 0.130ubuntu3.3 

Команда zcat читает содержимое заархивированных файлов, после чего вывод перенаправляется на обработку команде grep . Если нужно найти время установки конкретного пакета, название (или хотя бы часть) которого вы знаете, можно сделать так:

zcat /var/log/dpkg.log.* | grep -i "installed" | grep "google-cloud"  2018-09-12 09:42:08 status installed google-cloud-sdk:all 216.0.0-0 

В качестве альтернативы еще можно использовать команду zgrep , например:

zgrep "installed" /var/log/dpkg.log* 

Вывод команды будет несколько отличаться:

.  /var/log/dpkg.log.9.gz:2018-01-15 08:35:54 status installed man-db:amd64 2.7.6.1-2 /var/log/dpkg.log.9.gz:2018-01-15 08:35:54 status installed libpython2.7-stdlib:amd64 2.7.14-2ubuntu2 /var/log/dpkg.log.9.gz:2018-01-15 08:35:55 status installed python2.7:amd64 2.7.14-2ubuntu2 /var/log/dpkg.log.9.gz:2018-01-15 08:35:55 status installed libpython-stdlib:amd64 2.7.14-2ubuntu1 /var/log/dpkg.log.9.gz:2018-01-15 08:36:00 status installed google-cloud-sdk:all 184.0.0-0 /var/log/dpkg.log.9.gz:2018-01-15 08:36:00 status installed python:amd64 2.7.14-2ubuntu1 /var/log/dpkg.log.9.gz:2018-01-15 08:36:00 status installed python-crcmod:amd64 1.7-2build4 

Как видим, в данном примере в начале строки также присутствует имя файла, в котором нашлась соответствующая запись.

Для RPM-based дистрибутивов (RedHat, CentOS, Scientific Linux, Fedora, SUSE) вывести список установленных пакетов по дате можно с помощью следующей команды:

rpm -qa --last 

Команда покажет примерно следующий результат:

.  libxml2-2.9.1-6.el7_2.3.x86_64 Sat 09 Dec 2017 10:15:00 AM EAT findutils-4.5.11-5.el7.x86_64 Sat 09 Dec 2017 10:15:00 AM EAT libgpg-error-1.12-3.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT libffi-3.0.13-18.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT libcap-ng-0.7.5-4.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT libattr-2.4.46-12.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT libacl-2.2.51-12.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT dbus-libs-1.6.12-17.el7.x86_64 Sat 09 Dec 2017 10:14:59 AM EAT sed-4.2.2-5.el7.x86_64 Sat 09 Dec 2017 10:14:58 AM EAT 

Для поиска даты установки конкретного пакета, достаточно добавить его название в качестве параметра к команде выше, например:

rpm -qa --last postfix3  postfix3-3.2.0-1.gf.el7.x86_64 Thu 25 May 2017 01:04:35 AM EAT 

В дистрибутивах Arch Linux (в том числе Antergos, Manjaro, Apricity, Ninja OS) для решения нашей задачи можно воспользоваться утилитой expac . Для получения информации в понятном формате, вызывать данную утилиту необходимо с использованием параметра:

expac --timefmt='%F %T' '%l %n' 

Можно дополнить данный вызов сортировкой и дополнительными фильтрами — все зависит только от ваших требований. Например, так можно вывести 5 последних установленных пакетов в системе:

expac --timefmt='%F %T' '%l %n' | sort -n | tail -n 5 2018-01-15 14:41:15 webkitgtk 2018-01-16 09:18:26 babl 2018-01-16 09:18:26 gegl02 2018-01-16 09:18:26 lcms 2018-01-16 09:18:26 libspiro 

Read more

© Copyright 2023 Yevhen Lebid

Как получить и скопировать список установленных пакетов на Ubuntu / Debian Linux сервере

Приобретая новый виртуальный сервер у RUVDS на Ubuntu / Debian вы можете получить список всех установленных пакетов на вашем виртуальном сервере. Также в данной статье мы рассмотрим, как скопировать и перенести установленные пакеты с одного виртуального сервера на другой.

Чтобы получить список всех установленных пакетов на Ubuntu или Debian, используйте DPKG и другие команды.

Введите следующую команду:

dpkg-query -l

Результаты команды dpkg-query -l

Чтобы увидеть только список пакетов, попробуйте:

dpkg-query -f '$\n' -W

Результаты команды dpkg-query -f

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

dpkg --get-selections | grep -v deinstall

Результаты команды dpkg --get-selections | grep -v deinstall

apt list --installed

или можно просто найти все пакеты на основе PHP:

apt list --installed | grep php

Результаты команды apt list --installed | grep php

Как сохранить список в текстовый файл

Команда выглядит следующим образом для server1:

dpkg --get-selections | grep -v deinstall > mylist.txt

Теперь скопируйте mylist.txt на server2 с вашим адресом, например 100.100.100.100:

scp mylist.txt 100.100.100.100:~/
The authenticity of host 100.100.100.100 (100.100.100.100)' can't be established.
ECDSA key fingerprint is SHA256:r+WgiifO
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '100.100.100.100' (ECDSA) to the list of known hosts.

Как установить скопированные пакеты на server2

На втором сервере server2 для восстановления установок из mylist.txt, выполните следующую команду:

dpkg --clear-selections
sudo dpkg --set-selections < mylist.txt
sudo apt-get install -y $(< mylist.txt)

Наконец, выполните следующую команду, чтобы удалить ненужные пакеты:

sudo apt-get autoremove

Вышеприведенные команды должны восстановить пакеты из резервных копий или другого сервера.

Если данных на втором сервере нет, нужно их скопировать и после этого восстановить. Этот вариант заключается в использовании команды aptitude следующим образом:

### Создаем список программ в директории на первом сервере /tmp/packages.txt ###

dpkg --get-selections > /tmp/packages.txt

### Копируем файл на второй сервер с адресом 100.100.100.100 ###

scp /tmp/packages.txt 100.100.100.100:/tmp/

### Теперь вы можете установить пакеты на втором сервере используя команду apt-get/synaptic ###

1. Соединяемся с первым сервером

ssh root@100.100.100.101

2. Устанавливаем aptitude:

sudo aptitude

3. Восстанавливаем данные

aptitude install $(cat /tmp/packages.txt | awk '')

Как посмотреть пакеты Linux

В операционной системе Linux пакеты - специальные архивы, которые содержат программное обеспечение и информацию о его установке и настройке. Каждый пакет представляет собой набор файлов, связанных с конкретной программой или библиотекой.

Что такое пакеты

Пакеты в Linux используются для управления установкой, удалением и обновлением программного обеспечения. Когда вы устанавливаете программу, пакет-менеджер загружает соответствующий пакет из репозитория, распаковывает его и копирует файлы на ваш компьютер, а также выполняет необходимые настройки.

Они имеют расширение .rpm (для дистрибутивов, основанных на Red Hat, таких как Fedora и CentOS) или .deb (для дистрибутивов, основанных на Debian, таких как Ubuntu и Linux Mint). Существует множество различных пакет-менеджеров, например, apt, yum, pacman, каждый из которых использует свой собственный формат пакетов.

Для чего нужны

Пакеты позволяют легко управлять установкой, обновлением и удалением программ на вашей системе. В Linux существует несколько форматов пакетов, таких как RPM (Red Hat Package Manager), DEB (Debian Package), TGZ (tarball) и другие.

Они также содержат метаданные, такие как имя, версия и описание программы, а также информацию об авторе и лицензии. Эти метаданные позволяют управлять зависимостями и обновлениями программного обеспечения.

Пакеты в Linux могут быть установлены из официальных репозиториев дистрибутива Linux или из сторонних источников. Кроме того, вы можете создавать свои собственные пакеты для установки на других системах Linux.

Просмотр пакетов в разных дистрибутивах

В большинстве дистрибутивов Linux можно посмотреть список установленных пакетов с помощью специальной команды в терминале.

Debian и Ubuntu

В Debian и Ubuntu можно воспользоваться командой dpkg-query:

Эта команда выведет полный список установленных пакетов в формате "пакет, версия, описание".

Fedora, CentOS

В Fedora, CentOS и других дистрибутивах, использующих утилиту управления пакетами yum или dnf, можно воспользоваться командой:

yum list installed
Как вариант
dnf list installed

Эти команды выведут список установленных пакетов с их версиями и описанием.

Arch Linux

В Arch Linux и его производных можно воспользоваться командой:

Эта команда выведет список всех установленных пакетов.

OpenSUSE

В OpenSUSE можно воспользоваться командой:

zypper search -installed-only

Выведет список всех установленных пакетов.

Slackware

В Slackware можно воспользоваться командой:

Теперь вы знаете, как посмотреть список пакетов в каждом из дистрибутивов.

Linux

Думаю, тема достаточно актуальна для начинающих пользователей Linux систем. Каждый начинающий Линуксоид рано или поздно сталкивался с вопросом — каки где посмотреть список установленных программ и пакетов в Linux(Ubuntu) , FreeBSD , OpenBSD ?

Исторически сложилось так, что в некоторых Осях( Linux(Ubuntu), FreeBSD, OpenBSD ) эти команды немного отличаются. Поэтому я приведу примеры для всех систем.

Все нижеприведенные команды выполняются в консоли.

Red Hat/Fedora Core/CentOS Linux

В Red Hat/Fedora Core/CentOS Linux- подобных нужно набрать следующую команду чтобы получить список установленных программ

# rpm -qa | less

Debian Linux

# dpkg --get-selections

Ubuntu Linux

# sudo dpkg --get-selections
# pkg_info | less # pkg_info apache

Используем команду pkg_version чтобы показать общий список версий всех установленных пакетов в FreeBSD:

# pkg_version | less # pkg_version | grep 'lsof'

В OpenBSD команда use pkg_info так же ведет себя как и в FreeBSD и покажет список установленных пакетов:

# pkg_info | less # pkg_info apache

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *