LINUX.ORG.RU

Установка зависимостей deb пакета без интернета

 ,


0

1

Привет всем, есть deb пакет наш, у него есть одна зависимость, есть задача заставить его устанавливается без интернета, зависимость скачал с помощью

sudo apt install --download-only <имя пакета>

в /var/cache/apt/archives/ получил deb пакеты, запихал их в наш пакет. Теперь вопрос, как их установить после установки нашего deb пакета? Желательно минимум ручных действий, то есть в идеале пользователь написал

sudo apt install ./<имя пакета>

и все установилось. Пробовал сделать установку через скрипт postinst, но получаю взаимную блокировку dpkg. Может быть вообще не правильно делаю, и есть другой способ? Спасибо.


в /var/cache/apt/archives/ получил deb пакеты, запихал их в наш пакет.

Что это значит? В содержимом одного deb пакета не должно быть других deb пакетов.

Пробовал сделать установку через скрипт postinst, но получаю взаимную блокировку dpkg.

Всё правильно, одновременно может ставиться только один deb пакет.

Если уж так хочется - передавай свой deb пакет, в котором только твоё ПО и прочие DEB пакеты и команду установки

dpkg -i зависимость1.deb зависимость2.deb ... зависимостьN.deb твой_deb_пакет.deb

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

Другой вариант - собирай свою программу, что помещаешь в deb пакет в статически собранном виде, чтобы не нужны были внешние библиотеки.

kostik87 ★★★★★
()

то есть в идеале пользователь написал

sudo apt install ./<имя пакета>

и все установилось.

sudo apt install ./*.deb

?

Rootlexx ★★★★★
()

В пост-установочный скрипт поместить команду установки sudo dpkg -i ...

PunkPerson
()

Теперь вопрос, как их установить после установки нашего deb пакета?

Странный вопрос! Если ваш пакет зависит от других пакетов, которые не установлены в системе, то он не установится. Сначала установить зависимости, потом пакет, от них зависящий. Ну или в одной команде устанавливать все зависимости и ваш пакет.
Например, поместить ваш пакет и его зависимости в один каталог и устанавливать командой install ./*.deb.
Или почитать про утилиту apt-offline

sigurd ★★★★★
()

deb-пакеты должны быть отдельными файлами, а что именно из них устанавливать - должен решать пакетный менеджер а не твои скрипты. Пользователь кладёт всё нужное в одну директорию и пишет apt install ./файл.deb

firkax ★★★★★
()

есть задача заставить его устанавливается без интернета

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

Saakx
()

как уже сказали - все deb пакеты скачай, на целевой ОС помести их все в один каталог и подай команду: apt install ./*.deb

x905 ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.