gpt4 book ai didi

python - 创建debian包,将python脚本安装到Ubuntu的/usr/local/bin下

转载 作者:行者123 更新时间:2023-11-30 23:29:49 24 4
gpt4 key购买 nike

我尝试创建 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 (参见其 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你应该在../中有你的新包.

关于python - 创建debian包,将python脚本安装到Ubuntu的/usr/local/bin下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20963023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com