Существует ли надлежащая процедура для включения $PREFIX (и другие переменные) в debian/package.install?

Я пытаюсь преобразовать существующий debian/rules файл пакета для использования debhelper. Текущий файл правил использует правила, которые указывают префикс установки (через переменную).

Есть ли способ для меня включать/указывать префикс (и возможно другие переменные, как, обозначающие архитектуру) в .install файл?

Как пример, если основано 64-разрядная машина с набором префикса к /opt, Я хотел бы смочь установить файлы пакета на ${PREFIX}/package/${ARCH}.

2
задан 24 June 2015 в 20:32

2 ответа

Таким образом, похоже, что файлы в debian/должны быть максимально агностиком архитектуры и стандартом. Это означает заботиться об архитектурно-зависимых шагах во время изготовления и делать 'стандартные' файлы (двоичные файлы, библиотеки) доступный для дополнительный файлы в/debian.

1
ответ дан 2 December 2019 в 05:04

Как упомянул Кевин, я решил использовать правило 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

0
ответ дан 9 January 2021 в 20:46

Другие вопросы по тегам:

Похожие вопросы: