Предположим, вы загрузили папку с исходным кодом, которая содержит как существующую /debian/
папку, так и /debian/control
файл.
Давайте предположим, что данный пакет не находится в официальном репозитории Debian, поэтому apt-get build-dep
его нельзя использовать.
Как разобрать Build-Depends:
строку?
Например, если строка будет читать Build-Depends: debhelper (>= 8), faketime
, есть ли какой-нибудь инструмент, control-parse debian/control build-depends
который будет эхо debhelper faketime
?
Особенно, когда это многолинейное?
Существуют ли инструменты Debian или есть один, чтобы написать собственный код для разбора этого?
источник
dpkg-checkbuilddeps
выводит только неудовлетворенные зависимости сборки. Смотрите мой ответ о разборе в общем случае.Синтаксический:
Использовать модули из
libdpkg-perl
(dpkg-checkbuilddeps
использует эти модули внутри)Добавьте следующие строки
print-build-deps
и запуститеprint-build-deps
в корневом каталоге исходного пакета.Смотрите также:
Монтаж:
Вы можете использовать
mk-build-deps
отdevscripts
:man mk-build-deps
говорит:источник
devscripts
иequivs
, сгенерируйте временный пакетmyproject-build-deps
и установите его. Это хорошо , если вы не собираетесь держать зависимости сборки времени на вашей машине: просто удалитьdevscripts
,equivs
иmyproject-build-deps
.Этот однострочный Perl может использоваться для анализа зависимостей от
debian-control
:или
источник
apt-get install $(perl -ne 'next if /^#/; $p=(s/^Build-Depends:\s*/ / or (/^ / and $p)); s/,|\n|\([^)]+\)//mg; print if $p' < debian/control)'
. Просто помните, что зависимости будут помечены как установленные вручную, поэтому они будут привязаны к среде сборки. Это не имеет значения в одноразовой среде сборки (chroot, docker), но если вы соберете в своей обычной среде, пакеты зависимостей во время сборки останутся. Они могут быть довольно большими для некоторых пакетов.