2015-08-28 37 views
3

我一直试图在我的机器上通过UL2.0 RPMs(下载链接!)在其catalogue page中提供IDAS GE安装。通过提供的RPM在CentOS 7虚拟机上安装IDAS的问题

我按照github的说明操作,但按照说明的“部署”部分的section 3开始物联网。如果我执行init_iotagent.sh,在这里我插了虚拟机的本地IP,我得到的错误:

log4cplus:ERROR No appenders could be found for logger (main). 
log4cplus:ERROR Please initialize the log4cplus system properly. 
HTTPFilter DESTRUCTOR 0 
HTTPFilter DESTRUCTOR 0 

此外,在开始IoTAgent作为服务的指令,它说:

After installing iot-agent-base RPM an init.d script can be found in this folder /usr/local/iot/init.d .

但是这个文件不存在,导致我相信IoTAgent没有从提供的RPM中正确安装。

另外,我找不到有关IoTAgent的日志文件,只有MongoDB的日志文件位于/usr/local/iot/mongodb-linux-x86_64-2.6.9/log/mongoc.log。

如果任何人都可以提供帮助,这将是一个好消息。另外,如果需要更多信息,请告诉我。

谢谢

回答

3

我建议你让GitHub的仓库,并建立从源头上RPM包,然后在你的CentOS安装。正如文档中所述:

注意:我将BUILD_TYPE更改为Release,因此我创建了发布目录。 GIT_VERSION和GIT_COMMIT不是最新的。

git clone https://github.com/telefonicaid/fiware-IoTAgent-Cplusplus.git 
cd fiware.... 
mkdir -p build/Release 
cd build/Release 
cmake -DGIT_VERSION=20527 -DGIT_COMMIT=217023407f25ed258043cfc00a46b6c05fb0b52c -DMQTT=ON -DCMAKE_BUILD_TYPE=Release ../../ 
make install 
make package 

软件包将在包/ Linux的/ RPM/

rpm -i iot-agent-base-xxxxxxx (xxxxxxx will be the numbers of the build) 
rpm -i iot-agent-ul-xxxxxx (xxxxxxx will be the numbers of the build) 

一旦与RPM的init.d中的文件是在安装:/usr/local/iot/init.d/iotagent

这是文件的内容:

#!/bin/bash 
# Copyright 2015 Telefonica Investigación y Desarrollo, S.A.U 
# 
# This file is part of fiware-IoTagent-Cplusplus (FI-WARE project). 
# 
# iotagent   Start/Stop iotagent 
# 
# chkconfig: 2345 99 60 
# description: iotagent 

. /etc/rc.d/init.d/functions 

PARAM=$1 
INSTANCE=$2 
USERNAME=iotagent 
EXECUTABLE=/usr/local/iot/bin/iotagent 
CONFIG_PATH=/usr/local/iot/config 

