EOS nodeos 启动时 boost::filesystem::current_path: No such file or directory 错误

yufei       6 年 前       1415

昨天更新 EOSIO 到 1.5.0 ,然后今早启动的时候就报错了,启动命令如下

nodeos -e -p eosio --plugin eosio::producer_plugin --plugin eosio::history_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --plugin eosio::http_plugin -d /Users/yufei/Developer/eos/data --config-dir /Users/yufei/Developer/eos/data/config --http-server-address=0.0.0.0:8888 —-access-control-allow-origin='*' --contracts-console --http-validate-host=false --filter-on='*'

错误显示如下

info  2018-12-09T00:05:43.632 thread-0  chain_plugin.cpp:333          plugin_initialize    ] initializing chain plugin
warn  2018-12-09T00:05:43.632 thread-0  chain_plugin.cpp:700          plugin_initialize    ] 13 N5boost10filesystem16filesystem_errorE: boost::filesystem::current_path: No such file or directory
rethrow boost::filesystem::current_path: No such file or directory: 
    {"what":"boost::filesystem::current_path: No such file or directory"}
    thread-0  chain_plugin.cpp:700 plugin_initialize
error 2018-12-09T00:05:43.632 thread-0  main.cpp:129                  main                 ] 13 N5boost10filesystem16filesystem_errorE: boost::filesystem::current_path: No such file or directory
rethrow boost::filesystem::current_path: No such file or directory: 
    {"what":"boost::filesystem::current_path: No such file or directory"}
    thread-0  chain_plugin.cpp:700 plugin_initialize

发生这个错误的原因是因为老版本的还存在,而且部分命令和插件使用的是老版本。

因此,修复方法也很简单,只要执行以下命令即可

sudo ./scripts/clean_old_install.sh

然后就可以愉快的启动了~~~

然后我们再看看这个 clean_old_install.sh 脚本文件,内容如下

if [ -d "/usr/local/include/eosio" ]; then
   printf "\n\tOld eosio install needs to be removed.\n\n"
   printf "\tDo you wish to remove this install? (requires sudo)\n"
   select yn in "Yes" "No"; do
      case $yn in
         [Yy]* )
            if [ "$(id -u)" -ne 0 ]; then
               printf "\n\tThis requires sudo, please run ./scripts/clean_old_install.sh with sudo\n\n"
               exit -1
            fi
            pushd /usr/local &> /dev/null

            pushd include &> /dev/null
            rm -rf appbase chainbase eosio eosio.system eosiolib fc libc++ musl &> /dev/null
            popd &> /dev/null

            pushd bin &> /dev/null
            rm cleos eosio-abigen eosio-applesdemo eosio-launcher eosio-s2wasm eosio-wast2wasm eosiocpp keosd nodeos &> /dev/null
            popd &> /dev/null

            libraries=(libeosio_testing
            libeosio_chain
            libfc
            libbinaryen
            libWAST
            libWASM
            libRuntime
            libPlatform
            libIR
            libLogging
            libsoftfloat
            libchainbase
            libappbase
            libbuiltins)
            pushd lib &> /dev/null
            for lib in ${libraries[@]}; do
               rm ${lib}.a ${lib}.dylib ${lib}.so &> /dev/null
            done
            popd &> /dev/null

            pushd etc &> /dev/null
            rm eosio &> /dev/null
            popd &> /dev/null

            pushd share &> /dev/null
            rm eosio &> /dev/null
            popd &> /dev/null

            pushd usr/share &> /dev/null
            rm eosio &> /dev/null
            popd &> /dev/null

            pushd var/lib &> /dev/null
            rm eosio &> /dev/null
            popd &> /dev/null

            pushd var/log &> /dev/null
            rm eosio &> /dev/null
            popd &> /dev/null

            popd &> /dev/null
            break;;
         [Nn]* )
            printf "\tAborting uninstall\n\n"
            exit -1;;
      esac
   done
fi

哈,其实就是删除 /usr/local/include/eosio 下的老文件

目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.