我尝试按如下方式创建一个python应用程序的debian包:
setup.py就像
#!/usr/bin/env python
from distutils.core import setup
setup(name='foo',
version='1.0.0',
description='Foo example',
author='Kuan-Kai Chiu',
author_email='ntu.kchiu@gmail.com',
scripts=['src/foo.py']
)
如何将foo.py安装到 / usr / local / bin ,而不是安装到 / usr / bin ?我知道在运行 python setup.py install 时有一个选项 - install-scripts = / usr / local / bin ,但是我必须对我的python应用程序进行debianize,它似乎无法指定install-scripts前缀。
提前致谢!
答案 0 :(得分:3)
如果您只想在/usr/local/bin/
中安装文件,请删除setup.py
,因为它不是真正需要的。如果您在包中使用dh
(您可以查看是否通过检查它是否在debian/rules
文件中调用。如果您不使用它,您应该:-),那么你'只需向dh_install
(请参阅其manpage)提供install
文件。此文件的语法非常简单,您必须指定要安装的 ,以及其中。您可以通过在程序包的根目录中发出以下命令来执行此操作:
$ echo "src/foo.py usr/local/bin" > debian/install
现在,由于您要在/usr/local/
下安装脚本,这违反了Debian政策,其中一个dh_*
工具将失败。此工具为dh_usrlocal
。修复非常简单。我们只需告诉debian/rules
我们不想运行它,我们可以通过覆盖它的行为来做到这一点。这是您的最终debian/rules
看起来的样子:
#!/usr/bin/make -f
# -*- makefile -*-
%:
dh $@
override_dh_usrlocal:
就是这样。运行dpkg-buildpackage
,您应该在../
中获得全新的新软件包。