Linux deb пакеты зависимости

📦 Как скачать пакеты с зависимостями локально в 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 в любой автономной системе, как показано ниже.

Читайте также:  Для работы itunes требуется windows 10

Источник

Установка deb пакета со всеми зависимостями

Некоторые программы, предназначенные для использования в дистрибутивах Linux на основе Debian/Ubuntu, для более простой установки упакованы в файлы формата deb, однако в процессе установки такого файла может вылезти одна неприятная мелочь — например, устанавливаемая программа зависит от какого-нибудь другого пакета, которого нет в системе.

Установить deb пакет и необходимые для его нормальной работы пакеты можно следующим образом:

Установка через gdebi

Самым простым способом является использование утилиты gdebi, предназначенной для установки deb пакетов и автоматической установки всех остальных нужных пакетов. Использовать её очень просто:

Установка через dpkg и докачивание нужных пакетов через apt-get или aptitude

Устанавливаем deb пакет как обычно:

В процессе установки появится ошибка, что нет необходимых пакетов. Запускаем команду:

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

Установка через apt-get или aptitude

Копируем нужный для установки deb файл в следующую папку:

И ставим будто обычный пакет:

В процессе установки apt/aptitude сам предложит установить все необходимые пакеты.

Источник

Как установить .deb файл с зависимостями

В основанных на Debian системах программные файлы, библиотеки исходный код упаковывается и распространяется как .deb файлы. Установка .deb файлов может быть сделана с помощью инструмента командной строки под названием dpkg. Тем не менее, типичный .deb пакет имеет зависимости (или обязательные пакеты), которые нужно предустановить для того, чтобы была возможность установить этот .deb пакет, и dpkg не может разрешить эти зависимости.

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

Когда дело доходит до зависимостей .deb файлов, инструмент Linux под названием gdebi — это благословение. С gdebi вы можете установить .deb файлы с автоматическим решением неудовлетворённых зависимостей.

Утилита gdebi имеет два компонента gdebi для инструмента командной строки и gdebi-gtk с графическим интерфейсом. В зависимости от того, вы на настольном компьютере Linux или на «безголовом» сервере, вы можете установить только инструментом командной строки или полной графической версией.

Установка .deb файла с зависимостями на безголовый сервер

Для установки gdebi в консоли на Debian, Ubuntu или Linux Mint, проделайте следующее.

Сейчас просто запустите gdebi с целевым .deb файлом для установки и обработки зависимостей. Любые обязательные пакеты будут установлены автоматически.

Установка .deb файла с зависимостями в среде рабочего стола

Вы можете также использовать консольный инструмент gdebi на в среде рабочего стола, или вы можете попробовать gdebi с графическим интерфейсом. Для этого установить gdebi как показано. GTK его интерфейса также будут установлены.

Затем наберите эту команду для установки .deb файла.

Вы увидите графический интерфейс установщика пакетов, как показано на скриншоте ниже.

Если есть какие-либо зависимости, статус в окне покажет вам эти зависимости и вы сможете проверить их кликнув на «Детали» как показано ниже.

Наконец, просто нажмите «Установить пакет» для процесса установки .deb.

Источник

Неудовлетворенные зависимости Ubuntu

При установке пакетов из официальных или сторонних репозиториев вы можете столкнуться с проблемой неудовлетворенные зависимости Ubuntu. Чтобы понять причину возникновения этой ошибки сначала надо разобраться как работают пакетные менеджеры в Linux. Здесь всё компоненты системы, библиотеки и сами программы разделены на пакеты. И если какой-либо программе нужна определенная библиотека, она не поставляется вместе с этой библиотекой, а ожидает, что эта библиотека будет уже установлена в системе.

Читайте также:  Как загрузить windows по шагам

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

Неудовлетворенные зависимости в Ubuntu

По английски наша ошибка ещё может писаться как the following packages have unmet dependencies. Она может возникнуть в нескольких случаях, давайте сначала рассмотрим основные из них:

  • Вы используете dpkg для установки deb пакета. Эта утилита не занимается установкой зависимостей. Вместо неё надо использовать apt install или потом просто установить недостающие зависимости с помощью apt, как это делается описано ниже;
  • Вы используете старую версию дистрибутива — в старых версиях могло что-то изменится в репозитории и часть пакетов была удалена или переименована. С LTS версиями такое случается редко, но с обычными релизами вполне может произойти;
  • Вы пытаетесь установить программу не от своего дистрибутива — несмотря на родство всех дистрибутивов семейства Debian, не желательно использовать программы из других дистрибутивов, так, как они могут требовать пакеты, которые в этом дистрибутиве называются по другому;
  • У вас установлен устаревший пакет, который не позволяет обновить некоторые зависимости — случается, когда в системе уже есть какой-нибудь пакет старый пакет, требующий старую версию библиотеки, а новая программа, которую вы собираетесь установить уже хочет более новую версию и не позволяет её обновить. Эта проблема не очень типична для Ubuntu, так как здесь большинство версий программ в репозиториях заморожено, но часто встречается при использовании дистрибутивов с системой роллинг релизов.

