Дистрибутивы Linux состоят из одинаковых компонентов: ядро, менеджер отображения, графическое окружение рабочего стола, предустановленные программы. Чтобы пользователи как-то отличали дистрибутивы друг от друга, их сборщики устанавливают разные обои и добавляют свои собственные программы.
К сожалению, желание составителей дистрибутивов выделиться и стать более «дружественным» пользователю приводит к нелепым (скажем прямо, идиотским) проблемам. И, скорее всего, вы уже догадались об этом по заголовку данной статьи.
В любом дистрибутиве, который является производным Debian, используется файловый менеджер apt. Чтобы узнать, установлен ли определённый пакет, достаточно использовать команду apt search и указать имя пакета:
apt search ПАКЕТ
К примеру, меня интересует, установлены ли заголовки ядра:
apt search linux-headers-
Хорошо, команда неудачная, т. к. много разных ядер, возьмём более конкретную и зададим вопрос так «установлены ли заголовки текущего ядра»:
apt search linux-headers-`uname -r`
Вы можете ответить, установлен данный пакет или нет? На самом деле, ответ присутствует, просто из-за того, что вместо оригинальной программы используется файл /usr/local/bin/apt, который является скриптом на Python, использующим программу aptitude (!), формат вывода совершенно отличный от того, который мы ожидаем.
Ответ находится в самом первом столбце, где всего один символ. Значение символов следующее:
- p — означает, что в системе нет никаких следов этого пакета
- c — означает, что пакет был удалён, но его конфигурационные файлы остались в системе
- i — означает, что пакет установлен
- v — означает, что пакет является виртуальным.
Как в Linux Mint использовать apt вместо aptitude
Много лет я работаю именно с программой apt, а aptitude на многих дистрибутивах, производных от Debian, вовсе не установлена. Поэтому для меня намного привычнее оригинальная программа apt.
Чтобы использовать apt вместо aptitude выполните команду вида:
/usr/bin/apt search ПАКЕТ
Например:
/usr/bin/apt search linux-headers-`uname -r`
Отлично, именно этого я и хотел, краткая информация о пакете с однозначной надписью «[установлен]»:
Всегда полностью вводить /usr/bin/apt неудобно, поэтому возникает вопрос, как избавиться от этого идиотского Python скрипта? Достаточно выполнить команду:
sudo mv /usr/local/bin/apt /usr/local/bin/-apt
И теперь программа вида:
apt search ПАКЕТ
будет давать именно тот результат, который вы ожидаете.
Например:
apt search linux-headers-`uname -r`
Если вы захотите вернуть скрипт обратно, то просто выполните команду:
sudo mv /usr/local/bin/-apt /usr/local/bin/apt
Связанные статьи:
- При установке пакетов лучше указывать только главный пакет или все его зависимости? (92.2%)
- dpkg: ошибка при обработке пакета ...: пакет абсолютно неработоспособен; перед настройкой его следует переустановить (РЕШЕНО) (70.3%)
- Как исправить ошибку «E: Sub-process /usr/bin/dpkg returned an error code (2)» (62.5%)
- Warning: apt-key is deprecated (РЕШЕНО) (62.5%)
- Примеры базового и продвинутого использования команд apt, apt-cache, dpkg для управления пакетами в Ubuntu/Debian (62.5%)
- Как сделать общую сетевую папку в Linux (настройка SMB в Linux) (RANDOM - 20.3%)