Как я заставляю debuild помещать двоичный файл в/usr/bin?

Я недавно пытался упаковать маленькую утилиту Python, чтобы поставить мой PPA, и я почти заставил его работать, но у меня есть проблемы в том, чтобы заставлять пакет установить двоичный файл (chmod +x сценарий Python) под /usr/bin. Вместо этого это устанавливает под /. У меня есть эта структура каталогов-> http://db.tt/0KhIYQL.

Мой Make-файл пакета похож так:

TARGET=usr/bin/txtrevise

make:
      chmod +x $(TARGET)

install:
      cp -r $(TARGET) $(DESTDIR)

Я использовал $(DESTDIR), насколько я понимаю поместить файл под debian subdir, когда debuild выполняется.

У меня есть txtrevise сценарий, мой исполняемый файл, под usr/bin папка под корнем моего пакета. Я также имею Makefile и usr/bin/textrevise в моем tarball: txtrevise_1.1.original.tar.gz.

Однако, когда я создаю это, и взгляд в пакете Debian, txtrevise всегда в корне пакета вместо под usr/bin и будет установлен на / вместо /usr/bin.

Как я могу добраться debuild положить сценарий на правильное место?

Спасибо. Любая справка значительно ценилась бы. Я озадачен.

4
задан 24 June 2011 в 17:20

1 ответ

DESTDIR переменная среды определяется в стандартах кодирования GNU:

DESTDIR переменная, предварительно ожидаемая к каждому установленному конечному файлу.

...

Если Ваше действие по установке обычно устанавливало бы /usr/local/bin/foo и /usr/local/lib/libfoo.a, затем установка, вызванная как в примере выше, установила бы /tmp/stage/usr/local/bin/foo и /tmp/stage/usr/local/lib/libfoo.a вместо этого.

Предварительно ожидая переменная DESTDIR к каждой цели таким образом предусматривает "подготовленные установки", куда установленные файлы не помещаются непосредственно в их ожидаемое местоположение, но вместо этого копируются во временное местоположение (DESTDIR). Однако установленные файлы поддерживают свою относительную структуру каталогов, и любые встроенные имена файлов не будут изменены.

Это - способ, которым debhelper сценарии ожидают, что Ваш make-файл будет вести себя. Таким образом, если Вы хотите, чтобы Ваша программа появилась в /usr/bin когда пакет установлен, затем необходимо скопировать программу в $(DESTDIR)/usr/bin (создание, что структура каталогов, если это не существует).

3
ответ дан 1 December 2019 в 10:12

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

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