Linux удаление пакетов dpkg

Удалить пакет в Debian

Небольшая заметка на тему как удалить пакет в Debian. Думаю, что для лучшего понимания механизма управления пакетами в Debian, лучше начать с небольшого отступления. Для удаления пакетов в Debian, можно использовать две основные утилиты: apt-get и dpkg .

Утилита dpkg — это низкоуровневая программа управления пакетами, основная ее функция это установка или удаление указанного пакета. Для установки утилита использует deb-файлы и не умеет работать с зависимостями.

Для удаления пакета, который был установлен из репозитория, как правило, используют программу apt-get . Вместе с искомым пакетом программа удаляет все связанные с ним зависимости.

Удаления пакета с помощью apt-get

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

Для удаления пакета в Debian, выполните команду:

Удаления пакета с помощью dpkg

Как вариант, чтобы удалить пакет в Debian, при этом не затрагивая связанные с ним зависимости, можно использовать утилиту dpkg . Для удаления указанного вами пакета, выполните команду:

Она похожа на работу программы apt-get remove в том плане, что после удаления пакета в системе останутся его конфигурационные файлы. Главное отличие заключается в том, что утилита dpkg ничего не знает о связанных с пакетами зависимостях.

Для полного удаления пакета, выполните команду:

Источник

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Управление пакетами в Debian-подобных операционных системах

Данная тема наиболее важная из всех пред идущих, в ней пойдет речь об управлении пакетами.

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

Установка, удаление, обновление пакетов. Поиск пакетов и их зависимостей. Получение полной информации о пакетах.

Dpkg утилита управления пакетами в Debian системах и во всех операционных системах которые от нее пошли это mint, Ubuntu и другие. Утилита достаточно большая и работать с ней не очень удобно, поэтому обычно предпочитают использовать более распространённый пакетный менеджер apt. Сама утилита имеет большое количество ключей, в добавок значение ключей зависит от регистра ключа. Заглавная буква в ключе или прописная, имеют разный функционал. Основные ключи:

  • -I перечень пакетов в системе;
  • -L перечень файлов в пакетах;
  • -s информация о статусе пакета;
  • -S поиск пакета, содержащего данный файл;
  • -i установка пакета;
  • -I информация о пакете в файле *.deb;
  • -r простое удаление пакета;
  • -P удаление пакета вместе с конфигурационными файлами.

Dpkg-reconfigure переконфигурация пакета. Можно сказать, что это мастер настройки пакета. Полезная утилита.

Теперь посмотрим, как это работает вводим dpkg —help :

Dpkg сложная низкоуровневая утилита, имеет кучу настроек, на скриншоте приведен вывод справки по ней. Если мы просмотрим внимательно то, в конце справки мы увидим рекомендацию использовать менеджер управления пакетами apt или aptitude. Утилита dpkg используется для каких-то очень тонких настроек пакетов. Можно посмотреть список установленных пакетов в системе dpkg -l . В системе их установлено их достаточно много, поэтому для поиска нужного использовать grep.

dpkg -s mc посмотрим статус пакета midnight commander.

И видим, что пакет mc, он установлен, размер его, архитектуру (разрядность), зависимости. Используя, ключ S, мы можем посмотреть в какой пакет входит данная программа. Программа mc входит во множество пакетов. А вот, например, /bin/ls входит в базовые утилиты ядра, о чем вы можете убедится, набрав команду с ключом S, т.е в базовый состав любого дистрибутива Ubuntu.

Можем посмотреть более подробно работу с пакетом, для этого можно скачать какой-нибудь пакет, например, webmin небольшая графическая утилита для управления unix сервером. Скачиваем и кладем, например, в /opt. Переходим в директорию, где находится наш пакет cd /opt, далее мы можем посмотреть информацию по данному пакету dpkg I /opt/ webmin_1.955_all.deb . Мы можем увидеть версию пакета и краткое описание, в котором говорится, что при установке будет установлен вебсервер и мы получим через него управление к базовым сервисам.

Установим пакет dpkg i /opt/ webmin_1.955_all.deb . dpkg не умеет ставить зависимости именно этим он плох. Есть ключи, которые позволяют ставить зависимости, но по умолчанию он не умеет.

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

