Как сделать так, чтобы пакет Debian устанавливал зависимости?

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

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

Вопрос:

Как сделать так, чтобы Debian триггер apt устанавливал зависимости?

Не могу найти документацию, однако я знаю, что это делает apt-get.

Ответ 1

Если вы хотите избежать создания локального репозитория APT, вы можете сделать:

dpkg -i mypackage.deb
apt-get install --fix-missing

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

Ответ 2

Если вы установите его через dpkg, это не сработает, потому что dkpg не знает, где найти дополнительные зависимости. Вы можете сделать это через apt-get, если вы создадите свое собственное репо, но это отнимает много времени в первый раз (это не сложно, просто что-то "новое" в первый раз, когда требуется некоторое время для изучения).

С другой стороны, и решение, которое вы, вероятно, ищете, - gdebi (возможно, вам потребуется его установить: apt-get install gdebi-core). Это инструмент, который проверяет зависимости для пакета и вызывает apt-get для их извлечения и установки, а затем вызывает dpkg для установки вашего пакета.

Ответ 3

Если вы создаете пакет Debian, вы определяете его зависимости в файлах управления каталогами debian/; Я полагаю, что debian/control принимает директивы Depends: для этой цели.

Я не знаю детали слишком четко, сам, но есть инструкции в http://www.debian.org/doc/manuals/maint-guide/; в частности, http://www.debian.org/doc/manuals/maint-guide/dreq.en.html#control кажется подходящим местом для начала поиска.

Ответ 4

В @textshell в этот ответ:

начиная с apt 1.1 (доступно в Xenial (16.04), растянуть) apt install также позволяет локальные файлы:

sudo apt install ./foo-1.2.3.deb

Так намного проще и чище.

См. release ОБЬЯВЛЕНИЕ

Это также установит зависимости, как обычные apt install или apt-get install.

Ответ 5

Один из способов - создать локальный репозиторий пакетов на вашем компьютере и добавить его в /etc/apt/sources.list. Затем вы можете установить пакет из своего локального репозитория с помощью apt-get и автоматически определить зависимости.

Вероятно, это более простой способ сделать это, но я не знаю, что бы это было.