1. Обновление и исправление зависимостей

Самое первое что надо сделать при проблемах с зависимостями, это хоть как-нибудь их исправить, потому что иначе пакетный менеджер работать не будет. В некоторых случаях, если списки репозиториев давно не обновлялись их обновление может помочь:

sudo apt update

sudo apt install -f

Эта команда установит зависимости, которые есть во официальных репозиториях (поможет при использовании dpkg) и если это не решит проблему, то удалит пакеты, для которых зависимости удовлетворить не удалось. Также после этого можно выполнить:

sudo dpkg —configure -a

А потом повторить предыдущую команду. Следующим шагом можно попробовать обновить систему до самой последней версии. Это тоже может помочь если вы пытаетесь установить пакет из официальных репозиториев и при этом возникает проблема с зависимостями:

sudo apt upgrade
sudo apt full-upgrade

Если причиной вашей проблемы стал устаревший пакет надо его удалить или придумать для него замену. Например, если у вас установлена старая версия php, могут возникнуть проблемы с установкой новой версии, потому что будут конфликтовать версии библиотек, от которых зависит программа. Однако можно найти PPA со специально подготовленной старой версией php, которая ни с кем конфликтовать не будет.

Также подобная проблема может возникать при использовании PPA. Эти репозитории поддерживаются сторонними разработчиками, и могут содержать проблемы, если это ваш вариант, то, лучше поискать альтернативные способы установки необходимой программы.

Читайте также:  При установки windows горит курсор

2. Установка зависимостей

Дальше установка зависимостей Ubuntu. Следующий этап, если вы скачали пакет в интернете, например, от другого дистрибутива с таким же пакетным менеджером, можно попытаться установить таким же способом библиотеки, которые он просит. Это может сработать особенно, если вы пытаетесь установить программу из старой версии дистрибутива. Пакеты можно искать прямо в google или на сайте pkgs.org:

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

После загрузки пакета с сайта его можно установить через тот же dpkg:

sudo dpkg -i ffmpegthumbs_19.04.3-0ubuntu1

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

3. Удаление зависимостей

Если у вас есть скачанный пакет, и он говорит, что он зависит о версии библиотеки, которой в вашей системе нет, но вы уверены, что ему подойдет и другая версия, то можно просто убрать эту зависимость из пакета. Но для этого надо его перепаковать. Такая ситуация была когда-то с популярным менеджером Viber. Рассмотрим на примере того же вайбера.

Сначала распакуйте пакет в подпапку package командой:

dpkg-deb -x ./viber.deb package

Затем туда же извлеките метаданные пакета:

dpkg-deb —control viber.deb package/DEBIAN

В файле package/DEBIAN есть строчка Depends, где перечислены все библиотеки, от которых зависит пакет и их версии. Просто удалите проблемную библиотеку или измените её версию на ту, которая есть в системе.

Затем останется только собрать пакет обратно:

dpkg -b viber package.deb

И можете устанавливать, теперь с зависимостями будет всё верно:

sudo dpkg -i package.deb

Но такое исправление зависимостей Ubuntu следует использовать только для пакетов, которые точно неверно собраны. Важно понимать, что пакетный менеджер вам не враг, а помощник, и то что вы отключите зависимости и установите программу ещё не значит, что она потом будет работать.

4. Распаковать пакет

Следующий способ подойдет, если программа которую вы устанавливаете это библиотека, например, веб-драйвер для Selenium. Пакет можно распаковать и просто разложить исполняемые файлы из него по файловой системе в соответствии с папками внутри архива. Только желательно использовать не корневую файловую систему, а каталог /usr/local/ он как раз создан для этих целей.

5. Использовать snap пакеты

Самый простой способ обойти проблемы с зависимостями — использовать новый формат установщика программ, в котором программа содержит все зависимости в установочном архиве и они устанавливаются аналогично Windows в одну папку. Установка такой программы будет дольше, но зато такие там вы точно не получите проблем с зависимостями Ubuntu. Всё программы, которые поддерживают этот формат есть в центре приложений Ubuntu:

Выводы

В этой статье мы разобрали как исправить проблемы с зависимостями Ubuntu. Некоторые из способов довольно сложные, а другие проще. Но сама эта система, согласно которого пакеты зависят от других, а те ещё от других очень сложная и не удивительно, что время от времени в ней возникают ошибки. А какие способы решения этой проблемы вы знаете? Напишите в комментариях?

Источник

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