Fiware 通过提供的RPM在CentOS 7虚拟机上安装IDA时出现问题
我一直在尝试通过its中提供的(下载链接!)在我的机器上的CentOS 7虚拟机中安装IDAS GE 我按照上的说明进行操作,但我在按照说明的部署部分启动物联网时遇到了困难。如果我执行init_iotagent.sh,在其中插入VM的本地IP,我会得到错误:Fiware 通过提供的RPM在CentOS 7虚拟机上安装IDA时出现问题,fiware,iot,Fiware,Iot,我一直在尝试通过its中提供的(下载链接!)在我的机器上的CentOS 7虚拟机中安装IDAS GE 我按照上的说明进行操作,但我在按照说明的部署部分启动物联网时遇到了困难。如果我执行init_iotagent.sh,在其中插入VM的本地IP,我会得到错误: log4cplus:ERROR No appenders could be found for logger (main). log4cplus:ERROR Please initialize the log4cplus system pr
log4cplus:ERROR No appenders could be found for logger (main).
log4cplus:ERROR Please initialize the log4cplus system properly.
HTTPFilter DESTRUCTOR 0
HTTPFilter DESTRUCTOR 0
此外,在启动IoAgent作为服务的说明中,说明如下:
安装iot代理基本RPM后,可以在中找到init.d脚本
此文件夹为/usr/local/iot/init.d
但是这个文件不存在,这让我相信IoAgent没有从提供的RPM中正确安装
另外,我找不到关于IoAgent的日志文件,只有MongoDB的日志文件位于/usr/local/iot/MongoDB-linux-x86_64-2.6.9/log/mongoc.log
如果有人能帮忙,我将不胜感激。此外,如果需要更多信息,请让我知道
谢谢我建议您获取GitHub存储库,从源代码构建RPM,然后将其安装到CentOS中。如文件中所述: 注意:我将BUILD_类型更改为Release,因此创建了Release dir。 GIT_版本和GIT_提交不是最新版本
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
软件包的格式为pack/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
希望这能对您有所帮助。我在两台机器上尝试了这一功能,这两台机器在“make install”中失败,因为它正在尝试构建mongo驱动程序。Boost和log4cplus构建正确,但由于某些原因mongo驱动程序失败。我应该在另一个问题上发布这个细节吗?生成输出:
[9%]为“mongo驱动程序”执行更新步骤[10%]没有为“mongo驱动程序”执行配置步骤[10%]为“mongo驱动程序”执行生成步骤/bin/sh:scons:未找到命令生成[2]:***[第三方/mongo驱动程序/src/mongo驱动程序戳/mongo驱动程序生成]错误127生成[1]:***[CMakeFiles/mongo driver.dir/all]错误2生成:**[all]错误2
缺少SCON。刚刚“yum安装了scons”。它正在编译。