从 iso 安装 debian 9 时未找到 Python 命令

从 iso 安装 debian 9 时未找到 Python 命令

我遇到以下问题:我正在从带有附加软件包的自定义创建的 iso 运行 debian 9 安装。其中一个包在 postinst 脚本中运行此包中定义的 python 命令,但 postinst 脚本失败并出现错误:

my-command command not found

因此所有软件安装步骤都会失败。 my-package.postinst:

#!/bin/bash
my-command

当 postinst 被注释掉时,所有过程都会成功完成。即使进程在重新启动后失败( dpkg -l 在状态 iF 中返回 my_package),也可以从命令行运行 my-command。
我猜问题出在运行 my-package.postinst 期间未正确安装的 python 软件包中,但即使将它们移动到 pre-depend 也没有帮助。
有什么想法或方向吗?任何帮助将不胜感激。
提前谢谢你,维罗妮卡

自定义 Debian 9 iso 光盘是使用 simple-cdd 创建的。

pkg-root/DEBIAN/my-package 的控制:

Package: my-package
Version: 1.0
Priority: optional
Architecture: all
Depends: geoip-bin, openssh-server, ntp, sshguard, lsb-release, vim, less, nload, iotop, logrotate, passwd, python-requests
Pre-depends: python, apt-transport-https, iproute2, python-setuptools

我的包/setup.py

from setuptools import setup

setup(
    name='my-package',
    version='1.0',
    namespace_packages=['MyModules', 'MyModules.System'],
    packages=['MyModules.System.Tools'],
    entry_points={
        "console_scripts": [
            "my-command = MyModules.System.Tools:cli_my_command"
        ]
    },

    license='MyLicense'
)

在打包过程中,运行以下命令来创建相关的entry_points、dependency_links、namespace_packages:

 python setup.py install -f --install-layout=deb --prefix=/usr/local --root=pkg-root

答案1

由于所有 python 软件包均已正确安装,导致找不到 cli 命令的唯一问题是在 PATH 变量中 - 它在此步骤中不包含 my-command 的位置(/usr/local/bin - 似乎是稍后添加的) 。解决方案是export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin在运行之前在 my-package.postinst 脚本中添加以下内容my-command

相关内容