Я недавно пытался упаковать маленькую утилиту 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
положить сценарий на правильное место?
Спасибо. Любая справка значительно ценилась бы. Я озадачен.
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
(создание, что структура каталогов, если это не существует).