繁体   English   中英

创建一个debian包,将python脚本安装到Ubuntu中的/ usr / local / bin

[英]Create a debian package to install python scripts to /usr/local/bin in Ubuntu

我尝试创建一个python应用程序的debian包,如下所示:

  1. 写一个setup.py
  2. 通过stddeb生成debian文件夹
  3. 运行dpkg-buildpackage -b -rfakeroot -uc来构建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前缀。

提前致谢!

如果您只想在/usr/local/bin/安装文件,请删除setup.py因为它并不是真正需要的。 如果你在你的软件包中使用dh (你可以看看你是否在你的debian/rules文件中检查它。如果你没有使用它,你应该:-),那么你只需要提供dh_install (请参阅其联机帮助页 ),其中包含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 ,你应该在../全新的软件包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM