ubuntu 18.04 obd demo 报错,No such install plugin for xxxx

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】4.0.0
【问题描述】
我在ubuntu 18.04上尝试部署OB环境,用于自测学习,第一次接触oceanbase。
由于开发机器无法访问公网,所以使用的离线部署方法
根据官方部署方法,直接下载了oceanbase-all-in-one 并执行 ./bin/install.sh 后一切正常。
安装信息打印来看,所有的组件也都成功添加到了local mirror,如下所示

source env.sh后执行 obd demo 得到如下错误:


多次执行,得到的错误类似,但是提示找不到的组建不一样(可能是obd每次加载组件的顺序不一致导致)

我查看了obd mirror clone 的目的目录,相关组件*.rpm 均已添加到 ~/.obd/mirror/local 目录中,只不过看起来似乎clone 动作只是简单的copy操作。

请问下,这个错误的原因是什么?是ubuntu不支持的原因吗?

  1. *.rpm 是centos的安装包,我理解的是obd 在执行mirror clone的时候会转成ubuntu支持的类型,或者解析成可执行二进制文件,但结果来看它似乎只是简单的copy
  2. obd demo会启动这些组件,这些组件来源是 mirror clone的这些包吗 obd启动的过程会解析这些包吗?

顺便请教一下:
我的目的是想通过debug的方式学习oceanbase的源码部分(observer),后续希望在其基础上添加一些定制化功能,也就是说我的需求很简单,observer 启动 obclient可连接,都在本机上进行调试即可,满足这个需求,是否可以不用借助于obd(通过阅读官网文档来看,obd只是部署的工具)?
有没有在本机上手动启动observer 手动通过obclient连接的示例文档推荐呢?

【复现路径】问题出现前后相关操作
【问题现象及影响】

【附件】

手动启动相对obd部署来说会麻烦一些,可以看文档:https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000881620

自己编译的话可以使用obd.sh。编译完成后执行以下步骤

cd tools/deploy
./obd.sh prepare
# 修改配置文件
vim single.yaml
# 部署
./obd.sh deploy -c single.yaml 

部署后需要gdb可以直接使用./obd.sh gdb

“*.rpm 是centos的安装包,我理解的是obd 在执行mirror clone的时候会转成ubuntu支持的类型,或者解析成可执行二进制文件,但结果来看它似乎只是简单的copy”
“obd demo会启动这些组件,这些组件来源是 mirror clone的这些包吗 obd启动的过程会解析这些包吗?”
是的,clone的时候就是简单的copy。后续真正需要使用的这些包的时候才会去解析。
看报错,像是缺少环境变量。echo $OBD_INSTALL_PRE 看看。如果是空的就是source 下

hi @obyl 谢谢你的回答,环境环境看起来是设置好了的 :rofl:

看上去是没有问题的。之前安装过其他版本的obd?可以rm -f ~/.obd/version后再试试。

或者直接换用obd.sh

没有安装过obd哦…第一次使用… 然后自己拉了一个源码仓库build了observer 二进制,我想这个对obd是没有影响的吧~

ls -l $OBD_INSTALL_PRE//usr/obd/plugins
ls -l $OBD_INSTALL_PRE//usr/obd/plugins/oceanbase-ce
这两个执行看看。
怀疑是盘满了,有文件没解压出来

ls ~/.obd/plugins/oceanbase-ce
ls ~/.oceanbase-all-in-one/obd/usr/obd/plugins/oceanbase-ce
看看这两个目录是否有区别

看起来没有解压成功一样


~/.obd/plugins 目录是空的

安装上面的提示
rm ~/.obd/version -rf
obd mirror disable remote (离线环境需要手动禁掉)
obd demo 会重新解压安装

嗯。优先看看是不是盘满了。或者直接重装all in one。

我自己试了一下 ubuntu 18.04 和ubuntu 22.04, 用最新的4.0.0.0-bp2 的all-in-one 包都ok了

你可以用最新的包试一下, 看是不是ok