2016-06-26 27 views
0

只是想問一下檢查我們opscenter rpm的可能性。開始在OpsCenter找不到python解釋器。 Abort - Opscenter

[[email protected]]$ sudo /etc/init.d/opscenterd start 
Starting Cassandra cluster manager opscenterd 
Starting opscenterdNo python interpreter found. Abort. 
[[email protected] start-stop-scripts]$ cd   [FAILED] 

我看到Python安裝時,我們得到了這個錯誤,但不知道如何使在OpsCenter點就在這個位置

[[email protected] ~]$ python -V ; which python 
Python 2.7.1 
/opt/mybox/pkg/python/bin/python 

的OpsCenter安裝上的/ opt/myBox上/包裝/ OpsCenter中也有一些變數,我看到在位於斌在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

在終端中運行'which python2.7'時會打印什麼? (/ usr/kerberos/bin:/ opt/mybox/pkg/bin)/ usr/lib/bin/python –

+0

[opscenter @ mybox〜] $ which python 2.7 /opt/mybox/pkg/python/bin/python /python/bin:/ usr/local/bin:/ bin:/ usr/bin:/ opt/mybox/pkg/opscenter/bin:/ sbin:/ usr/local/bin:/ usr/bin) –

+0

將一個空格在'python'和'2.7'之間,所以'which'認爲它們是兩個獨立的命令。請再試一次,不要插入空格,並將結果粘貼到您的問題中,以代碼塊形式保存。 –

回答

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是正確的,蟒蛇不是用戶(root,看來)這是開始的OpsCenter的路徑上。