Извлечение deb пакетов с зависимостями в Ubuntu (Debian)

Давно искал способ для сборки пакетов deb установленных в Ubuntu (Debian) специально для обновления и установки на системах не имеющих доступа к интернету. Нашёл его здесь

Чтобы осуществить эту задачу нам необходимо:

1. Компьютер «донор» с предустановленной операционной системой Ubuntu (Debian) и установленными необходимыми вам deb пакетами.

2. Подключение к интернету (желательно высокоскоростное подключение в среднем количество загружаемых пакетов с репозитариев около 1 гб — это зависит от вашей сборки Ubuntu (Debian))

3. Место на локальном диске куда будут скидываться пакеты.

4. Права root (права администратора).
Для начала необходимо установить пакет dpkg-repack:

sudo apt-get install dpkg-repack


Специально для ленивых пишем sh скрипт с помощью редактора текста (конечно все это можно сделать прям из консоли терминала):

debex.sh (даем произвольное имя файлу какое вам нравится )

#!/bin/sh
mkdir DEB
cd DEB
dpkg --get-selections |   grep -v "deinstall" | grep -v "udev"  |  awk '{print $1}' | xargs dpkg-repack


Делаем этот sh-скрипт исполняемым как приложение и запускаем его:

sudo ~/debex.sh


Ждем выполнение скрипта...(под правами администратора он создаст директорию DEB (эту директорию вы можете указать самостоятельно в sh-скрипте) в корневом каталоге пользователя куда скинет все собранные пакеты — удалить данную директорию(папку и файлы) вы сможете так же с правами администратора).

Теперь можно поступить несколькими способами:

1. Взять программу APTonCD и создать диск-репозитария добавив данные пакеты для записи на диск.

2. Использовать пакеты для установки по отдельности(не есть хорошо так как система может не найти зависимых пакетов).

3. Создать локальный репозитарий:

cd ~/DEB
apt-ftparchive packages .| gzip > Packages.gz


Теперь установить пакеты на компьютере с Ubuntu (Debian) не составит особого труда. Достаточно добавить диск-репозитарий в список рипозитариев менеджера пакетов Synaptic — при установке нужного пакета Synaptic сам выстроит зависимости и подгрузит их из нашего диска-репозитария.

Комментарии (6)

RSS свернуть / развернуть
+
0
Пользо! Много раз видел, как люди безуспешно пытались решить эту задачу.
avatar

yababay

  • 09 декабря 2010, 16:17
+
0
Отличный топик!
Для массового внедрения Debian/Ubuntu
avatar

Sergei_T

  • 09 декабря 2010, 18:50
+
0
+1
avatar

Mihael

  • 10 декабря 2010, 11:24
+
0
интересно, я для внедрения ubuntu/debian использую apt-get autoclean (удаление левых пакетов из кэша) и aptoncd (готовый образ кидаю на флешку, монтирую на клиентах, либо кидаю файлы из образа на apache, если много клиентов), проблем не было
avatar

Travel

  • 10 декабря 2010, 22:17
+
0
эээ вот как раз в кэше бывают не все пакеты (что делать если ты стер кеш и ставить и перенакатывать весь софт тебе не охота да и возможности нет, так и система рабочая) по этому я и задался этим вопросом — на который нашел не плохой ответ
avatar

FREExLOADER

  • 11 декабря 2010, 09:47
+
0
тем более данная процедура самая быстрая не каких проблем она особых не вызвала — наверное это самый быстрый способ для выкачивания всех пакетов с зависимостями — без особых заморочек.
avatar

FREExLOADER

  • 11 декабря 2010, 09:52

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.