Можно его удалить командой dpkg r webmin , т. к. мы конфигураций не писали и ничего с данным пакетом не делали, если бы мы уже поработали необходимо было бы удалять через ключ p. После этой команды если посмотреть статус пакета, то мы увидим deinstall т.е удален.

Еще можно посмотреть команду dpkg-reconfigure . Используется для переконфигурирования пакетов. Например, можно реконфигурировать временную зону dpkg-reconfigure tzdata . Таким образом открывается удобный мастер и мы можем прям налету изменить параметры пакета.

Читайте также:  При загрузке windows выбрать способ загрузки

Еще надо сказать, что у dpkg , есть свой конфигурационный файл. Располагается он /etc/dpkg/dpkg.cfg

APT Advance Packaging Tool Программа для работы с пакетами в Debian системах. Продвинутый пакетный менеджер, причем иногда используется в дистрибутивах, основанных на Mandriva.

В основном используется несколько утилит:

  • apt-get — утилита для скачивания и установки пакетов;
  • apt-cache утилита для поиска пакетов;
  • aptitude — утилита полного управления пакетами с опцией псевдографики;

Для работы с пакетным менеджером нам так же понадобится понятие репозитория.

  • /etc/apt/source.list — список репозиториев.

Вот так у нас выглядит файл справки по apt-get —help . У программы, как видно есть свои ключи. Теперь попробуем сделать apt-get update данная команда обновляет список всех репозиториев, команда проверяет, какие новые места появились откуда можно скачать обновления, т.е. просто обновляется информация об источниках обновлений. Если мы хотим поискать обновление пакетов и их установить, то мы используем команду apt-get upgrade. Данная команда проверяет все установленное ПО на наличие обновлений и, если находит предлагает установить обновление. Данную процедуру рекомендуется делать, сразу после установки свежей Операционной системы. В дальнейшем перед данной операции обязательно сделайте Резервную копию данных!

Для установки любого дополнительного программного обеспечения мы можем воспользоваться apt-get install gmail-notify . Для удаления мы можем использовать ключ remove.

При инсталляции программного обеспечения зачастую ставится куча зависимостей, которые необходимы для корректной работы основного программного пакета, а при удалении с ключом remove данные зависимости остаются. Для того чтобы очистить систему от неиспользуемых зависимостей рекомендуется использовать ключ apt-get autoremove .

Теперь мы можем посмотреть apt-cache, как работает. Для начала справку. apt-get help

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

Попробуем воспользоваться поиском. apt-cache search gmail ищем все пакеты, где может встречаться «gmail«.

Мы можем посмотреть информацию по какому-либо пакету например: apt-cache show gnome-gmail . Утилита показывает размер, название, кто произвел, архитектура и краткое описание пакета.

С помощью команды и ключа apt-cache depends gnome-gmail мы можем посмотреть от каких зависимостей зависит пакет. Т.е. без каких пакетов программное обеспечение работать не будет.

Мы можем посмотреть обратные зависимости apt-cache rdepends gnome-gmail т.е. кто зависит от данного программного обеспечения.

Далее посмотрим утилиту aptitude.

Данная утилита по умолчанию не идет и ее необходимо установить apt-get install aptitude . Посмотрим справку по данной утилите aptitude help .

Так же мы можем увидеть, что это такая же программа по управлению пакетами как apt-get и apt-cache . Те же самые команды и ключи, за исключением того, что здесь есть графика и мы можем написать aptitude и попасть в графическую оболочку.

Можно зайти, например, в не установленные пакеты и установить, что необходимо. Для этого необходимо встать на интересующий пакет и нажать знак плюса и нажимаем g, для произведения действия. Для выхода из графического режима используем q.

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

Смотрим cat /etc/apt/sources.list

Вот в таком виде хранятся репозитории в Ubuntu, которые подключены. Хранилища пакетов. У нас есть 2 вида указателей. Deb файлы исходники и deb-src файлы исходники. Далее у каждой строчки указателе есть ссылка в интернете и далее описание дистрибутива. Далее есть несколько видов репозиториев. Main — это основной репозиторий. Не требует установки дополнительных пакетов и является официально поддерживаемым от производителей Ubuntu. Есть пакеты, которые помечены restricted это пакеты, которые содержат частично свободное программное обеспечение, т.е. не полностью свободное программное обеспечение. Есть еще universe это дистрибутивы Ubuntu управляемые сообществом официально не поддерживаются, но есть куча энтузиастов. Есть пакеты multiverse — это пакеты, которые не соответствуют политики свободно распространяемого программного обеспечения. Ничего не мешает нам дописать свои репозитории. Это можно сделать через специальную команду из консоли или просто отредактировав файл. Это необходимо делать, когда у нас есть, какое-либо программное обеспечение, которое не обновляется в составе операционной системы. Если мы добавили репозиторий самостоятельно, то обязательно необходимо сделать apt-get update . Для того, чтобы операционная система перечитала список репозиториев.

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

Источник

Глава 8. Инструменты управления пакетами Debian

Содержание

8.1. Какие программы для управления пакетами имеются в Debian?

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

Важно понимать, что высокоуровневые инструменты управления пакетами, такие как aptitude или synaptic , для управления пакетами используют apt , который, в свою очередь, использует dpkg для управления пакетами системы.

See Chapter 2. Debian package management of the Debian reference for more information about the Debian package management utilities. This document is available in various languages and formats, see the Debian Reference entry in the DDP Users’ Manuals overview.

8.1.1. dpkg

Это основная программа управления пакетами. dpkg может вызываться с многими параметрами. Наиболее часто используемые из них:

Показать список всех параметров: dpkg —help

Показать управляющий файл (и другую информацию) для указанного пакета: dpkg —info foo_VVV-RRR.deb

Установить пакет на жёсткий диск (т. е. распаковать и настроить): dpkg —install foo_VVV-RRR.deb

Распаковать архив Debian на жёсткий диск (но не настраивать): dpkg —unpack foo_VVV-RRR.deb . Учтите, что в результате данной операции пакет не обязан быть в рабочем состоянии; для правильной работы может потребоваться внесение изменений в некоторые файлы. Данная команда удаляет любую ранее установленную версию программы и запускает сценарий preinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»).

Читайте также:  Регулировка скорости вентиляторов mac os

Настроить пакет, который был распакован ранее: dpkg —configure foo . Кроме всего прочего, эта команда запускает сценарий postinst указанного пакета (см. Раздел 7.6, «Зачем нужны сценарии preinst, postinst, prerm и postrm?»). Она также обновляет файлы, перечисленные в conffiles . Обратите внимание, что в качестве аргумента для параметра configure указывается имя пакета (т. е. foo), а не имя файла-архива Debian (т. е. foo_VVV-RRR.deb).

Распаковать файл с именем «blurf» (или группу файлов с именем «blurf*») из архива Debian: dpkg —fsys-tarfile foo_VVV-RRR.deb | tar -xf — ‘blurf*’

Удалить пакет (но не его файлы настроек): dpkg —remove foo

Удалить пакет (вместе с файлами настроек): dpkg —purge foo

Вывести состояние установки пакетов, содержащих в имени строку (или регулярное выражение) «foo*»: dpkg —list ‘foo*’

8.1.2. APT

APT is the Advanced Package Tool , an advanced interface to the Debian packaging system which provides the apt-get program. It provides commandline tools for searching and managing packages, and for querying information about them, as well as low-level access to all features of the libapt-pkg library. For more information, see the User’s Guide in /usr/share/doc/apt-doc/guide.html/index.html (you will have to install the apt-doc package).

Starting with Debian Jessie, some frequently used apt-get and apt-cache commands have an equivalent via the new apt binary. This means some popular commands like apt-get update , apt-get install , apt-get remove , apt-cache search , or apt-cache show now can also be called simply via apt , say apt update , apt install , apt remove , apt search , or apt show . The following is an overview of the old and new commands:

Инструмент apt совмещает функциональность apt-get и apt-cache, а также по умолчанию использует красивый цветной формат вывода, что очень удобно. Для использования в сценариях или для продвинутого использования предпочтительнее использовать apt-get (а иногда он просто необходим).

apt-get provides a simple way to retrieve and install packages from multiple sources using the command line. Unlike dpkg , apt-get does not understand .deb files, it works with the packages proper name and can only install .deb archives from a source specified in /etc/apt/sources.list . apt-get will call dpkg directly after downloading the .deb archives [5] from the configured sources.

Часто используемые команды apt-get :

To update the list of packages known by your system, you can run:

(вы должны регулярно запускать эту команду для обновления списка пакетов)

Установить пакет foo и все его зависимости:

Удалить пакет из системы:

Удалить из системы пакет и все его файлы настроек:

To list all packages for which newer versions are available, run:

Обновить все пакеты в системе (без установки дополнительных пакетов или удаления пакетов):

Обновить все установленные в системе пакеты с установкой или удалением дополнительных пакетов, если это потребуется для обновления какого-то пакета:

(Команда upgrade оставит старую установленную версию пакета, если для разрешения новых зависимостей при обновлении потребуется установка дополнительных пакетов. Команда full-upgrade менее консервативна.)

Note that you must be logged in as root to perform any commands that modify packages.

Note that apt-get now also installs recommended packages as default, and thanks to its robustness it’s the preferred program for package management from console to perform system installation and major system upgrades.

В комплект инструментов apt входит также программа для обработки запросов по списку пакетов apt-cache . Её можно использовать для поиска пакетов, имеющих определённую функциональность, с помощью простых текстовых запросов или регулярных выражений, а также для получения списка зависимостей из системы управления пакетами. Часто используемые команды apt-cache :

Найти пакеты, содержащие в своём описании слово :

Показать подробную информацию о пакете:

Показать зависимости пакета:

To print detailed information on the versions available for a package and the packages that reverse-depends on it:

For more information, install the apt package and read apt (8) , apt-get (8) , sources.list (5) and install the apt-doc package and read /usr/share/doc/apt-doc/guide.html/index.html .

8.1.3. aptitude

aptitude — это менеджер пакетов для систем Debian GNU/Linux, он предоставляет интерфейс к инфраструктуре управления пакетами apt. aptitude представляет собой текстовый интерфейс на основе библиотеки curses. Действия можно выполнять как из визуального интерфейса, так и из командной строки.

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

Помимо функциональности apt-get , aptitude имеет много других дополнительных возможностей:

обеспечивает лёгкий доступ ко всем версиям пакета;

позволяет легко отслеживать устаревшее ПО, занося его в «список устаревших пакетов и пакетов, созданных локально»;

включает достаточно мощную систему поиска и ограничения отображаемых пакетов. Пользователи, знакомые с mutt , освоятся быстро, так как синтаксис регулярных выражений был навеян этой программой;

можно использовать для установки заранее сформированных наборов для определённых задач. Подробности см. в Раздел 8.1.5, «tasksel»;

aptitude in full screen mode has su functionality embedded and can be run by a normal user. It will call su (and ask for the root password, if any) when you really need administrative privileges.

С aptitude можно работать, используя визуальный интерфейс (просто запустить aptitude ), или непосредственно из командной строки. Используемый синтаксис командной строки очень похож на синтаксис apt-get . Например, для установки пакета foo , можно выполнить aptitude install foo .

Note that aptitude is the preferred program for daily package management from the console.

For more information, read the manual page aptitude (8) and install the aptitude-doc package.

8.1.4. synaptic

synaptic is a graphical package manager. It enables you to install, upgrade and remove software packages in a user friendly way. Along with most of the features offered by aptitude, it also has a feature for editing the list of used repositories, and supports browsing all available documentation related to a package. See the Synaptic Website for more information.

Читайте также:  Кодеки для медиа проигрывателя windows для

8.1.5. tasksel

Иногда бывает трудно найти подходящий комплект пакетов для выполнения определённой задачи. Разработчики Debian определили задачи , представляющие собой наборы из нескольких пакетов Debian, предназначенных для определённой деятельности. Задачи можно устанавливать с помощью программы tasksel или aptitude .

Typically, the Debian installer will automatically install the task associated with a standard system and a desktop environment. The specific desktop environment installed will depend on the CD/DVD media used, most commonly it will be the GNOME desktop ( gnome-desktop task). Also, depending on your selections throughout the installation process, tasks might be automatically installed in your system. For example, if you selected a language other than English, the task associated with it will be installed automatically too and if the installer recognises you are installing on a laptop system the laptop task will also be installed.

8.1.6. Другие инструменты управления пакетами

8.1.6.1. dpkg-deb

This program manipulates Debian archive ( .deb ) files. Some common uses are:

Вывести список допустимых параметров: dpkg-deb —help

