如何进行 debuild 将二进制文件放入 /usr/bin 中?

Sam*_*ySP 6 packaging

我最近一直在尝试打包一个小型 Python 实用程序来放在我的 PPA 上,并且我几乎已经让它可以工作了,但是我在使包在/usr/bin. 相反,它安装在/. 我有这个目录结构 - > http://db.tt/0KhIYQL

我的包Makefile是这样的:

TARGET=usr/bin/txtrevise

make:
      chmod +x $(TARGET)

install:
      cp -r $(TARGET) $(DESTDIR)
Run Code Online (Sandbox Code Playgroud)

据我了解,我已经使用它在运行时$(DESTDIR)将文件放置在debian子目录下。debuild

usr/bin我的包根目录下的文件夹下有 txtrevise 脚本,我的可执行文件。我的 tarball 中还有 和Makefileusr/bin/textrevisetxtrevise_1.1.original.tar.gz。

然而,当我构建这个并查看 Debian 软件包内部时,txtrevise 始终位于软件包的根目录而不是下面usr/bin,并且将安装到/而不是/usr/bin.

我怎样才能将debuild脚本放在正确的位置?

谢谢。任何帮助将不胜感激。我很困惑。

Jam*_*dge 4

环境变量在GNU 编码标准DESTDIR中定义:

DESTDIR是每个已安装目标文件前面的变量。

...

如果您的安装步骤通常会安装 /usr/local/bin/fooand /usr/local/lib/libfoo.a,那么如上例中调用的安装将安装 /tmp/stage/usr/local/bin/fooand /tmp/stage/usr/local/lib/libfoo.a

以这种方式将变量添加DESTDIR到每个目标提供了“分阶段安装”,其中安装的文件不会直接放置到其预期位置,而是复制到临时位置 ( DESTDIR)。但是,已安装的文件保留其相对目录结构,并且任何嵌入的文件名都不会被修改。

这是 debhelper 脚本期望 make 文件的行为方式。/usr/bin因此,如果您希望程序在安装包时出现,那么您应该将该程序复制到$(DESTDIR)/usr/bin(如果不存在则创建该目录结构)。