Home » Linux » Подготовка и установка deb-пакетов оффлайн

Подготовка и установка deb-пакетов оффлайн

Рассмотрим задачу подготовки некоторого deb-пакета для установки в оффлайн режиме, например, на другой машине с той же версией операционной системы.

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

В качестве примера я возьму довольно внушительный по объёму зависимостей пакет библиотек Boost C++ под названием libboost1.55-all-dev.

Создание локального репозитория пакета

1. На компьютере-источнике, подключенному к интернет, создаём папку для скачивания нужных для сборки нашего пакета deb-файлов и переходим в неё:

# mkdir repository
# cd repository

2. Получим список адресов пакетов, необходимых для установки данного пакета:

# apt-get -y --print-uris install libboost1.55-all-dev | grep "'" | cut -f1 -d' ' | tr -d "'" > packet-list.txt

3. Получим список пакетов build-dep.txt, необходимых для сборки указанного пакета:

# apt-get -s build-dep libboost1.55-all-dev | grep "^ " > build-dep.txt

4. Получим список адресов build-dep-urls.txt, откуда их можно скачать:

# apt-get -y --print-uris install `cat build-dep.txt` | cut -f1 -d' ' | tr -d "'" | sort | uniq > build-dep-urls.txt

5. Скачиваем найденные пакеты:

# wget -i paket-list.txt
# wget -i build-dep-urls.txt

Всё, локальный репозиторий готов.

Таким образом, для подготовки пакета мало скачать файлы, которые идут вместе с ним (их 56), необходимо скачать также и все пакеты, от которых он зависит в процессе установки (их 60). Зависимости для установки выясняются с помощью опции build-dep установщика apt-get. А опция ––print–uris вместе с командой install позволяет узнать адреса, по которым они находятся.

Установка пакета на другой машине в режиме оффлайн

Копируем все .deb файлы с компьютера-источника source_comp в стандартный каталог кэша пакетов apt на целевом компьютере. Если компьютеры доступны по сети, то это легко сделать с помощью команды scp:

# scp user@source_comp:/путь_до_repository/*.deb /var/cache/apt/archives/

где user — пользователь, под которым мы логинимся на компьютер-источник.

Заставим apt обновить информацию о своём локальном репозитории:

# apt-get update

После этого необходимо сначала установить зависимости для сборки требуемого пакета:

# apt-get build-dep libboost1.55-all-dev

а затем и сам пакет:

# apt-get install libboost1.55-all-dev

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Do NOT follow this link or you will be banned from the site!