次の問題があります。追加パッケージでカスタム生成ISOでDebian 9インストールを実行しています。パッケージの1つはpostinstスクリプトでこのパッケージで定義されているpythonコマンドを実行しますが、postinstスクリプトはエラーで失敗します。
my-command command not found
したがって、すべてのソフトウェアのインストール手順が失敗します。 私のパッケージ.postinst:
#!/bin/bash
my-command
postinst がコメントアウトされると、すべての手順が正常に完了します。再起動後にプロセスが失敗した場合でも、コマンドラインからMy-commandを実行できます(dpkg -lはiF状態でmy_packageを返します)。
my-package.postinstの実行中に正しくインストールされていないPythonパッケージに問題があるようですが、事前依存関係に移動しても役に立ちません。
どんなアイデアや方向がありますか?どんな助けでも大変感謝します。
よろしくお願いします、ベロニカ
カスタム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
mypackage/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'
)
パッケージングプロセス中に次のコマンドを実行して、関連するエントリポイント、依存関係_リンク、および名前空間_パッケージを作成します。
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
。