- Три утилиты командной строки для локальной установки пакетов Debian
- 1. Установка программ с помощью команды Dpkg
- 2. Установка программ с помощью команды Apt
- 3. Установка программ с помощью команды Gdebi
- Установка deb пакета со всеми зависимостями
- Установка через gdebi
- Установка через dpkg и докачивание нужных пакетов через apt-get или aptitude
- Установка через apt-get или aptitude
- 📦 Как скачать пакеты с зависимостями локально в Ubuntu
- Скачиваем пакеты с зависимостями локально в Ubuntu
- Способ 1:
- Способ 2:
- Linux установить пакет со всеми зависимостями
- Как применять это руководство
- Описание инструментов управления пакетами для Debian
- Apt-get
- Apt-cache
- Aptitude
- Taskel
- Другие
- Обновление кеша пакетов и самой системы
- Обновление локального кеша пакетов
- Обновление пакетов без их удаления
- Обновление пакетов с удалением по необходимости
- Установка и скачивание пакетов
- Поиск пакетов
- Установка пакета из хранилищ
- Установка определенной версии пакета из хранилища
- Переустановка пакетов
- Холостой запуск действий с пакетами
- Отключение запроса на подтверждение действий
- Восстановление испорченных зависимостей и пакетов
- Загрузка пакетов из хранилища
- Загрузка исходного кода пакета
- Установка .deb пакета
- Установка программных “задач” при помощи Tasksel
- Удаление пакетов и их файлов
- Удаление пакета
- Удаление пакета и связанного с ним файлов
- Автоматическое удаление невостребованных зависимостей
- Очистка устаревших загруженных пакетов
- Получение информации о пакетах
- Отображение информации о пакете
- Отображение информации о .deb пакете
- Отображение прямых и обратных зависимостей
- Вывод версий установленных и доступных к установке пакетов
- Вывод установленных пакетов при помощи dpkg -l
- Вывод состояния пакета при помощи фильтров
- Вывод установленных пакетов при помощи dpkg —get-selections
- Поиск среди установленных пакетов
- Вывод установленных пакетом файлов
- Поиск пакета, установленного по адресу
- Обнаружение пакета, ответственного за файл, без его установки
- Передача списка пакетов между системами
- Экспорт списка пакетов
- Импорт списка пакетов
- Добавление хранилищ и PPA
- Добавление PPA
- Добавление хранилища
- Заключение
Три утилиты командной строки для локальной установки пакетов Debian
Оригинал: 3 Command Line Tools to Install Local Debian (.DEB) Packages
Автор: Aaron Kili
Дата публикации: 23 апреля 2018 года
Перевод: А. Кривошей
Дата перевода: декабрь 2018 г.
Из этого руководства мы узнаем, как устанавливать локальные пакеты программ (.DEB) в Debian и его производных, таких как Ubuntu и Linux Mint, используя три различных утилиты командной строки: dpkg, apt и gdebi.
Это будет полезно для тех пользователей, которые недавно перешли с Windows на Ubuntu или Linux Mint. Основная проблема, с которой они сталкиваются, заключается в локальной установке программного обеспечения в системе.
Ubuntu и Linux Mint имеет свой собственный графический центр программного обеспечения для простой установки программ, но мы будем рассматривать установку пакетов в терминале.
1. Установка программ с помощью команды Dpkg
Dpkg — это менеджер пакетов для Debian и его производных, таких как Ubuntu и Linux Mint. Он используется для установки, сборки, удаления и управления пакетами .deb, но в отличие от других систем управления пакетами Linux, он не может автоматически загружать и устанавливать пакеты вместе со своими зависимостями.
Чтобы установить локальный пакет, используйте команду dpkg с флагом -i вместе с именем пакета, как показано ниже.
Если при установке или запуске программы вы получаете какие-либо ошибки зависимостей, вы можете использовать для разрешения и установки зависимостей команду apt с флагом -f, который сообщает программе о необходимости исправить поврежденные зависимости.
Чтобы удалить пакет, используйте параметр -r или если вы хотите удалить все его файлы, включая файлы конфигурации, вы можете очистить его, используя опцию —purge, как показано ниже.
2. Установка программ с помощью команды Apt
Команда apt — это расширенный инструмент командной строки, который позволяет произвести новую установку пакета, обновление существующего пакета, обновление индекса списка пакетов и даже обновление всей системы Ubuntu или Linux Mint.
Он также предлагает инструменты командной строки apt-get и apt-cache для более эффективного управления пакетами в Debian и его производных.
По сути, apt-get или apt не понимают файлы .deb, они предназначены для обработки имен пакетов (например, teamviewer, apache2, mariadb и т. д.). Они распаковывают и устанавливают архивы .deb, связанные с именем пакета, из источников, указанных в файле /etc/apt/sources.list.
Единственно возможный трюк для установки локального пакета Debian с помощью apt-get или apt — это указать локальный относительный или абсолютный путь (./ для текущего каталога), в противном случае он попытается скачать пакет из удаленных источников и выполнить операцию не удастся.
Чтобы удалить пакет, используется опция remove, или если вы хотите удалить все файлы, включая файлы конфигурации, используется опция purge, как показано ниже.
3. Установка программ с помощью команды Gdebi
gdebi — это крошечная утилита командной строки для установки локальных пакетов deb. Она разрешает зависимости и устанавливает их на лету. Чтобы установить пакет, используйте следующую команду.
Чтобы удалить пакет, установленный с помощью gdebi, вы можете использовать команды apt, apt-get или dpkg, используя параметр purge, как показано ниже.
Это все! В этом руководстве мы рассмотрели три различных утилиты командной строки для установки или удаления локальных пакетов Debian в Ubuntu и Linux Mint.
Источник
Установка deb пакета со всеми зависимостями
Некоторые программы, предназначенные для использования в дистрибутивах Linux на основе Debian/Ubuntu, для более простой установки упакованы в файлы формата deb, однако в процессе установки такого файла может вылезти одна неприятная мелочь — например, устанавливаемая программа зависит от какого-нибудь другого пакета, которого нет в системе.
Установить deb пакет и необходимые для его нормальной работы пакеты можно следующим образом:
Установка через gdebi
Самым простым способом является использование утилиты gdebi, предназначенной для установки deb пакетов и автоматической установки всех остальных нужных пакетов. Использовать её очень просто:
Установка через dpkg и докачивание нужных пакетов через apt-get или aptitude
Устанавливаем deb пакет как обычно:
В процессе установки появится ошибка, что нет необходимых пакетов. Запускаем команду:
Внимательно читаем предложенные варианты, в первом может предложить удалить пакет из deb файла — тут нужно отказаться, после чего будет предложено скачать все необходимое для нормальной работы устанавливаемого пакета.
Установка через apt-get или aptitude
Копируем нужный для установки deb файл в следующую папку:
И ставим будто обычный пакет:
В процессе установки apt/aptitude сам предложит установить все необходимые пакеты.
Источник
📦 Как скачать пакеты с зависимостями локально в Ubuntu
Некоторое время назад мы обсуждали, как устанавливать программное обеспечение в автономном режиме в Ubuntu.
В том руководстве мы объяснили, как можно загружать пакеты в системе с подключением к Интернету и устанавливать их в автономном режиме в другой системе с медленным или отсутствующим подключением к Интернету.
В этом руководстве мы увидим, как загружать пакеты с зависимостями локально в Ubuntu и его производных.
Используя этот метод, мы можем загрузить пакет .DEB вместе со всеми необходимыми зависимостями, фактически не устанавливая его.
Таким образом, мы можем загрузить пакеты из одной системы и установить их позже в той же самой системе или любой другой системе, которая не имеет подключения к Интернету.
Мы также можем скачать пакеты для разных архитектур.
Например, можно загрузить 32-битные пакеты из 64-битной системы и наоборот.
Хорошо, давайте начнем, не так ли?
Скачиваем пакеты с зависимостями локально в Ubuntu
Мы можем сделать это двумя способами.
Я проверил это руководство на настольных версиях Ubuntu 16.04 и 18.04 LTS.
Все работало просто отлично.
Способ 1:
Это самый простой метод.
Чтобы скачать пакет со всеми зависимостями, не устанавливая их, просто запустите:
Как вы видите в приведенном выше выводе, мы скачали пакет Vim со всеми зависимостями, но фактически не установили его.
Все загруженные файлы будут сохранены в каталоге /var/cache/apt/archives.
Это проще, чем вы думали, не так ли?
Однако этот метод работает только в том случае, если в системе, используемой для загрузки пакетов, не установлен основной пакет или его зависимости, установленные локально.
В таких случаях используйте «apt-rdepends» для получения всех пакетов.
Если apt-rdepends еще не установлен, установите его с помощью команды:
Эта команда рекурсивно загрузит все необходимые пакеты.
На всякий случай, если вы столкнулись с ошибкой, как показано ниже:
Попробуйте эту команду вместо предыдущей:
Эта команда загрузит Vim со всеми необходимыми пакетами и сохранит их в текущем рабочем каталоге.
Чтобы установить все загруженные пакеты, запустите:
Способ 2:
Сначала загрузите зависимости пакета, который вы хотите загрузить.
Чтобы отобразить список всех зависимостей пакета, например, Python, выполните:
Давайте загрузим пакет python с его зависимостями на наш локальный диск.
Перейти в каталог:
А затем запустите:
Приведенная выше команда загрузит пакет Python вместе со всеми необходимыми зависимостями и сохранит их в текущем рабочем каталоге.
Эта команда также сохранит все ошибки в файле errors.txt.
Давайте посмотрим загруженные файлы командой “ls”:
Пример вывода:
Как видно из вышеприведенного вывода, пакет python со всеми его зависимостями был загружен.
Просто скопируйте их на USB-накопитель и установите пакеты python в любой автономной системе, как показано ниже.
Источник
Linux установить пакет со всеми зависимостями
Одно из основных преимуществ Linux систем — это управление пакетами. Формат самих пакетов и способы управления ими отличается в разных дистрибутивах, но, тем не менее, можно выделить два основных направления.
В дистрибутивах на базе RHEL используется RPM формат пакетов, а управлять ими можно при помощи rpm или yum. Второе направление используется в операционных системах семейства Debian (например Ubuntu). В них применяется формат пакетов deb, а роль инструментов, помогающих управлять ими, apt и dpkg. Именно вторую группу мы и обсудим в статье. В этой статье-шпаргалке мы пройдемся по всем основным инструментам для управления пакетами, которыми пользуются системные администраторы на Debian и Ubuntu. Сохранив эту статью вы сможете всегда к ней обратиться при возникновении проблем с пакетами.
Как применять это руководство
Мы рассмотрим часто применяемые пользовательские инструменты в Debian и Ubuntu системах. Оставим инструменты для создания пакетов, так как они сильно различаются от дистрибутива к дистрибутиву в силу различий в лицензионных соглашениях.
Каждый отдельный инструмент мы рассмотрим в разделе “Описание инструментов управления пакетами для Debian”. Вся остальная часть руководства будет основываться больше на отдельных функциях, чем на инструменте как таковом. Такое построение руководства более логично, так как сначала вы сталкиваетесь с задачей, а уже потом ищите инструменты для её решения.
Не забывайте про следующие моменты, обращаясь к данному руководству:
- Если вы не знакомы с инструментами управления пакетами для Debian, то полностью прочтите раздел “Описание инструментов управления пакетами для Debian”.
- Каждый раздел руководства можно использовать по отдельности. Поэтому можете сразу обращаться к той части, которая вам нужна в текущий момент.
- Используйте содержание к руководству для поиска важной вам информации.
- Копируйте команды в терминал вашей ОС, чтобы видеть результат для вашей ОС.
Описание инструментов управления пакетами для Debian
Debian/Ubuntu системы используют довольно небольшое количество инструментов для управления пакетами.
Большинство из них имеют много общего и работают с одной БД пакетов. Одни инструменты используют довольно высокий уровень абстрагирования от систем управления, другие же предлагают низкоуровневый доступ.
Apt-get
apt-get, пожалуй, наиболее часто используемый инструмент. Его основные задачи — обеспечения интерфейса с удаленными хранилищами пакетов, которыми управляют разработчики ОС, и выполнение базовых операций с ними. Так же при помощи этой команды можно обновить локальный кеш пакетов, установить новые или удалить старые пакеты.
Чаще всего, apt-get применяется для обновления кеша и выполнения операций на рабочей системе.
Apt-cache
Другой незаменимый инструмент из семейства apt — apt-cache . С его помощью вы сможете получить информацию о доступных пакетах из локального кеша.
Например, если вам необходимо установить определенный пакет или найти подходящий инструмент, то начать поиск стоит именно здесь. Вы легко найдете информацию о доступной версии пакета, прямых и обратных зависимостях.
Aptitude
Объединяет в себе функционал двух предыдущих инструментов. Он может работать не только в командном режиме, но и имеет интерфейс, построенный на базе библиотеки ncurses . При работе в командном режиме aptitude почти полностью копирует команды apt-get и apt-cache . Поэтому мы не будем отдельно обсуждать этот инструмент. По идеи вы всегда можете заменить apt-get и apt-cache на aptitude .
Основное отличие dpkg от рассмотренных инструментов — это возможность работы напрямую с пакетами deb, т.е. без удаленных хранилищ. По идее, все выше описанные инструменты используют dpkg для своей работы.
В отличии от инструментов apt-* dpkg автоматически не устанавливает требуемые зависимости. Основные задачи dpkg — работа с .deb пакетами напрямую и получение полной информации о пакете и его структуре. Хотя при помощи dpkg можно получить информацию об установленных пакетах в системе, его первостепенная задача — это работа с отдельными пакетами.
Taskel
Taskel стоит особняком в этом ряду. Эта программа объединяет пакеты, основываясь на выполнении определенной задачи.
Вы можете выбрать задачу как при помощи текстового интерфейса, так и отдельного пакета. Конечно такой подход не назовешь кропотливым, но когда вам надо быстро установить ряд пакетов, он может подойти как нельзя лучше.
Другие
Конечно на этом ряд инструментов для управления пакетами не заканчивается. Существуют еще и другие программы с отличающимся функционалом и манерой предоставления информации. Мы будем к ним обращаться только по необходимости, но не стоит про них забывать. Очень полезными могут оказаться такие инструменты как apt-file , dselect и gdebi .
Обновление кеша пакетов и самой системы
В Debian/Ubuntu системах реализован очень удобный подход не только для поддержания актуальности списка пакетов, но и для их обновления.
Обновление локального кеша пакетов
Удаленные хранилища, в которых хранятся пакеты, постоянно обновляются. А так как все инструменты управления пакетами работают с локальным кешем, следует следить за актуальностью кеша.
В общем, перед тем как начать работу с пакетами, всегда рекомендуется для начала обновить кеш. Более того, некоторые команды могут закончиться неудачно, если информация о пакетах сильно устарела.
Для обновления кеша воспользуйтесь командой apt-get и её подкомандой update :
Информация о доступных пакетах для вашей операционной системы полностью обновится.
Обновление пакетов без их удаления
Команда apt предоставляет вам возможность легко поддерживать актуальность установленных пакетов.
Она различает два типа обновления. Первый (будет рассмотрен в этом разделе) — используется для обновления пакетов, не требующих предварительного удаления. Для описания процедуры обновления, допускающей удаление и замену пакетов по необходимости, обращайтесь к разделу ниже.
Этот момент может иметь довольно большое значение, в случае, когда вам необходимо сохранить определенные установленные пакеты. Тем не менее, иногда для обновления требуется удаление других пакетов с целью избежания конфликтов. Следующая команда игнорирует обновления требующие удаления других пакетов:
После выполнения этой команды вы все пакеты, чье обновление не требует удаления других пакетов, будут обновлены.
Обновление пакетов с удалением по необходимости
Команда apt предоставляет вам возможность легко поддерживать актуальность установленных пакетов.
Она различает два типа обновления. Первый (будет рассмотрен в этом разделе) — используется для обновления пакетов, не требующих предварительного удаления. Эта процедура описана в разделе выше.
Другой подход (описан в этом разделе) — обновление всех пакетов, даже если это требует удаления уже имеющихся в системе пакетов. Такая ситуация часто возникает, так как зависимости пакетов довольно часто изменяются.
Чаще всего, удаляемые пакеты заменяются на аналоги, поэтому эта операция, как правило, безопасна. Тем не менее, всегда обращайте внимание на список удаляемых пакетов для избежания неожиданностей. Для выполнения такого типа обновления вам понадобится следующая команда:
В итоге получите полностью обновленную систему.
Установка и скачивание пакетов
Одна из основных задач системы управления пакетами — упрощение процесса скачивания и установки пакетов.
Поиск пакетов
Первый шаг при установке пакетов — поиск необходимого пакета в хранилищах. Большинство команд apt работает напрямую с кешем вашей локальной машины. Таким образом вы экономите на времени выполнения и сетевом трафике.
Поиск пакетов — это единственная операция, которая работает с локальным кешем. Для выполнения поиска вам потребуется команда apt-cache . Не забывайте, что кеш необходимо предварительно обновить командой sudo apt-get update :
Так как эта команда просто ищет необходимую информацию о пакете, ей не требуются права администратора. В качестве результата поиска вы получите название подходящего пакета и его полное описание.
Например, если вы ищете htop , то вы увидите следующий результат:
Как вы видите, помимо пакета htop , мы получили два других пакета, в описании которых присутствует слово htop (описание в примере сокращено).
Установка пакета из хранилищ
Для установки пакета из хранилищ со всеми необходимыми зависимостями можно воспользоваться командой apt-get install .
В качестве аргументов команде следует передать название пакета или пакетов точно так, как они названы в хранилищах.
Можно установить несколько пакетов за раз, разделив их названия пробелом:
Если для установки требуемых пакетов нужны определенные зависимости, то их список будет выведен и потребуется подтверждение действий. Пример вывода:
Как видите, хотя мы устанавливаем только apache2, пакет apache2-data устанавливается в качестве зависимости. В это случае вы можете просто нажать Enter или Y для подтверждения действия или N для отмены.
Установка определенной версии пакета из хранилища
Если вам нужна определенная версия пакета, то указать её вы можете через знак равенства после имени пакета:
В этом случае версия должна совпадать с одной из доступных из хранилища. Чтобы получить список доступных версий выполните следующую команду:
Переустановка пакетов
Многие пакеты подразумевают выполнение пост-установочных скриптов. Чаще всего администратору компьютера приходится выбирать определенные варианты настройки пакета. Если, после установки, вам потребуется снова выполнить эти скрипты, то можно воспользоваться командой dpkg-reconfigure . Она находит указанный вами пакет и исполняет все требуемые скрипты.
Таким образом вы получите доступ к тем же (а иногда и к другим) вариантам настройки пакета.
Холостой запуск действий с пакетами
Довольно часто вам понадобится увидеть результат действий с пакетом без внесения каких либо изменений в систему. Команда apt позволяет сделать это при помощи ключа -s . Например, чтобы увидеть, что произойдет при установке пакета, можно выполнить следующую команду:
В результате вы увидите полный список требуемых зависимостей и изменений для установки пакета. Таким образом, вы можете увидеть что произойдет в системе, как если бы вы выполнили эту команду с правами администратора (sudo).
Например, чтобы увидеть что произойдет при установке apache2, надо выполнить следующее:
Вы видите полный список пакетов и их версий, которые будут установлены, но это всего лишь симуляция процесса.
Такой же подход можно применять и к другим процедурам, например полному обновлению системы:
Отключение запроса на подтверждение действий
По-умолчанию, apt требуется подтверждение от пользователя по многим действиям. К ним относятся установка зависимостей и обновление пакетов.
Чтобы не отвечать каждый раз на эти запросы, вы можете сразу указать ваш ответ по-умолчанию, указав флаг -y :
В результате все пакеты будут установлены без лишних вопросов к администратору. Также можно поступить и при обновлении системы:
Восстановление испорченных зависимостей и пакетов
Случается так, что установка обрывается в силу проблем с зависимостями либо по другим причинам. Например, вы устанавливаете .deb пакет при помощи dpkg , не указав все необходимые зависимости.
Команда apt-get попробует исправить ситуацию, если ей передать флаг -f :
Apt попробует найти необходимые зависимости и установить их. При столкновении с подобными проблемами, первое, что вам следует сделать это выполнить вышеописанную команду.
Загрузка пакетов из хранилища
Иногда вам требуется скачать сам пакет без установки. Вы можете это легко сделать указав подкоманду download команде apt-get .
Так как вы не вносите изменений в систему, права администратора не требуются.
Пакет будет загружен в текущий рабочий каталог.
Загрузка исходного кода пакета
Команда apt может загрузить не только сам .deb пакет, но и его исходный код, если соответствующая информация указана в списке используемых вами хранилищ.
Для загрузки исходного кода соответствующая deb-src строка должна быть указана в файле source.list для apt . Более подробно вы можете почитать об этом в соответствующем разделе руководства.
После выполнения требуемых действий, исходный код можно скачать следующей командой:
Файлы будут загружены в текущий каталог. Чаще всего это — каталог пакета, файл описания dsc и сам пакет сжатый архиватором tar.
Такой подход может быть полезен, если вы хотите внести свои изменения в имеющийся пакет.
Установка .deb пакета
Установка пакетов из хранилищ является предпочитаемым вариантом, но иногда разработчика предоставляют только сам .deb пакет.
Для их установки вам понадобится dpkg , который в основном работает с отдельными пакетам. Эта команда не обращается к хранилищам, а ищет необходимый пакет по указанному вами пути:
Важно помнить, что dpkg не обрабатывает зависимости автоматически. То есть при обнаружении проблем с зависимостями, установка прекратится. Но, к счастью, dpkg выводит список требуемых зависимостей, которые можно установить в дальнейшем при помощи:
Все необходимые пакеты будут установлены.
Установка программных “задач” при помощи Tasksel
Большие наборы пакетов можно установить при помощи, так называемых, “задач”. Задачи — набор пакетов, которые вместе образуют определенную программную среду. Примером таких задач служат сервер LAMP, окружение рабочего стола или сервера приложений.
Не на всех системах tasksel установлен по-умолчанию. Установить его можно следующим образом:
Выбрать группу задач можно в интерактивном режиме командой:
Вы увидите интерфейс, позволяющий вам выбрать нужную задачу и выполнить требуемые изменения.
Список установленных и доступных к установке задач можно получить следующим образом:
Далее можно установить задачу из командной строки выполнив:
Удаление пакетов и их файлов
Удаление пакетов так же можно выполнить при помощи систем управления пакетами. В этом разделе мы рассмотрим как удалить пакеты и файлы, оставшиеся после них.
Удаление пакета
Для удаления пакета требуется выполнить подкоманду remove команды apt-get . Большинство файлов, связанных с пакетом будут удалены, за одним большим исключением. Все файлы настройки остаются нетронутыми, чтобы вы могли легко восстановить состояния пакета в случае его повторной установки. Такой подход очень удобен, так как вы сохраняете все настройки, если случайно удалили пакет.
Для удаления необходимо указать название пакета:
Пакет будет удален, а файлы настройки сохранены.
Удаление пакета и связанного с ним файлов
Если вам необходимо удалить пакет со всеми связанными с ним файлами, включая конфигурационные, то используйте подкоманду purge .
В отличии от remove , purge удаляет все файлы. Такой подход может быть полезен в случае когда вам необходимо создать настройки заново и начать с чистого листа. Не забывайте, что удалив файлы настройки, восстановить вы их не сможете.
Теперь при переустановке пакета будет использованы настройки по-умолчанию.
Автоматическое удаление невостребованных зависимостей
При использовании apt-get remove или apt-get purge вы удаляете указанный вами пакет. Но все зависимости, что были установлены ранее для этого пакета остаются нетронутыми. Для удаления таких брошенных зависимостей используйте команду autoremove :
Чтобы удалить конфигурационные файлы зависимых пакетов, используйте ключ —purge . Таким образом все лишние файлы будут удалены. Действие идентично команде purge .
Очистка устаревших загруженных пакетов
По мере добавления новых пакетов в хранилища, некоторые из них становятся устаревшими. Команда apt-get способна удалить файлы на вашем компьютере, которые связаны с устаревшими пакетами при помощи подкоманды autoclean .
Таким образом вы поддерживаете кеш на своем сервере в актуальном состоянии и избавляетесь от ненужных файлов, экономя дисковое пространство.
Получение информации о пакетах
Каждый пакет содержит в себе довольное большое количество мета информации, доступ к которой можно получить средствами инструментов управления пакетами.
Отображение информации о пакете
Чтобы просмотреть информацию о пакете из хранилища, воспользуйтесь подкомандой show команды apt-cache . Команде достаточно передать название пакета из хранилища.
Команда выведет вам подробную информацию о пакете, включая его зависимости, версию, архитектуру, конфликты, полное название пакета, размер пакета в установленном виде и др. информацию.
Чтобы вывести полную информацию о пакете, включая полный список обратных зависимостей (то есть какие пакеты зависят от искомого), используйте showpkg . Вы увидите довольно много полезной информации о связях между пакетами.
Отображение информации о .deb пакете
Чтобы получить информацию о deb пакете используйте ключ —info команды dpkg . Так же следует указать путь к deb файлу.
Вы увидите различную мета информацию, включая название пакета, его версию, архитектуру, размер, список зависимостей, полное описание и возможные конфликты.
Отображение прямых и обратных зависимостей
Для вывода всех зависимостей следует воспользоваться командой apt-cache c подкомандой depends .
Вы получите полный список жестких зависимостей, рекомендаций и конфликтных пакетов. Для вывода списка обратных зависимостей используйте подкоманду rdepends
Вывод версий установленных и доступных к установке пакетов
Довольно часто в хранилище находятся несколько версий пакетов, причем одна из них устанавливается по-умолчанию. Чтобы получить список доступных версий, используйте подкоманду policy команды apt-cache
Вы увидите номер установленной версии, версию по-умолчанию, если не указать её отдельно, а так же таблицу версий с указанием приоритета.
Таким образом вы видите какая версия пакета будет установлена и какие вы можете выбрать. Так как вы также получите адреса хранилищ где хранятся пакеты, что даст вам представление о дополнительных хранилищах пакетов.
Вывод установленных пакетов при помощи dpkg -l
Существует несколько способов получить список установленных пакетов, выбор которого зависит от необходимой вам детальности.
Первый метод — использование dpkg или dpkg-query с ключом -l . Вывод команд идентичен. При использовании без аргументов вы получите список всех установленных и частично установленных пакетов. Пример вывода:
Вывод будет произведен для каждого пакета в системе. Вверху вы видите описание значения первых трех символов каждой строки. Первый символ указывает на состояние пакета. Он может принимать значения:
- u: неизвестно
- i: установлен
- r: удален с сохранением файлов настроек
- p: удален без сохранения файлов настроек
- h: удержание версии
Второй символ показывает действительный статус пакета в системе управления пакетами. Он принимает значения:
- n: не установлен
- i: установлен
- c: наличие файлов настроек, но сам пакет отсутствует
- u: распакован. Файлы распакованы, но не настроены
- f: Пакет частично установлен. Указывает на возникшую ошибку в процессе установки
- w: пакет ожидает запуска от другого пакета
- p: Пакет был запущен из другого пакета
Третий символ, как правил, пробел, но может принимать только одно значение:
- r: Требуется переустановка. Обычно означает, что пакет испорчен и восстановить его невозможно.
Остальные столбцы содержат имя пакета, версию, архитектуру и описание.
Вывод состояния пакета при помощи фильтров
Если указать маску названия пакета после ключа -l , то вы получите информацию о пакетах, попадающих под эту маску. Например, давайте найдем библиотеку для обработки YAML:
Как видите первый и четвертый результаты не установлены, то есть вы получаете информацию не только о установленных пакетах, но и о доступных.
Вывод установленных пакетов при помощи dpkg —get-selections
Второй способ: вывод списка установленных пакетов — использование команды dpkg с ключом — -get-selections .
Вы получите список всех установленных и удаленных с сохранением настроек пакетов.
Чтобы вывести только установленные пакеты, используйте:
Для вывода удаленных пакетов используйте:
Поиск среди установленных пакетов
Чтобы найти установленный пакет используйте маску пакета после ключа —get-selections. Опять, вы увидите не только установленные пакеты, но и удаленные с сохранением настроек пакеты.
Так же как и в предыдущем примере, допускается использование ключей awk.
Вывод установленных пакетом файлов
Чтобы получить список файлов, которые установил определенный пакет, используйте ключ -L команды dpkg :
Вы получите список абсолютных путей к файлам. Файлов настроек, которые были созданы в процессе работы, вы не увидите.
Поиск пакета, установленного по адресу
Чтобы понять какой пакет установил интересующий вас файл, вы можете использовать команду dpkg с ключом -S :
Вы увидите название пакета, ответственного за файл:
Не забывайте, что это связка работает только для файлов, созданных в процессе установки.
Обнаружение пакета, ответственного за файл, без его установки
При помощи ключа -S довольно легко определить какому пакету принадлежит файл. Но иногда вам необходимо знать какой пакет даст вам определенный файл или команду, до установки самого пакета.
Для этого вам понадобится утилита apt-file . Она поддерживает базу связки файлов и пакетов.
Установить её можно следующим образом:
Затем обновите базу данных утилиты и приступайте к поиску:
И снова, такой метод подходит только для файлов, созданных в процессе установки.
Передача списка пакетов между системами
Иногда вам приходится создавать системы с одинаковым набором пакетов. В таком случае можно экспортировать список установленных пакетов на одной машине и использовать её на другой. Такой подход так же можно использовать при создания резервных копий. В этом разделе мы рассмотрим методы создания списков пакетов.
Экспорт списка пакетов
Для начала вам понадобится создать список пакетов. Получить такой список можно при помощи команды dpkg —get-selections .
Этот список позднее можно скопировать на другую машину и импортировать. Также имеет смысл сохранить список хранилищ и ключей к ним. Для этого создайте каталог для хранения необходимых файлов и просто скопируйте её.
Экспортировать ключи можно следующим образом:
Все созданные файлы теперь можно перенести на другую машину.
Импорт списка пакетов
Если вы создали список пакетов, как описано выше, то импортировать его вы можете так же при помощи команды dpkg .
Для начала надо добавить ключи и списки репозиториев. Если все файлы находятся в домашнем каталоге, то достаточно будет выполнить следующие команды:
Теперь обнулите состояние не основных пакетов в системе. То есть изменения надо наносить на свежие пакеты. Команда должна быть выполнена с правами администратора.
Таким образом вы отметите все неважные пакеты для удаления. Теперь следует обновить кеш пакетов, чтобы мы установили последние версии. Самой установкой займется утилита под названием dselect .
Убедитесь в том, что она установлена и обновите её БД.
Теперь мы можем применить наш список пакетов поверх имеющегося:
Эта команда установит нужные состояния для интересующих нас пакетов. Чтобы применить изменения выполните следующую команду:
Она загрузит, установит и удалит все необходимые пакеты. В итоге вы должны получить полный аналог предыдущей машины, за исключением файлов настроек, которые следует скопировать или изменить отдельно.
Добавление хранилищ и PPA
Конечно список репозиториев по-умолчанию довольно обширен, но все же иногда вам может понадобится добавить какие-то свои хранилища. В этом разделе мы рассмотрим как это сделать.
Добавление PPA
PPA (личные архивы пакетов) — своего рода аналог хранилищам. На момент написания руководство они доступны только для Ubuntu. PPA гораздо меньше по объему чем хранилища и поддерживаются частными лицами.
Добавив PPA в список доступных источников пакетов, вы можете использовать их так же как и обычные хранилища. Таким образом можно поддерживать актуальность пакетов или предоставлять пакеты недоступные в стандартных хранилищах. Не забывайте, вы добавляете только те PPA, которым доверяете, так как вы будете устанавливать оттуда пакеты. Чтобы добавить PPA воспользуйтесь командой add-apt-repository . Вы должны передать команде приставку ppa: , имя собственника ppa на launchpad, слеш и название ppa.
Возможно вам придется принять ключ от ppa , после чего вы получите новый источник пакетов, который сможете использовать при помощи apt. Прежде чем искать или устанавливать новые пакеты из ppa, не забудьте обновить кеш:
Добавление хранилища
Существует два подхода для добавления хранилищ в ubuntu и debian.
Первый — вручную внести изменения в файл /etc/apt/sources.list/ или добавить файл списка, оканчивающийся на .list , в каталог /etc/apt/sources.list.d/ .
Добавлять источник нужно в формате:
- deb или deb-src : Указывает на тип хранилища. Традиционные хранилища обозначаются при помощи deb , а хранилища исходных кодов — при помощи deb-src .
- url: Главный url хранилища. Адрес расположения хранилища.
- release code name or suite: кодовое имя вашей системы, обозначающее набор пакетов именно для вашей версии системы.
- component names: Отметка набора пакетов, которые вы хотите сделать доступными себе.
Часто их указывает владелец хранилища, чтобы отобразить, например, лицензию. Эти строки следует добавить в сам файл. Как правило, вы можете найти формат добавления хранилища в самом хранилище.
Второй способ добавления хранилищ — команда add-apt-repository . Как правило, эта утилита установлена по-умолчанию в ubuntu и debian. Если у вас её нет, то установить её можно следующим образом:
Далее, просто отдавайте хранилища в указанном формате этой утилите.
Не забывайте обновлять кеш после добавления хранилища. Иначе система не увидит новых пакетов.
Заключение
Конечно это не полный список возможностей систем управления пакетами в ubuntu и debian, но постарались выделить наиболее важные на наш взгляд. Не забывайте добавлять свои замечания в коментариях.
Источник