只想询问检查我们的opscenter rpm的可能性。我们在启动opscenter时遇到此错误
[opscenter@mybox]$ sudo /etc/init.d/opscenterd start
Starting Cassandra cluster manager opscenterd
Starting opscenterdNo python interpreter found. Abort.
[opscenter@mybox start-stop-scripts]$ cd [FAILED]
我看到python已安装,但不确定如何让opscenter将其指向此位置
[opscenter@mybox ~]$ python -V ; which python
Python 2.7.1
/opt/mybox/pkg/python/bin/python
Opscenter安装在/ opt / mybox / pkg / opscenter上,我在bin中的opscenter文件中看到了一些变量
# get around sudo vagaries in setting $HOME
if [ "x$OPSC_HOME" = "x" ]; then
if [ $is_mac = 1 ]; then
OPSC_HOME="/Users/$USER"
else
OPSC_HOME=$(getent passwd $(id -u) | cut -d ':' -f 6)
fi
fi
export HOME=$OPSC_HOME
cd "$(dirname "$0")"/../
if [ $(uname -m) = "x86_64" ]; then
PY_ARCH="amd64"
else
PY_ARCH="i386"
fi
# we support python2.6-2.7
PYVERSIONS="2.6 2.7"
[ -z "$PYTHON" ] && \
for i in $PYVERSIONS; do
which python$i > /dev/null 2>&1 && PYTHON=$(which python$i)
done
[ -n "$PYTHON" ] || {
echo "No python interpreter found. Abort." >&2
exit 3
}
PY_VER=$($PYTHON -c "import platform; v = platform.python_version(); print v[:v.index('.', 2)]")
if [ $is_mac = 1 ]; then
PY_DISTRO="./lib/py-osx/${PY_VER}/amd64" # always use 64bit for OS X
elif [ -f "/etc/system-release" ]; then
# This branch is for the Amazon Linux distribution
# We will use the highest level "VER" available because Amazon Linux
# does not use version numbers like RHEL and Centos
VER=`ls -1 ./lib/py-redhat/${PY_VER}/ | sort -n | tail -n 1`
PY_DISTRO="./lib/py-redhat/${PY_VER}/shared/${PY_ARCH}:./lib/py-redhat/${PY_VER}/${VER}/${PY_ARCH}"
elif [ -f "/etc/redhat-release" ]; then
VER=`rpm -q centos-release --qf %{VERSION}`
if [ 1 -eq $? ]; then
VER=`rpm -q redhat-release --qf %{VERSION}` # RHEL 5
if [ 1 -eq $? ]; then
VER=`rpm -q redhat-release-server --qf %{VERSION}` # RHEL 6
if [ 1 -eq $? ]; then
VER=`rpm -q enterprise-release --qf %{VERSION}` # Oracle Linux
fi
fi
fi
VER=`echo $VER | cut -b 1`
PY_DISTRO="./lib/py-redhat/${PY_VER}/shared/${PY_ARCH}:./lib/py-redhat/${PY_VER}/${VER}/${PY_ARCH}"
else
PY_DISTRO="./lib/py-debian/${PY_VER}/${PY_ARCH}"
fi
export PYTHONPATH="./src:\
/usr/lib/python${PY_VER}/site-packages:\
./src/lib/python${PY_VER}/site-packages:\
./lib/python${PY_VER}/site-packages:\
./lib/py:\
${PY_DISTRO}:\
${PYTHONPATH}:"
答案 0 :(得分:1)
不确定如何让opscenter将其指向此位置
由于这是您的具体问题,我将在此作为答案回应我的评论。
您可以在运行opscenter init脚本之前将PYTHON
设置为python解释器。这将绕过python 2.6或2.7的检查(通过-z
测试),并允许您告诉脚本python在哪里。
$ export PYTHON=/opt/mybox/pkg/python/bin/python
$ sudo /etc/init.d/opscenterd start
至于发生这种情况的根本原因,我怀疑PM 2Ring是正确的,并且python不在用户的路径上(根,似乎)正在启动OpsCenter。