файл правил debian сделать символическую ссылку - PullRequest
13 голосов
/ 01 апреля 2012

Я создаю небольшой пакет deb для установки нескольких файлов.Некоторые из них будут расположены в / usr / lib / mypackage /, и я хочу создать символическую ссылку из / usr / lib / mypackage / mybin в / usr / bin / mybin

Для / usr / lib /Папка mypackage Я использую mypackage.install и копирую туда файлы.Кажется, это работает нормально.

Тем не менее, для создания моей символической ссылки я понимаю, что мне нужно использовать файл правил debian, и я не уверен, что делать дальше, вот строка, которую мне нужно добавить, где она должна бытьдобавил и как?Спасибо

ln -s /usr/lib/mypackage/mybin /usr/bin/mybin

1 Ответ

22 голосов
/ 08 мая 2012

Лучший способ - использовать dh_link, часть комплекта debhelper.См. man dh_link для деталей его работы.Как вы можете видеть из этого, вы, вероятно, хотите что-то вроде следующего в файле с именем debian/$mypackage.links:

/usr/lib/mypackage/mybin  /usr/bin/mybin

Где вы должны поместить dh_link в ваш debian/rules, если его там еще нет, зависит от того, как вы делаете свой пакет.Если вы используете Debhelper, то ваш debian/rules, вероятно, уже позаботился о dh_link (хотя, если вы используете классический Debhelper, строка dh_link может быть закомментирована, и вам нужно раскомментировать ее).Использование счетчика Debhelper в более новом стиле (dh) или CDBS-plus-debhelper (include /usr/share/cdbs/1/rules/debhelper.mk) также учитывается здесь;они позаботятся о dh_link для вас.

Но если вы не используете Debhelper и не хотите запускаться, то dh_link, вероятно, не вариант.В этом случае вам просто нужно убедиться, что вы соответствуете Политике Debian по теме (то есть ваша символическая ссылка должна быть относительной, а не абсолютной).Возможно, вы захотите сделать ссылку в своей цели debian/rules build.Пример:

build:
    # ... other stuff ...
    mkdir -p debian/$mypackage/usr/bin
    ln -s ../lib/mypackage/mybin debian/$mypackage/usr/bin/mybin
...