Определить, какие файлы содержатся в файле-архиве Debian: dpkg-deb —contents foo_VVV-RRR.deb )

Извлечь файлы из указанного архива Debian в определённый пользователем каталог: dpkg-deb —extract foo_VVV-RRR.deb tmp извлечёт все файлы из foo_VVV-RRR.deb в каталог tmp/ . Это удобно для просмотра содержимого пакета в отдельном каталоге без его установки в основное дерево каталогов.

Извлечь из пакета файлы с управляющей информацией: dpkg-deb —control foo_VVV-RRR.deb tmp .

Учтите, что любые пакеты, просто распакованные командой dpkg-deb —extract , будут установлены некорректно, для установки следует использовать dpkg —install .

More information is given in the manual page dpkg-deb (1) .

8.2. Говорят, что Debian способен обновить работающую программу; как это делается?

Ядро (файловая система) в системах Debian GNU/Linux поддерживает замену файлов, даже когда они используются.

Мы также предоставляем программу start-stop-daemon , которая используется для запуска служб при загрузке компьютера или их останова при изменении уровня выполнения (например, при переключении из многопользовательского в однопользовательский или для выключения компьютера). Эта же программа используется сценариями установки при установке нового пакета со службой, для остановки работающей службы и её перезапуска при необходимости.

8.3. Как узнать, какие пакеты установлены в системе Debian?

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

Эта команда выведет для каждого пакета однострочную сводку, включающую два символа состояния (объясняемые в заголовке), имя пакета, установленную версию и краткое описание.

To learn the status of packages whose names match any pattern beginning with «foo», run the command:

Чтобы получить более подробный отчёт о состоянии определённого пакета, выполните команду:

8.4. How do I display the files of an installed package?

Чтобы вывести список файлов установленного пакета foo , выполните команду

Учтите, что файлы, созданные сценариями установки, не отображаются.

8.5. Как определить пакет, которому принадлежит определённый файл?

Чтобы определить, в каком пакете содержится файл с именем foo , выполните одну из следующих команд:

dpkg —search foo

Эта команда ищет foo в установленных пакетах. (В настоящий момент это эквивалентно поиску всех файлов с расширением .list в каталоге /var/lib/dpkg/info/ и выводу имён всех пакетов, которые содержат заданное имя файла, и отклонений.)

Более быстрая альтернатива этому — программа dlocate .

zgrep foo Contents-ARCH.gz

Эта команда ищет файлы, содержащие в своих полных именах путей подстроку foo . Файлы Contents-ARCH.gz (где ARCH представляет нужную архитектуру) расположены в основных каталогах пакетов (main, non-free, contrib) на FTP-сайте Debian (то есть, в /debian/dists/buster ). Файл Contents относится только к тем пакетам, что расположены в структуре подкаталогов того же каталога, где находится и он сам. Поэтому, чтобы найти пакет, содержащий файл foo , пользователю нужно искать более чем в одном файле Contents .

Преимущество этого метода над dpkg —search состоит в том, что будут найдены файлы в тех пакетах, которые могут быть не установлены в вашей системе.

apt-file search foo

If you install the apt-file package, similar to the above, it searches files which contain the substring or regular expression foo in their full path names. The advantage over the example above is that there is no need to retrieve the Contents-ARCH.gz files as it will do this automatically for all the sources defined in /etc/apt/sources.list when you run (as root) apt-file update .

8.6. Why is `foo-data’ not removed when I uninstall `foo’? How do I make sure old unused library-packages get purged?

Some packages are split in program (`foo’) and data (`foo-data’) (or in `foo’ and `foo-doc’). This is true for many games, multimedia applications and dictionaries in Debian and has been introduced since some users might want to access the raw data without installing the program or because the program can be run without the data itself, making `foo-data’ optional.

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

In these cases, `foo-data’ doesn’t depend on `foo’, so when you remove the `foo’ package it will not get automatically removed by most package management tools. The same holds true for the library packages. This is necessary to avoid circular dependencies. However, if you use apt-get (see Раздел 8.1.2, «APT») or aptitude (see Раздел 8.1.3, «aptitude») as your package management tool, they will track automatically installed packages and give the possibility to remove them, when no packages making use of them remain in your system.

[5] Notice that there are ports that make this tool available with other package management systems, like Red Hat package manager, also known as rpm

Источник

Оцените статью