Операционная система Debian Linux, является прародителем для целого ряда различных дистрибутивов linux, таких как Knoppix, Kali, Ubuntu, Mint, и т.д. Дистрибутивы linux на базе Debian, используют различные инструменты для работы с пакетами, такие как: dpkg, apt, aptitude, synaptic, tasksel, deselect, dpkg-deb и dpkg-split. Коротко о каждом из них:
- Apt — Advanced Package Tool. Данный инструмент работает с deb архивами из источников, указанных в файле конфигурации /etc/apt/sources.list.
Читать так-же: Часто используемые команды apt-get и apt-cache
1. Dpkg, установка пакета
Для установки .deb пакета используется ключ -i:
# dpkg -i flashpluginnonfree_2.8.2+squeeze1_i386.deb Selecting previously unselected package flashplugin-nonfree. (Reading database . 465729 files and directories currently installed.) Unpacking flashplugin-nonfree (from flashplugin-nonfree_3.2_i386.deb) . Setting up flashplugin-nonfree (1:3.2) . .
2. Dpkg, список установленных пакетов
Что-бы посмотреть установленные пакеты, используется ключ -l:
# dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Desc . +++-=============================================-==================== . ii acpi 1.6-1 amd64 displays information . ii acpi-support-base 0.140-5+deb7u3 all scripts for handling . ii acpid 1:2.0.16-1+deb7u1 amd64 Advanced Configurati .
Что-бы узнать установлен-ли конкретный пакет, нужно указать его имя:
Как устанавливать программы и обновлять систему в Debian 9 Stretch
# dpkg -l nginx Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Desc . +++-=============================================-==================== . ii nginx 1.8.0-1~wheezy amd64 high performance .
3. Dpkg, удалить пакет
Для удаления .deb пакета используется ключ -r (remove) с указанием имени пакета, например «flashpluginnonfree», полное название «flashplugin-nonfree_3.2_i386.deb», указывать не обязательно.
# dpkg -r flashpluginnonfree (Reading database . 142891 files and directories currently installed.) Removing flashpluginnonfree . Processing triggers for man-db . Processing triggers for menu . .
Ключ -r позволяет удалить только сам пакет, что-бы удалить пакет вместе с файлами конфигурации, вместо -r, используйте ключ -P (purge):
# dpkg -P flashpluginnonfree
4. Dpkg, посмотр содержимого пакета
Что-бы посмотреть содержимое пакета, используется ключ -c (content):
# dpkg -c flashplugin-nonfree_3.2_i386.deb drwxr-xr-x root/root 0 2012-12-14 22:54 ./ drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/ drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/bin/ drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/lib/ .
5. Dpkg, проверить, установлен пакет или нет
Для этого используется ключ -s (status)
# dpkg -s flashplugin-nonfree Package: flashplugin-nonfree Status: install ok installed Priority: optional .
6. Dpkg, куда установлены файлы пакета
Что-бы посмотреть расположение, установленных пакетом файлов, используйте ключ -L:
# dpkg -L mysql-common /. /usr /usr/share /usr/share/doc .
Установка и удаление программ в debian 9
7. Dpkg, установить все пакеты из конкретной директории
Что-бы рекурсивно обойти указанную директорию и ее поддиректории, устанавливая все файлы *.deb, используйте ключи -R и —install. Следующая команда установит все *.deb файлы из директории debpackages:
# dpkg -R —install debpackages/ (Reading database . 465836 files and directories currently installed.) Preparing to replace flashplugin-nonfree 1:3.2 (using . /flashplugin-nonfree_3.2_i386.deb) . Unpacking replacement flashplugin-nonfree . Setting up flashplugin-nonfree (1:3.2) . .
8. Dpkg, распаковать пакет, не конфигурируя его
Для распаковки пакета используется опция —unpack, при этом не будет выполняться конфигурирование или установка:
# dpkg —unpack flashplugin-nonfree_3.2_i386.deb
9. Dpkg, конфигурирование распакованного пакета
Опция —onfigure выполнит переконфигурацию уже распакованного пакета
# dpkg —configure flashplugin-nonfree Setting up flashplugin-nonfree (1:3.2) .
10. Dpkg, обновить информации о доступности пакета
Опция —update-avail обновляет устаревшую информацию о доступности пакета в файле пакетов:
# dpkg –-update-avail package_name
11. Dpkg, удаление информации о доступности пакетов
Опция —clear-avaial удалит текущую информацию о доступности пакетов
# dpkg –-clear-avail
12. Dpkg, забыть удаленные и неиспользуемые пакеты
Что-бы система «забыла» удаленные и неиспользуемые пакеты, служит опция —forget-old-unavail:
# dpkg —forget-old-unavail
13. Лицензия dpkg
# dpkg —licence
14. Версия dpkg
# dpkg —version Debian `dpkg’ package management program version 1.16.16 (amd64). This is free software; see the GNU General Public License version 2 or later for copying conditions. There is NO warranty.
15. Получение краткой справки
# dpkg —help Usage: dpkg [
Источник: vds-admin.ru
Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами
Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.
Краткая справка Debian администратора
Основное и общеизвестное
Получение информации о новых/обновлённых пакетах
sudo aptitude update
Обновление
sudo aptitude safe-upgrade
Поиск пакета по именам пакетов
aptitude search key_word
Поиск пакета по точному названию
aptitude search «^name$»
Поиск по описанию
aptitude search «?description(«key_word»)»
Информация о пакете
aptitude show package_name
sudo aptitude install package_name
sudo aptitude remove package_name
Полное удаление (вместе с конфигами)
sudo aptitude purge package_name
Очистить кэш загруженных пакетов (освободить место)
aptitude autoclean # удалятся только пакеты неактуальных версий aptitude clean # очистится весь кэш
Установка отдельно скачанного/созданного пакета (для создания пакета из сторонних исходников нужно использовать утилиту checkinstall с флагом -D)
sudo dpkg -i /path/to/package.deb
Для получения доп информации
man aptitude sudo aptitude install aptitude-doc-en
и смотрим документацию (/usr/share/doc/aptitude/html/en/index.html), кому быструю справку по поисковым шаблонам, тому сюда — /usr/share/doc/aptitude/html/en/ch02s04.html. Если лень ставить доку, то в сети она есть.
Вводная на Debian Wiki: wiki.debian.org/Aptitude
А теперь то что не очевидно или требует полного прочтения документации
1. Как после update посмотреть какие пакеты будут обновлены?
aptitude search ?upgradable
также можно юзать (если поставить)
sudo daptup
но после его установки точно также будет себя вести и обычный update
2. Как узнать что изменилось в пакетах которые будут обновлены?
Можно пробовать
sudo aptitude changelog package_name
для каждого пакета.
Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить
sudo dpkg-reconfigure apt-listchanges
3. Что делать если обновление что-то поломало и нужно откатиться?
Отката нет, можно попробовать найти предыдущую версию пакета
sudo aptitude version package_name
и установить её
sudo aptitude install package_name=version
4. Как найти все пакеты установленные вручную?
есть вариант команды (aptitude search ‘~i!~M’), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов
/var/log/aptitude (+ ротированные куски) /var/log/installer/initial-status.gz /var/log/dpkg.log (+ ротированные куски)
но простого и готового решения нет, да информация теоретически может быть потеряна при ротациях, нужно конфигурить
5. Как посмотреть список файлов в пакете?
если пакет установлен
dpkg -L package_name
для любых пакетов поставить apt-file и
apt-file list package_name
6. Как посмотреть какому пакету принадлежит файл?
dpkg -S file_name
7. Как удалить все пакеты, где есть key в названии пакета?
sudo aptitude purge ~ikey
8. Как удалить оставшиеся конфиги от удалённых пакетов?
sudo aptitude purge ~c
9. Как найти пакет пакет, в котором содержится файл lib.so:
apt-file search lib.so
10. Как сконвертировать rpm пакет в deb?
alien —to-deb /path/to/file.rpm
11. Как найти список установленных ядер?
dpkg —list linux-* | grep ii
12. Как установить пакет из testing или experimental?
На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть
sudo aptitude -t testing package_name
sudo aptitude package_name/testing
13. Как удалить метапакет, но оставить одну из зависимостей?
придётся почитать документацию про ключ unmarkauto или глянуть сюда.
14. Как узнать что попало в файловую систему мимо системы управления пакетами?
Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт
sudo cruft -d / -r report —ignore /home —ignore /var —ignore /tmp
15. Какие есть дополнительные репозитории?
Debian — wiki.debian.org/UnofficialRepositories
Ubuntu — множество всяких PPA
16. Что есть ещё?
apt-cdrom
apt-spy
auto-apt. заметка на хабре
apt-key
apt-add-repository
Некоторые вещи умеет только apt-get
Есть альтернативные утилиты для управления пакетами, например wajig, который пытается вобрать в себя функционал всех остальных утилит.
17. Как найти пакеты зависящие от данного
apt-cache rdepends package_name
также может пригодится
aptitude why package_name
Благодарю всех кто помог своими советами в рассылке, жж (JackYF) и хабре ( run4way, sledopit, nazarpc, AgaFonOff, amarao, traaance, adrianopol, Karamax). Замечания и дополнения приветствуются.
Источник: habr.com
Установка deb пакета со всеми зависимостями
Некоторые программы, предназначенные для использования в дистрибутивах Linux на основе Debian/Ubuntu, для более простой установки упакованы в файлы формата deb, однако в процессе установки такого файла может вылезти одна неприятная мелочь — например, устанавливаемая программа зависит от какого-нибудь другого пакета, которого нет в системе. Установить deb пакет и необходимые для его нормальной работы пакеты можно следующим образом:
Установка через gdebi
Самым простым способом является использование утилиты gdebi, предназначенной для установки deb пакетов и автоматической установки всех остальных нужных пакетов. Использовать её очень просто:
gdebi
Установка через dpkg и докачивание нужных пакетов через apt-get или aptitude
Устанавливаем deb пакет как обычно:
dpkg -i файл.deb
В процессе установки появится ошибка, что нет необходимых пакетов. Запускаем команду:
apt-get install -f
aptitude -f install
Внимательно читаем предложенные варианты, в первом может предложить удалить пакет из deb файла — тут нужно отказаться, после чего будет предложено скачать все необходимое для нормальной работы устанавливаемого пакета.
Установка через apt-get или aptitude
Копируем нужный для установки deb файл в следующую папку:
/var/cache/apt/archives/
И ставим будто обычный пакет:
apt-get install «имя deb файла без расширения»
aptitude install «имя deb файла без расширения»
Источник: pc.ru