Ответ 1
Если вы хотите избежать создания локального репозитория APT, вы можете сделать:
dpkg -i mypackage.deb
apt-get install --fix-missing
Если вы хотите создать локальный репозиторий, вы можете использовать reprepro для этого.
Я хочу сделать простой пакет Debian для установки простого инструмента, который зависит от библиотек Qt4.
В контрольном файле я определил, что это зависит от библиотек Qt4, но к тому времени, когда я тестирую пакет, он говорит, что зависимость не может быть достигнута.
Вопрос:
Как сделать так, чтобы Debian триггер apt устанавливал зависимости?
Не могу найти документацию, однако я знаю, что это делает apt-get.
Если вы хотите избежать создания локального репозитория APT, вы можете сделать:
dpkg -i mypackage.deb
apt-get install --fix-missing
Если вы хотите создать локальный репозиторий, вы можете использовать reprepro для этого.
Если вы установите его через dpkg
, это не сработает, потому что dkpg
не знает, где найти дополнительные зависимости. Вы можете сделать это через apt-get
, если вы создадите свое собственное репо, но это отнимает много времени в первый раз (это не сложно, просто что-то "новое" в первый раз, когда требуется некоторое время для изучения).
С другой стороны, и решение, которое вы, вероятно, ищете, - gdebi
(возможно, вам потребуется его установить: apt-get install gdebi-core
). Это инструмент, который проверяет зависимости для пакета и вызывает apt-get
для их извлечения и установки, а затем вызывает dpkg
для установки вашего пакета.
Если вы создаете пакет 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 кажется подходящим местом для начала поиска.
В @textshell в этот ответ:
начиная с apt 1.1 (доступно в Xenial (16.04), растянуть)
apt install
также позволяет локальные файлы:sudo apt install ./foo-1.2.3.deb
Так намного проще и чище.
Это также установит зависимости, как обычные apt install
или apt-get install
.
Один из способов - создать локальный репозиторий пакетов на вашем компьютере и добавить его в /etc/apt/sources.list. Затем вы можете установить пакет из своего локального репозитория с помощью apt-get и автоматически определить зависимости.
Вероятно, это более простой способ сделать это, но я не знаю, что бы это было.