尝试在FreeBSD 的jail、bhyve里安装TrinityCore

先上结论,直接编译安装TrinityCore失败,bhyve方式成功,jail方式没成功。

直接在FreeBSD下编译失败

按部就班的安装

编译的时候报错

所以安装:

pkg install boost-libs-1.84.0

把其它依赖库也全部安装:

pkg install mariadb1011-server
pkg install mysql81-server-8.1.0

编译

cd TrinityCore
mkdir build
cd build
 
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server

编译不成功,放弃。 

在Ubuntu jail里安装

 首先为了提供服务,需要使用桥接模式

这里没有配通。所以最终并没有在jail里尝试下面操作。

为了节省编译时间,直接将trinitycore cp过来

启动服务

在Ubuntu bhyve里安装

在FreeBSD里创建Ubuntu bhyve虚拟机

使用cbsd 创建Ubuntu bhyve虚拟机

具体参见:CBSD创建和管理bhyve容器Ubuntu@FreeBSD-CSDN博客

需要配置ip地址为固定地址。 

直接复制TrinityCore和mysql数据库

具体参见:备份和镜像TrinityCore-CSDN博客

复制TrinityCore就可以节省编译的时间。

导入mysql就可以使用服务器以前的存档。

最后是成功了的。

总结

如果是ubuntu操作系统,那么可以直接省去创建bhyve虚拟机的过程,直接复制安装。

如果是FreeBSD系统,那么可以创建Ubuntu bhyve虚拟机,然后在虚拟机里复制安装。

还遗留的问题:FreeBSD bhyve虚拟机这个实践过程中发现网速很慢,局域网竟然有600ms的延时,实在不可思议,还需要今后解决问题。

对啊,如果用FreeBSD的linux兼容模式跑会怎么样呢? 以后再做实验看看。

调试

报错 Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem

CMake Error at /usr/local/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem
  program_options iostreams regex locale) (Required is at least version
  "1.74")
Call Stack (most recent call first):
  /usr/local/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/share/cmake/Modules/FindBoost.cmake:2399 (find_package_handle_standard_args)
  dep/boost/CMakeLists.txt:32 (find_package)
pkg安装

pkg install boost-libs-1.84.0

cmake报错 Could not find the MySQL libraries

CMake Error at /usr/local/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could not find the MySQL libraries! Please install the development
  libraries and headers (missing: MYSQL_LIBRARY MYSQL_INCLUDE_DIR lib)
Call Stack (most recent call first):
  /usr/local/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  cmake/macros/FindMySQL.cmake:343 (find_package_handle_standard_args)
  dep/mysql/CMakeLists.txt:11 (find_package)
先安装了mariadb1011-server,没管用。(原来是在host主机安装的....)

试试安装

pkg install mysql81-server-8.1.0

搞定! 大约只安装mariadb1011就行。

make 报错

[ 10%] Building CXX object dep/CascLib/CMakeFiles/casc.dir/src/common/FileStream.cpp.o
/home/wow/TrinityCore/dep/CascLib/src/common/FileStream.cpp:78:73: error: use of undeclared identifier 'O_LARGEFILE'
   78 |         handle = open(pStream->szFileName, O_RDWR | O_CREAT | O_TRUNC | O_LARGEFILE, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
      |                                                                         ^
/home/wow/TrinityCore/dep/CascLib/src/common/FileStream.cpp:126:23: error: variable has incomplete type 'struct stat64'
  126 |         struct stat64 fileinfo;
      |                       ^
/home/wow/TrinityCore/dep/CascLib/src/common/FileStream.cpp:126:16: note: forward declaration of 'stat64'
  126 |         struct stat64 fileinfo;
      |                ^
/home/wow/TrinityCore/dep/CascLib/src/common/FileStream.cpp:132:43: error: use of undeclared identifier 'O_LARGEFILE'
  132 |         handle = open(szFileName, oflag | O_LARGEFILE);
      |                                           ^
/home/wow/TrinityCore/dep/CascLib/src/common/FileStream.cpp:209:20: error: use of undeclared identifier 'lseek64'; did you mean 'lseek'?
  209 |                 if(lseek64((intptr_t)pStream->Base.File.hFile, (off64_t)(ByteOffset), SEEK_SET) == (off64_t)-1)
      |                    ^~~~~~~
      |                    lseek
搞不定....放弃FreeBSD下直接编译安装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值