skynet版本升级到1.5.0笔记

skynet升级到1.5.0

升级原因:

  • 自己主导的一个项目用的skynet框架是几年前的版本,虽然运行十分稳定。但是考虑到skynet目前版本已经升级到1.5.0了对应的lua版本也升级到了5.4.3.因此决定升级一下。

目标skynet版本github地址:

  • https://github.com/cloudwu/skynet/releases/tag/v1.5.0
  • 下载地址:https://github.com/cloudwu/skynet/archive/refs/tags/v1.5.0.tar.gz
  • 加速地址:https://github.91chi.fun//https://github.com//cloudwu/skynet/archive/refs/tags/v1.5.0.tar.gz

升级步骤:

  • 创建分支skynet1.5
  • 删除skynet目录的所有文件,解压或同步skynet1.5.0的代码到skynet目录
rm ./skynet/* -rf
  • 初始化skynet
git submodule update --init
  • jemalloc库若未初始化成功,可手动克隆到3rd/jemalloc目录中
git clone https://gitee.com/mirrors/jemalloc.git

编译报错

skynet-src/spinlock.h:50:23: fatal error: stdatomic.h: No such file or directory
升级Gcc值4.9及以上版本

gcc多版本共存。

  • devtoolset对应gcc版本
devtoolset-3对应gcc4.x.x版本
devtoolset-4对应gcc5.x.x版本
devtoolset-6对应gcc6.x.x版本
devtoolset-7对应gcc7.x.x版本
devtoolset-8对应gcc8.x.x版本
devtoolset-9对应gcc9.x.x版本
devtoolset-10对应gcc10.x.x版本
  • 参考地址:
https://www.cnblogs.com/jixiaohua/p/11732225.html
sudo yum install centos-release-scl
  • 安装devtoolset,注意,如果想安装11.版本的,就改成devtoolset-11-gcc
sudo yum install devtoolset-11-gcc*
  • 激活对应的devtoolset,可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本
  • 这仅仅在当前bash生效,如果需要永久生效,可以请自行添加环境变量。
scl enable devtoolset-11 bash
或
source /opt/rh/devtoolset-8/enable
  • gcc版本永久生效
echo "source /opt/rh/devtoolset-11/enable" >>/etc/profile
  • 查看gcc版本号
gcc -v

gcc安装报错

  • 报错问题:
Transaction check error:
  file /usr/lib/debug/usr/lib64/libitm.so.1.0.0.debug from install of devtoolset-8-gcc-debuginfo-8.3.1-3.2.el7.x86_64 conflicts with file from package gcc-base-debuginfo-4.8.5-39.el7.x86_64
  file /usr/lib/debug/usr/lib64/libatomic.so.1.debug from install of devtoolset-8-gcc-debuginfo-8.3.1-3.2.el7.x86_64 conflicts with file from package gcc-debuginfo-4.8.5-39.el7.x86_64
  file /usr/lib/debug/usr/lib64/libtsan.so.0.0.0.debug from install of devtoolset-8-gcc-debuginfo-8.3.1-3.2.el7.x86_64 conflicts with file from package gcc-debuginfo-4.8.5-39.el7.x86_64
  • 解决方案
yum remove gcc-base-debuginfo-4.8.5-39.el7.x86_64

skynet服务启动报错

[root@dev127 myb_dev]# sh/test/debug_test.sh 
try open snlua failed : luaclib/snlua.so: cannot open shared object file: No such file or directory
[:00000000] Bootstrap error : snlua bootstrap
  • ./skynet example/config 报错
[root@dev127 skynet]# ./skynet examples/config
try open snlua failed : ./cservice/snlua.so: undefined symbol: lua_resetthread
[:00000000] Bootstrap error : snlua bootstrap
  • 解决方案
make clean
make all

源码安装gcc11.2.0

  • https://blog.csdn.net/qq_41054313/article/details/119453611
  • https://blog.csdn.net/skykingf/article/details/120701069

skynet升级改动文件:

文件修改
skynet/service-src/service_logger.c* 添加文件日志及转储功能。
skynet/lualib-src/lua-clientwebsocket.c+
skynet/lualib-src/lua-mysqlaux.c+
skynet/lualib-src/lua-profile.c+
skynet/lualib-src/lua-websocketnetpack.c+
skynet/lualib/snax/wsgateserver.lua+
skynet/service/debug_console.lua* 添加ag等命令
skynet/service/wsgate.lua+
skynet/Makefile* 添加 wsnetpack.so等库
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打杂程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值