MatrixOne从入门到实践02——源码编译

MatrixOne从入门到实践——源码编译

​ 在部署MatrixOne前,我们可能会比较纠结使用哪个版本合适,MatrixOne在github上有各个版本的Releases,包含源码包和适用于Linux系统和MAC系统的二进制文件,但如果我们需要体验main分支上最新的功能的时候,我们可以直接使用源码编译,来获取到最新代码的二进制部署文件。本文源码编译主要是针对应用场景最为广泛的Linux系统进行的源码编译。

编译环境

硬件环境操作系统内存CPU磁盘
Windows环境下的Linux虚拟机Linux version 3.10.0-1160.el7.x86_644G4C25G

环境准备

安装GO环境

下载
# 下载地址
https://studygolang.com/dl
# 这里将go安装至 /home/go目录下,可以在上面网址选择对应版本的安装包之后,上传至安装目录

选择对应版本下载,如我这里下载的是 go1.19.linux-amd64.tar.gz

安装GO环境
  • 创建安装目录

    mkdir -p /home/go && cd /home/go
    
  • 解压

    tar -C /home/go -zxvf go1.19.linux-amd64.tar.gz
    
  • 配置环境变量

    vi /etc/profile
    # 增加以下内容
    # 在/etc/profile最后一行添加
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin
    
    # 保存退出后,source一下
    source /etc/profile
    
  • 检查GO环境

    # 执行 go命令
    go version
    # 能出现如下的go的版本即可
    go version go1.19 linux/amd64
    

获取源码

  • 创建源码编译目录

    mkdir -p /home/matrixone && cd /home/matrixone
    
  • 获取源码

    # git clone 
    git clone https://github.com/matrixorigin/matrixone.git
    # 切换分支
    git checkout 0.5.1 (可选)
    # 进入源码目录
    cd ./matrixone
    

编译源码并启动

编译源码(在线编译)

# 安装gcc相关的依赖
yum install -y gcc
# 需要网络环境支持
# 配置go的依赖下载加速
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
#编译
make config 
make build
  • 可能会遇到的问题

    • 在执行make build时 :gcc编译标准问题(PR : 4868) (已解决)

      ‘for’ loop initial declarations are only allowed in C99 mode
      
      • 解决方案

        在cgo的Makefile中加入编译标准

        # vi ./cgo/Makefile
        # 将原本的 
        CFLAGS=-I./external/decNumber -g ${OPT_LV} -Wall -Werror
        # 修改为
        CFLAGS=-std=c99 -I./external/decNumber -g ${OPT_LV} -Wall -Werror
        

编译源码(离线编译)

  • 找一个有网络环境的机器,执行上述步骤,可以不执行make build,依赖下载完成后,将 G O P A T H / p k g / m o d ∗ ∗ 中 的 依 赖 项 , 复 制 到 没 有 网 络 环 境 机 器 的 ∗ ∗ GOPATH/pkg/mod** 中的依赖项,复制到没有网络环境机器的 ** GOPATH/pkg/modGOPATH/pkg/mod下,然后执行:

    go env -w GO111MODULE=off 关闭
    

    参数解释:

    GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
    GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
    GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持
    

启动服务

默认配置启动

编译完成后,会在matrixone目录下生成二进制文件:mo-service,此时启动服务即可

./mo-service -cfg ./etc/cn-standalone-test.toml
# 如需后台启动可以使用,启动后的运行日志会输出到当前目录下名为nohup.out的文件中,也可自己选择重定向输出
nohup ./mo-service -cfg ./etc/cn-standalone-test.toml &
自定义配置启动

如果启动有特殊需求,比如想自定义密码,端口等等信息,可以编辑system_vars_config.toml文件,修改对应参数即可。

该功能会在参考手册章节的系统配置详细讲解

连接MO服务

安装mysql client

  • 卸载mariadb

    # 查询有无相关依赖
    rpm -qa |grep mariadb
    # 卸载相关依赖
    rpm -e xxx
    
  • 安装mysql-client

    # 下载以下rpm包
    https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.35-1.el7.x86_64.rpm
    
    https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.35-1.el7.x86_64.rpm
    
    https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.35-1.el7.x86_64.rpm
    # 安装rpm
    rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
    

使用mysql-client连接

 mysql -h 192.168.110.170 -P6001 -uroot -p
  • 连接成功后

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1001
    Server version: 0.5.0 MatrixOne
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> 
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ENOVIA是Dassault Systèmes公司旗下的产品生命周期管理(PLM)系统,可以帮助企业管理产品的设计、制造、销售和服务等全过程。二次开发是在ENOVIA系统基础上进行个性化定制和功能增强的一种方式。 下面是ENOVIA二次开发入门的详细步骤: 1. 学习ENOVIA系统基础知识 在进行二次开发之前,需要对ENOVIA系统有一定的了解,包括系统的架构、数据模型、业务流程等基本概念和操作方法。可以通过官方文档、培训课程、社区论坛等途径进行学习。 2. 确定二次开发需求 在了解ENOVIA系统基础知识的基础上,需要确定二次开发的具体需求和目标。这可以是针对某个业务流程的定制、某个功能的增强、某个数据报表的生成等。 3. 选择二次开发工具 ENOVIA系统支持多种二次开发工具,包括Java API、MQL、MatrixOne API等。需要根据二次开发需求和开发人员的技术背景选择适合的工具。 4. 进行二次开发 根据二次开发需求和选择的开发工具,进行具体的二次开发工作。这包括编写代码、测试、调试等一系列工作。 5. 部署和维护 完成二次开发后,需要将代码部署到ENOVIA系统中并进行测试。在系统运行过程中,还需要进行维护和升级,确保系统的稳定性和安全性。 以上是ENOVIA二次开发入门的详细步骤,需要注意的是,二次开发需要有一定的技术基础和经验,建议在进行二次开发之前进行充分的学习和准备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值