Я пытаюсь преобразовать существующий debian/rules файл пакета для использования debhelper
. Текущий файл правил использует правила, которые указывают префикс установки (через переменную).
Есть ли способ для меня включать/указывать префикс (и возможно другие переменные, как, обозначающие архитектуру) в .install
файл?
Как пример, если основано 64-разрядная машина с набором префикса к /opt
, Я хотел бы смочь установить файлы пакета на ${PREFIX}/package/${ARCH}
.
Таким образом, похоже, что файлы в debian/должны быть максимально агностиком архитектуры и стандартом. Это означает заботиться об архитектурно-зависимых шагах во время изготовления и делать 'стандартные' файлы (двоичные файлы, библиотеки) доступный для дополнительный файлы в/debian.
Как упомянул Кевин, я решил использовать правило dh_override_install
:
dh_override_install:
ARCH=`uname -p`; \
if test "$${ARCH}" != "x86_64"; then \
sed -i -e "s/x86_64/$${ARCH}/g" debian/*.install; \
fi
dh_install
Не Не забывайте, что файл debian/rules
является makefile
, а это значит, что вы должны иметь табуляции для отступов.
$$
должен экранировать $
, чтобы ссылаться на переменную, которую я определяю в оболочке, а не на переменную make
.
Поскольку мои файлы по умолчанию предназначены для x86_64
, в этом случае я пропускаю sed
. Вот пример моих файлов .install
:
usr/include/uv.h usr/include/
usr/include/uv/* usr/include/uv/
usr/lib/x86_64-linux-gnu/libuv.a usr/lib/x86_64-linux-gnu/
usr/lib/x86_64-linux-gnu/pkgconfig/libuv.pc usr/lib/x86_64-linux-gnu/pkgconfig/
И причина, по которой мне нужно включить архитектуру, чтобы выбрать только некоторые файлы, заключается в том, что у меня есть версия для разработчиков (libuv.a
) и версию среды выполнения (libuv.so
). У меня есть еще один пакет, в котором я могу обойтись без него, потому что я могу сразу скопировать всю папку usr/lib
. Здесь я должен был иметь поддержку архитектуры. К сожалению, упаковщик Debian еще не знает об этом. Это было бы очень полезно в этой ситуации, и я думаю, что это происходит постоянно...
Источник: libuv1/debian/rules