# 镜像和仓库命令组

OBD 有多级命令，您可以在每个层级中使用 `-h/--help` 选项查看子命令的帮助信息。同样的，当各层级的子命令执行报错时，您亦可使用 `-v/--verbose` 查看命令的详细执行过程。

## obd mirror clone

使用此命令可将一个 RPM 包复制到本地镜像库，之后您可以使用 OBD 集群中相关的命令启动镜像。

```shell
obd mirror clone <path> [-f]
```

参数 `path` 为 RPM 包的路径。

选项 `-f` 为 `--force`。`-f` 为可选选项，默认不开启。开启时，若镜像已经存在，则强制覆盖已有镜像。

## obd mirror create

使用该命令可以以本地目录为基础创建一个镜像。此命令主要用于使用 OBD 启动自行编译的 OceanBase 开源软件，您可以通过此命令将编译产物加入本地仓库，之后就可以使用 `obd cluster` 相关的命令启动这个镜像。

```shell
obd mirror create -n <component name> -p <your compile dir> -V <component version> [-t <tag>] [-f]
```

例如，如果您根据文档 [使用源码构建 OceanBase 数据库](https://www.oceanbase.com/docs/community-observer-cn-0000000000160092) 编译 OceanBase 数据库，在编译成功后，可以使用 `make DESTDIR=./ install && obd mirror create -n oceanbase-ce -V <component version> -p ./usr/local` 命令将编译产物添加至 OBD 本地仓库。

选项说明见下表：

|     选项名      | 是否必选 |  数据类型  |                                   说明                                    |
|--------------|------|--------|-------------------------------------------------------------------------|
| -n/--name    | 是    | string | 组件名。如果您编译的是 OceanBase 数据库，则填写 `oceanbase-ce`。如果您编译的是 ODP，则填写 `obproxy-ce`。 |
| -p/--path    | 是    | string | 执行编译命令时的目录。OBD 会根据组件自动从该目录下获取所需的文件，默认为当前目录。                                |
| -V/--version | 是    | string | 版本号。                                                                    |
| -t/--tag     | 否    | string | 镜像标签。您可以为您的创建的镜像定义多个标签，以英文逗号 `,` 间隔。                                    |
| -f/--force   | 否    | bool   | 当镜像已存在，或者标签已存在时强制覆盖。默认不开启。                                              |

## obd mirror list

使用该命令可显示镜像仓库或镜像列表。

```shell
obd mirror list [mirror repo name]
```

参数 `mirror repo name` 为镜像仓库名。该参数为可选参数。为空时将显示镜像仓库列表，不为空时则显示对应仓库的镜像列表。

## obd mirror update

使用该命令可同步全部远程镜像仓库的信息。

```shell
obd mirror update
```

## obd mirror disable

使用该命令可禁用远程镜像仓库。如若需要禁用所有远程镜像仓库，可执行命令 `obd mirror disable remote`。

```shell
obd mirror disable <mirror repo name>
```

参数 `mirror repo name` 为需禁用的镜像仓库名。如果指定为 `remote`，则会禁用所有远程镜像仓库。

## obd mirror enable

使用该命令可启用远程镜像仓库。

```shell
obd mirror enable <mirror repo name>
```

参数 `mirror repo name` 为需启动的镜像仓库名。如果指定为 `remote`，则会启用所有远程镜像仓库。

## obd mirror add-repo

使用该命令可以添加远程镜像仓库文件。

```bash
obd mirror add-repo <url>
```

参数 `url` 为要添加的镜像文件下载地址。
