Одной из самых распространненых операций, характерных для любой ОС, является управление программным обеспечением, в том числе: установка, удаление и просмотр списка текущих установленных.
Система управления пакетами в Debian (Ubuntu) построена на базе репозиториев, в которых содержатся ссылки для скачивания огромного количества программ.
По большому счету это означает, что Вам нужно лишь знать название программы или пакета. Если он есть в сети в репозитории — система самостоятельно разберется откуда его скачать именно под Вашу версию ОС и установит.
Посмотреть текущие установленные пакеты
Если нужно найти какой-то пакет, например, apache2 — установлен он или нет:
# dpkg —list | grep apache2
Поиск в репозитории
Для этого примеряется команда «aptitude search» с параметром, являющимся названием пакета или частью названия.
# aptitude search apache
На этот запрос aptitude выведет список всех пакетов, совпадающих с названием «apache» или частью названия которых является фраза «apache».
Установка и удаление программ в debian 9
PS. Далее по тексту я везде буду использовать пакет «apache2» как пример — вместо этого названия Вам нужно подставлять то, с которым Вы хотите оперировать!
Детальная информация о пакете
# aptitude show apache2
А если хочется поглядеть все доступные версии пакета:
# aptitude show -v apache2
Установка пакета из репозитория
# aptitude install apache2
При этом автоматически проверяются и устраняются все зависимости. Так, если пакет apache2 зависит от пакета «apache2-mpm-worker», то сначала скачается и установится этот пакет, а потом уже apache2. При этом глубина резолва многоуровненная — т.е. если, в свою очередь пакеn apache2-mpm-worker зависит от другого пакета — то сначала скачается тот другой и установится, потом уже apache2-mpm-worker, а уже потом — apache2.
Это происходит почти прозрачно для пользователя — aptitude лишь укажет, что помимо указанного он скачает еще и друге пакеты (приведет их список).
Установка пакета определенной версии
Заметка! Указываемая версия должна существовать в репозитории и Ваша ОС должна об этом знать (не забываем обновлять данные репозиториев — см. ниже).
# aptitude install apache2=2.2.9-10+lenny7
Как видно, после знака = указывается полностью версия, которую Вы хотите установить.
Посмотреть все версии можно по пункту выше — детальная информация о пакете.
Переустановка пакета из репозитория
# aptitude reinstall apache2
При этом конфигурационные файлы пакета не будут перезаписаны файлами по-умолчанию.
Удаление скачанных установочных .deb файлов
Перед установкой пакета если установочный файл (.deb-файл) скачивается на компьютер. После установки этот файл не удаляется — например, на случай переустановки.
Если нужно подчистить кеш скачанных файлов — используем следующую команду:
# aptitude clean
Установка и удаление программ в Debian
Удаление старых и битых установочных .deb файлов
В отличие от предыдущей опции — удаляются только те установочные файлы, которые больше не могут быть скачаны (например, устаревшие).
# aptitude autoclean
Удаление пакета
# aptitude remove apache2
При этом сам пакет будет удален, но конфигурационные файлы оставлены — на случай переустановки в будущем.
Жесткое удаление пакета
При этом будут удалены все настройки и ОС попытается привести свое состояние к тому, как будто пакета никогда не было.
# aptitude purge apache2
Запрет обновления пакета
При этом процедуры автоматического обновления не тронут этот пакет, а если его новая версия необходима по зависимостям для других пакетов — то и все пакеты, которые зависят от его версии.
# aptitude hold apache2
Обновление данных репозиториев
Нужно для того, чтобы в ОС всегда была информация о последних версиях пакетов. Обязательно к выполнению перед процедурой обновления пакетов или, тем более, ОС.
# aptitude update
Обновление всех пакетов кроме операционной системы
# aptitude safe-upgrade
При этом, конечно, будут разрешены все зависимости и обновлены все пакеты, которые возможно обновить.
Запретить обновление пакета до определенной версии
# aptitude forbit-version apache2
# aptitude forbit-version apache2=2.2.9-10+lenny7
При этом запрещается обновление только на указанную версию, при этом обновление на версию выше или ниже указанной — разрешаются!
В первом варианте будет запрещена следующая за текущей версия пакета.
Во-втором варианте можно самостоятельно задать определенную версию пакета, на которую обновляться нельзя.
Посмотреть объяснение — почему тот или иной пакет не может быть установлен в систему (или может)
# aptitude why apache2
# aptitude why-not apache2
Только скачать установочные .deb-файлы для указанных пакетов, но не устанавливать их.
Например, у Вас запланирована установка пакетов на определенное время, но подготовиться заранее — скачать файлы на компьютер, чтобы не зависеть от интернета — Вы хотите.
# aptitude download apache2
Сэмулировать какое-то действие
При этом aptitude ведет себя так-же, как при настоящем действии, но по факту ничего не делает.
$ aptitude -s action
Например, вот пример обновления всех пакетов — aptitude покажет все, что он бы сделал, но не сделает это:
$ aptitude -s safe-upgrade
Установка пакета из скачанного на стороне .deb-файла
Т.е. не из репозитория.
# dpkg -i myinstallfile.deb
где вместо «myinstallfile.deb» подставьте имя скачанного файла (и путь, конечно).
Удаление пакета, установленного из стороннего .deb-файла
# dpkg -r package_name
где вместо «package_name» — укажите имя пакета.
Установка GPG-ключа
apt-key add — < rep.gpg
где вместо «rep.gpg» — укажите имя скачанного GPG-файла.
Второй способ — если известен UID:
Источник: intellect.icu
Удаление, переустановка, откат версии отдельного пакета в debian/ubuntu.
Согласитесь, у вас были ситуации, когда хотелось удалить отдельный пакет с целью его переустановки или ещё зачем-то.
Пакетная система в debian устроена так, что удалить пакет зачастую сложно, частенько он может унести за собой полсистемы. А откатить его хочется. Или переустановить.
В общем, сегодня paulus мне напомнил (а точнее рассказал новый способ) сделать это быстро и зачастую безболезненно, да. Как обычно, чтобы не забыть — записываю.
Само собой, «мопед не мой, что-нибудь поломаете — сами виноваты» и всё такое. В общем думать всё же надо при подобных операциях. Например, не стоит сносить что-то вроде glibc =)
Ну и не забываем про магический каталог /var/cache/apt, в котором лежат все пакеты, которые apt/aptitude когда либо качали с сети. Если вы его не чистите — то старую версию пакета сможете найти там.
Источник: debian.pro