iotagent_start() 
{ 


    local result=0 
    local instance=${1} 

    if [[ ! -x ${EXECUTABLE} ]]; then 
     printf "%s\n" "Fail - missing ${EXECUTABLE} executable" 
     exit 1 
    fi 

    if [[ -z ${instance} ]]; then 
     list_instances="${CONFIG_PATH}/iotagent_*.conf" 
    else 
     list_instances="${CONFIG_PATH}/iotagent_${instance}.conf" 
    fi 

    for instance_config in ${list_instances} 
    do 
     local NAME 
     NAME=${instance_config%.conf} 
     NAME=${NAME#*iotagent_} 

     source ${instance_config} 

     local IOTAGENT_PID_FILE="/var/run/iot/iotagent_${NAME}.pid" 

     printf "Starting iotagent ${NAME}..." 

     status -p ${IOTAGENT_PID_FILE} ${EXECUTABLE} &> /dev/null 
     if [[ ${?} -eq 0 ]]; then 
      printf "%s\n" " Already running, skipping $(success)" 
      continue 
     fi 


     # Load the environment 
     set -a 
     source ${instance_config} 

     # Mandatory parameters 
     IOTAGENT_OPTS=" ${IS_MANAGER}    \ 
         -n ${IOTAGENT_SERVER_NAME} \ 
         -v ${IOTAGENT_LOG_LEVEL}  \ 
         -i ${IOTAGENT_SERVER_ADDRESS} \ 
         -p ${IOTAGENT_SERVER_PORT} \ 
         -d ${IOTAGENT_LIBRARY_DIR} \ 
         -c ${IOTAGENT_CONFIG_FILE}" 

     su ${USERNAME} -c "LD_LIBRARY_PATH=\"${IOTAGENT_LIBRARY_DIR}\" \ 
     ${EXECUTABLE} ${IOTAGENT_OPTS} & echo \$! > ${IOTAGENT_PID_FILE}" &> /dev/null 
     sleep 2 # wait some time to leave iotagent start 
     local PID=$(cat ${IOTAGENT_PID_FILE}) 
     local var_pid=$(ps -ef | grep ${PID} | grep -v grep) 
     if [[ -z "${var_pid}" ]]; then 
      printf "%s" "pidfile not found" 
      printf "%s\n" "$(failure)" 
      exit 1 
     else 
      printf "%s\n" "$(success)" 
     fi 
    done 

    return ${result} 

} 

iotagent_stop() 
{ 
    local result=0 
    local iotagent_instance=${1} 


    if [[ -z ${iotagent_instance} ]]; then 
     list_run_instances="/var/run/iot/iotagent_*.pid" 
    else 
     list_run_instances="/var/run/iot/iotagent_${iotagent_instance}.pid" 
    fi 

    if [[ $(ls -l ${list_run_instances} 2> /dev/null | wc -l) -eq 0 ]]; then 
     printf "%s\n" "There aren't any instance of IoTAgent ${iotagent_instance} running $(success)" 
     return 0 
    fi 

    for run_instance in ${list_run_instances} 
    do 

     local NAME 
     NAME=${run_instance%.pid} 
     NAME=${NAME#*iotagent_} 

     printf "%s" "Stopping IoTAgent ${NAME}..." 

     local RUN_PID=$(cat ${run_instance}) 
     kill ${RUN_PID} &> /dev/null 
     local KILLED_PID=$(ps -ef | grep ${RUN_PID} | grep -v grep | awk '{print $2}') 
     if [[ -z ${KILLED_PID} ]]; then 
      printf "%s\n" "$(success)" 
     else 
      printf "%s\n" "$(failure)" 
      result=$((${result}+1)) 
     fi 

     rm -f ${run_instance} &> /dev/null 

    done 
    return ${result} 
} 

iotagent_status() 
{ 
    local result=0 
    local iotagent_instance=${1} 

    if [[ -z ${iotagent_instance} ]]; then 
     list_run_instances="/var/run/iot/iotagent_*.pid" 
    else 
     list_run_instances="/var/run/iot/iotagent_${iotagent_instance}.pid" 
    fi 

    if [[ $(ls -l ${list_run_instances} 2> /dev/null | wc -l) -eq 0 ]]; then 
     printf "%s\n" "There aren't any instance of IoTAgent ${iotagent_instance} running." 
     return 1 
    fi 

    for run_instance in ${list_run_instances} 
    do 

     local NAME 
     NAME=${run_instance%.pid} 
     NAME=${NAME#*iotagent_} 

     printf "%s\n" "IoTAgent ${NAME} status..." 
     status -p ${run_instance} ${NODE_EXEC} 
     result=$((${result}+${?})) 

    done 

    return ${result} 
} 


case ${PARAM} in 

    'start') 
     iotagent_start ${INSTANCE} 
     ;; 

    'stop') 
     iotagent_stop ${INSTANCE} 
     ;; 

    'restart') 
     iotagent_stop ${INSTANCE} 
     iotagent_start ${INSTANCE} 
     ;; 

    'status') 
     iotagent_status ${INSTANCE} 
     ;; 
esac 

,并将日志文件是在/ tmp /:

IoTAgent-IoTPlatform.log  
IoTAgent.log  
IoTAgent-Manager.log 

希望这可以帮助你。

+1

我在两台机器上试了这个,并且两个都在'make install'失败,因为它试图建立mongo驱动程序。 Boost和log4cplus构建正确,但由于某些原因,mongo驱动程序失败。我应该在另一个问题上发布这个细节吗?使输出: '[9%]关于“蒙戈驱动” [10%]没有关于“蒙戈驱动器”的“蒙戈驱动器” /bin中 [10%]表演生成步骤配置步骤执行更新步骤/ sh:scons:命令未找到 make [2]:*** [第三方/ mongo-driver/src/mongo-driver-stamp/mongo-driver-build]错误127 make [1]:*** [ CMakeFiles/mongo-driver.dir/all]错误2 make:*** [all]错误2' –

+1

它错过了scons。刚做'yum安装scons'。正在编译。 –