📦 Как скачать пакеты с зависимостями локально в Ubuntu

by itisgood

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

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

В этом руководстве мы увидим, как загружать пакеты с зависимостями локально в Ubuntu и его производных.

Используя этот метод, мы можем загрузить пакет .DEB вместе со всеми необходимыми зависимостями, фактически не устанавливая его.

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

Мы также можем скачать пакеты для разных архитектур.

Например, можно загрузить 32-битные пакеты из 64-битной системы и наоборот.

Хорошо, давайте начнем, не так ли?

Скачиваем пакеты с зависимостями локально в Ubuntu

Мы можем сделать это двумя способами.

Я проверил это руководство на настольных версиях Ubuntu 16.04 и 18.04 LTS.

Все работало просто отлично.

Способ 1:

Это самый простой метод.

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

$ sudo apt-get install --download-only <package_name>
Например, давайте загрузим пакет Vim со всеми необходимыми зависимостями, не устанавливая их, используя команду:
$ sudo apt-get install --download-only vim

Пример вывода:

Reading package lists... Done
Building dependency tree 
Reading state information... Done
Suggested packages:
ctags vim-doc vim-scripts
The following NEW packages will be installed:
vim
0 upgraded, 1 newly installed, 0 to remove and 82 not upgraded.
Need to get 1,152 kB of archives.
After this operation, 2,852 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 vim amd64 2:8.0.1453-1ubuntu1.1 [1,152 kB]
Fetched 1,152 kB in 3s (372 kB/s)
Download complete and in download only mode

Как вы видите в приведенном выше выводе, мы скачали пакет Vim со всеми зависимостями, но фактически не установили его.

Все загруженные файлы будут сохранены в каталоге /var/cache/apt/archives.

Чтобы установить загруженные пакеты, перейдите в папку кеша и установите их, как показано ниже.
$ sudo dpkg -i *

Видите?

Это проще, чем вы думали, не так ли?

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

В таких случаях используйте «apt-rdepends» для получения всех пакетов.

Если apt-rdepends еще не установлен, установите его с помощью команды:

$ sudo apt install apt-rdepends
А затем загрузите основной пакет (т.е. в нашем случае Vim) вместе со всеми зависимостями, используя команду:
$ apt download $(apt-rdepends vim | grep -v "^ ")

Эта команда рекурсивно загрузит все необходимые пакеты.

На всякий случай, если вы столкнулись с ошибкой, как показано ниже:

E: Can't select candidate version from package debconf-2.0 as it has no candidate

Попробуйте эту команду вместо предыдущей:

$ apt-get download $(apt-rdepends vim | grep -v "^ " | sed 's/debconf-2.0/debconf/g')

Эта команда загрузит Vim со всеми необходимыми пакетами и сохранит их в текущем рабочем каталоге.

Чтобы установить все загруженные пакеты, запустите:

$ sudo dpkg -i *

Способ 2:

Сначала загрузите зависимости пакета, который вы хотите загрузить.

Чтобы отобразить список всех зависимостей пакета, например, Python, выполните:

$ sudo apt-cache depends python

Пример вывода:

python
PreDepends: python-minimal
Depends: python2.7
Depends: libpython-stdlib
Conflicts: <python-central>
Breaks: update-manager-core
Suggests: python-doc
Suggests: python-tk
Replaces: python-dev

Давайте загрузим пакет python с его зависимостями на наш локальный диск.

Для этого сначала создайте каталог для сохранения пакетов.
$ mkdir python

Перейти в каталог:

$ cd python

А затем запустите:

$ for i in $(apt-cache depends python | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); do sudo apt-get download $i 2>>errors.txt; done

Приведенная выше команда загрузит пакет Python вместе со всеми необходимыми зависимостями и сохранит их в текущем рабочем каталоге.

Эта команда также сохранит все ошибки в файле errors.txt.

Давайте посмотрим загруженные файлы командой “ls”:

$ ls

Пример вывода:

errors.txt
libpython-stdlib_2.7.11-1_amd64.deb
python2.7_2.7.11-7ubuntu1_amd64.deb
python-doc_2.7.11-1_all.deb
python-minimal_2.7.11-1_amd64.deb
python-tk_2.7.11-2_amd64.deb

Как видно из вышеприведенного вывода, пакет python со всеми его зависимостями был загружен.

Просто скопируйте их на USB-накопитель и установите пакеты python в любой автономной системе, как показано ниже.

Смонтируйте USB-накопитель, перейдите в то место, где вы его смонтировали, и выполните следующую команду для установки Python.
$ sudo dpkg -i *

 

You may also like

Leave a Comment