---
title: "Install"
url: "https://docs.yugabyte.com/stable/yugabyte-voyager/install-yb-voyager/"
---

# Install

Prerequisites and installation instructions for YugabyteDB Voyager.

## Prerequisites

The following sections describe the prerequisites for installing YugabyteDB Voyager.

### Operating system

You can install YugabyteDB Voyager on the following:

- RHEL 8, 9
- CentOS 8
- Ubuntu 18.04, 20.04, 22.04
- macOS (for MySQL/Oracle source databases on macOS, [install yb-voyager](#install-yb-voyager "install yb-voyager") using the Docker option. Note that MySQL and Oracle migration is deprecated and will no longer be supported after October 13, 2026.)

### Hardware requirements

- Disk space of at least 2 times the estimated size of the source database
- 2 cores minimum (recommended)

### Software requirement

- Java 17. Any higher versions of Java might lead to errors during installation or migration.

### Prepare the host

The node where you'll run the yb-voyager command should:

- connect to both the source and the target database.
- have sudo access.

## Install yb-voyager

YugabyteDB Voyager consists of the yb-voyager command line executable.

Install yb-voyager on a machine which satisfies the [Prerequisites](#prerequisites "Prerequisites") using one of the following options:

- [RHEL](#rhel)
- [Ubuntu](#ubuntu)
- [macOS](#macos)
- [Airgapped](#airgapped)
- [Docker](#docker)
- [Source](#github)

<!--THE END-->

- RHEL 8
- RHEL 9

Perform the following steps to install yb-voyager using yum for RHEL 8 and CentOS 8:

01. Update the yum package manager, and all the packages and repositories installed on your machine using the following command:
    
    ```sh
    sudo yum update
    ```
02. Install the `yugabyte` yum repository using the following command:
    
    ```sh
    sudo yum install https://software.yugabyte.com/repos/reporpms/rhel-8/yb-yum-repo-1.1-0.noarch.rpm
    ```
    
    This repository contains the yb-voyager rpm and other dependencies required to run `yb-voyager`.
03. Install the `epel-release` repository using the following command:
    
    ```sh
    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    ```
04. Install the Oracle instant client repositories using the following command:
    
    ```sh
    sudo yum install oracle-instant-clients-repo
    ```
05. Install the PostgreSQL repositories using the following command:
    
    ```sh
    sudo yum --disablerepo=* -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    ```
    
    These repositories contain the rest of the dependencies required to run `yb-voyager`.
06. Disable the default `PostgreSQL` yum module on your machine using the following command:
    
    ```sh
    sudo dnf -qy module disable postgresql
    ```
07. Install `perl-open` on your machine using the following command:
    
    ```sh
    sudo yum install perl-open.noarch
    ```
08. Update the yum package manager and all the packages and repositories installed on your machine using the following command:
    
    ```sh
    sudo yum update
    ```
09. Install `yb-voyager` and its dependencies using the following command:
    
    ```sh
    sudo yum install yb-voyager
    ```
    
    To install a specific version of `yb-voyager` on your machine, use the following command:
    
    ```sh
    sudo yum install yb-voyager-<VERSION>
    ```
10. Check that yb-voyager is installed using the following command:
    
    ```sh
    yb-voyager version
    ```

### Dependencies

YugabyteDB Voyager relies on the following dependencies on RHEL 8 and RHEL 9 systems, which are automatically installed or resolved when you install Voyager using the official RPM package.

| Dependency                   | Version / Constraint             |
|------------------------------|----------------------------------|
| bash                         | –                                |
| binutils                     | &gt; 2.25                        |
| debezium                     | = 2.5.2-&lt;voyager\_version&gt; |
| mysql-devel                  | –                                |
| oracle-instantclient-basic   | = 21.5.0.0.0-1                   |
| oracle-instantclient-devel   | = 21.5.0.0.0-1                   |
| oracle-instantclient-jdbc    | = 21.5.0.0.0-1                   |
| oracle-instantclient-sqlplus | = 21.5.0.0.0-1                   |
| oracle-instantclient-tools   | = 21.5.0.0.0-1                   |
| ora2pg                       | = 23.2-yb.2                      |
| postgresql18                 | –                                |
| sqlite                       | –                                |

### Upgrade yb-voyager

Upgrade yb-voyager using the following command:

```sh
sudo yum update yb-voyager
```

Perform the following steps to install yb-voyager using yum for RHEL 9 and CentOS 9:

01. Update the yum package manager, and all the packages and repositories installed on your machine using the following command:
    
    ```sh
    sudo dnf update
    ```
02. Install the `yugabyte` yum repository using the following command:
    
    ```sh
    sudo dnf install https://software.yugabyte.com/repos/reporpms/rhel-9/yb-yum-repo-1.1-0.noarch.rpm -y
    ```
03. Install the `epel-release` repository using the following command:
    
    ```sh
    sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y
    ```
04. Install `mysql-community-release` repository using the following command:
    
    ```sh
    sudo dnf install https://dev.mysql.com/get/mysql84-community-release-el9-2.noarch.rpm -y
    ```
05. Install the PostgreSQL repositories using the following command:
    
    ```sh
    sudo dnf --disablerepo=* install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
    ```
    
    These repositories contain the rest of the dependencies required to run `yb-voyager`.
06. Disable the default `PostgreSQL` yum module on your machine using the following command:
    
    ```sh
    sudo dnf -qy module disable postgresql
    ```
07. Install `perl-open` on your machine using the following command:
    
    ```sh
    sudo dnf install perl-open.noarch -y
    ```
08. Install Oracle Instant Clients using the following command:
    
    ```sh
    OIC_URL="https://download.oracle.com/otn_software/linux/instantclient/215000" && \
    sudo dnf install -y \
        ${OIC_URL}/oracle-instantclient-tools-21.5.0.0.0-1.x86_64.rpm \
        ${OIC_URL}/oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm \
        ${OIC_URL}/oracle-instantclient-devel-21.5.0.0.0-1.x86_64.rpm \
        ${OIC_URL}/oracle-instantclient-jdbc-21.5.0.0.0-1.x86_64.rpm \
        ${OIC_URL}/oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64.rpm
    ```
09. Update the yum package manager and all the packages and repositories installed on your machine using the following command:
    
    ```sh
    sudo dnf update
    ```
10. Install `yb-voyager` and its dependencies using the following command:
    
    ```sh
    sudo dnf install yb-voyager
    ```
    
    To install a specific version of `yb-voyager` on your machine, use the following command:
    
    ```sh
    sudo dnf install yb-voyager-<VERSION>
    ```
11. Check that yb-voyager is installed using the following command:
    
    ```sh
    yb-voyager version
    ```

### Dependencies

YugabyteDB Voyager relies on the following dependencies on RHEL 8 and RHEL 9 systems, which are automatically installed or resolved when you install Voyager using the official RPM package.

| Dependency                   | Version / Constraint             |
|------------------------------|----------------------------------|
| bash                         | –                                |
| binutils                     | &gt; 2.25                        |
| debezium                     | = 2.5.2-&lt;voyager\_version&gt; |
| mysql-devel                  | –                                |
| oracle-instantclient-basic   | = 21.5.0.0.0-1                   |
| oracle-instantclient-devel   | = 21.5.0.0.0-1                   |
| oracle-instantclient-jdbc    | = 21.5.0.0.0-1                   |
| oracle-instantclient-sqlplus | = 21.5.0.0.0-1                   |
| oracle-instantclient-tools   | = 21.5.0.0.0-1                   |
| ora2pg                       | = 23.2-yb.2                      |
| postgresql18                 | –                                |
| sqlite                       | –                                |

### Upgrade yb-voyager

Upgrade yb-voyager using the following command:

```sh
sudo yum update yb-voyager
```

Perform the following steps to install yb-voyager using apt for Ubuntu:

Note

`apt` installation is only supported for Ubuntu 22. For other versions such as 18 and 20, use the install script via the Source installation option.

1. Install the Yugabyte apt repository on your machine using the following command:
   
   ```sh
   wget https://software.yugabyte.com/repos/reporpms/yb-apt-repo_1.0.0_all.deb
   sudo apt-get install ./yb-apt-repo_1.0.0_all.deb
   ```
   
   This repository contains the `yb-voyager` Debian package and the dependencies required to run `yb-voyager`.
2. Install the `postgresql-common` repository to fetch PostgreSQL 16 using the following commands:
   
   ```sh
   sudo apt install -y postgresql-common
   sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
   ```
3. Clean the `apt-get` cache and package lists using the following commands:
   
   ```sh
   sudo apt-get clean
   sudo apt-get update
   ```
4. Install yb-voyager and its dependencies using the following command:
   
   ```sh
   sudo apt-get install yb-voyager
   ```
   
   Note: If you see a failure in the install step similar to the following:
   
   ```output
   Depends: ora2pg (= 23.2-yb.2) but 24.3-1.pgdg22.04+1 is to be installed
   ```
   
   Try installing ora2pg using the following command:
   
   ```sh
   sudo apt-get install ora2pg=23.2-yb.2
   ```
   
   Then try installing yb-voyager using the following command:
   
   ```sh
   sudo apt-get install yb-voyager
   ```
5. Check that yb-voyager is installed using the following command:
   
   ```sh
   yb-voyager version
   ```

### Dependencies

YugabyteDB Voyager relies on the following dependencies on supported Ubuntu systems, which are automatically installed or resolved when you install Voyager using the official package.

| Dependency                   | Version / Constraint             |
|------------------------------|----------------------------------|
| binutils                     | &gt; 2.25                        |
| debezium                     | = 2.5.2-&lt;voyager\_version&gt; |
| libmysqlclient-dev           | –                                |
| oracle-instantclient-basic   | = 21.5.0.0.0-1                   |
| oracle-instantclient-devel   | = 21.5.0.0.0-1                   |
| oracle-instantclient-jdbc    | = 21.5.0.0.0-1                   |
| oracle-instantclient-sqlplus | = 21.5.0.0.0-1                   |
| oracle-instantclient-tools   | = 21.5.0.0.0-1                   |
| ora2pg                       | = 23.2-yb.2                      |
| postgresql-client-18         | –                                |
| sqlite3                      | –                                |

### Upgrade yb-voyager

Note

If you are upgrading Voyager from version 1.8.0 or earlier, you need to install the `postgresql-common` repository before the upgrade as follows:

```sh
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
```

Upgrade yb-voyager using the following command:

```sh
sudo apt-get upgrade yb-voyager
```

MySQL and Oracle offline migration deprecated

MySQL and Oracle offline migration using YugabyteDB Voyager is deprecated and will no longer be supported after October 13, 2026. Contact [Yugabyte Support](https://support.yugabyte.com/ "Yugabyte Support") for guidance on migration options.

The brew install on macOS does not support installing ora2pg, which is required for MySQL/Oracle database schema export. If you are planning to migrate MySQL or Oracle source databases on macOS, install yb-voyager using Docker instead.

Perform the following steps to install yb-voyager using brew for macOS:

1. [Tap](https://docs.brew.sh/Taps "Tap") the `yugabyte` Homebrew repository using the following command:
   
   ```sh
   brew tap yugabyte/tap
   ```
   
   The repository contains the formula to build and install `yb-voyager` on your macOS device.
   
   Note that the tap `yugabyte/yugabytedb` has been updated to `yugabyte/tap`. If you have previously installed yb-voyager using the tap `yugabyte/yugabytedb`, untap the entry using `brew untap yugabyte/yugabytedb`, and then tap using the preceding command.
2. Install PostgreSQL 18 (required for `pg_dump` and `pg_restore`) using Homebrew:
   
   ```sh
   brew install postgresql@18
   ```
   
   After installing PostgreSQL 18, Homebrew displays instructions on how to add the PostgreSQL 18 binaries to your shell's PATH. These steps vary depending on your system's Homebrew installation path (for example: `/opt/homebrew` or `/usr/local`) and the shell you are using.
   
   1. Update your PATH by following the *exact* instructions shown by Homebrew. Following is an example of what Homebrew may display:
      
      ```output
      If you need to have postgresql@18 first in your PATH, run:
      echo 'export PATH="/opt/homebrew/opt/postgresql@18/bin:$PATH"' >> ~/.zshrc
      For compilers to find postgresql@18 you may need to set:
      export LDFLAGS="-L/opt/homebrew/opt/postgresql@18/lib"
      export CPPFLAGS="-I/opt/homebrew/opt/postgresql@18/include"
      ```
   2. After the update, restart your terminal and verify that both report to PostgreSQL 18:
      
      ```sh
      pg_dump --version
      pg_restore --version
      ```
3. Install `yb-voyager` and its dependencies using the following command:
   
   ```sh
   brew install yb-voyager
   ```
   
   To install a specific version of `yb-voyager`, use the following command:
   
   ```sh
   brew install yb-voyager@<VERSION>
   ```
4. Check that yb-voyager is installed using the following command:
   
   ```sh
   yb-voyager version
   ```

### Dependencies

When installing YugabyteDB Voyager using Homebrew, the following dependencies are installed automatically as part of the formula.

- `yugabyte/tap/debezium@2.5.2-\<voyager_version\>`
- `postgresql@18`
- `sqlite`
- `go@1.24` (build-time)

<!--THE END-->

- Docker
- Yum
- Ubuntu

You can perform an airgapped installation on Docker.

Install yb-voyager using a Docker image in an airgapped environment using the following steps:

1. From a machine connected to the internet, run the following commands to pull and save the latest yb-voyager docker image (Pull the version from docker.io):
   
   ```sh
   docker pull yugabytedb/yb-voyager
   docker save -o yb-voyager-image.tar yugabytedb/yb-voyager:latest
   gzip yb-voyager-image.tar
   ```
2. Download the yb-voyager wrapper script on the same machine using the following command:
   
   ```sh
   wget -O ./yb-voyager https://software.yugabyte.com/yugabyte/yb-voyager/main/docker/yb-voyager-docker
   ```
3. Copy the `yb-voyager-image.tar.gz` and `yb-voyager` files to the airgapped machine.
4. Load the docker image using the following command:
   
   ```sh
   gunzip yb-voyager-image.tar.gz
   docker load --input yb-voyager-image.tar
   ```
5. Make the wrapper script executable and move it to the `bin` directory using the following commands:
   
   ```sh
   chmod +x yb-voyager
   sudo mv yb-voyager /usr/local/bin
   ```
6. Check that yb-voyager is installed using the following command:
   
   ```sh
   yb-voyager version
   ```

You can perform an airgapped installation of YugabyteDB Voyager on RHEL 8/9 and CentOS 8/9.

### Prepare the installation bundle

1. Download the airgapped bundle:
   
   For RHEL 8:
   
   ```sh
   wget https://software.yugabyte.com/repos/airgapped/yb-voyager-latest-rhel-8-x86_64.tar.gz
   ```
   
   For RHEL 9:
   
   ```sh
   wget https://software.yugabyte.com/repos/airgapped/yb-voyager-latest-rhel-9-x86_64.tar.gz
   ```
2. Extract the bundle:
   
   ```sh
   tar -xvf <tar-bundle-name>
   ```
   
   The extracted bundle contains the following packages:
   
   | Package            | Version                        |
   |--------------------|--------------------------------|
   | YugabyteDB Voyager | &lt;voyager\_version&gt;       |
   | Debezium           | 2.5.2-&lt;voyager\_version&gt; |
   | Ora2pg             | 23.2-yb.2                      |
3. Download the airgapped installation script into the extracted bundle directory:
   
   ```sh
   wget -P </path/to/directory> https://raw.githubusercontent.com/yugabyte/yb-voyager/main/installer_scripts/install-voyager-airgapped.sh
   ```
4. Make the script executable:
   
   ```sh
   chmod +x /path/to/directory/install-voyager-airgapped.sh
   ```
5. Transfer the folder (containing the packages and installer script) to the airgapped machine.

### Install dependencies

Install the following dependencies on the airgapped machine *before* running the installer script. If any dependency is missing, the script exits and lists the missing packages.

**System tools**

| Dependency              | Version / Constraint |
|-------------------------|----------------------|
| binutils                | ≥ 2.25               |
| java                    | ≥ 17                 |
| make                    | –                    |
| sqlite                  | –                    |
| perl                    | –                    |
| perl-DBI                | –                    |
| perl-App-cpanminus      | –                    |
| perl-ExtUtils-MakeMaker | –                    |

**PostgreSQL client tools**

Install the following PostgreSQL 18 client tools and make them available in your system PATH.

| Dependency  | Required Version |
|-------------|------------------|
| pg\_dump    | 18               |
| pg\_restore | 18               |
| psql        | 18               |

**MySQL development libraries**

| OS Version        | Dependency            |
|-------------------|-----------------------|
| RHEL 8 / CentOS 8 | mysql-devel           |
| RHEL 9 / CentOS 9 | mysql-community-devel |

**Oracle Instant Client (required versions)**

Install the exact version of all Oracle Instant Client packages as follows:

| Dependency                                                                                                                                                                              | Required Version |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|
| [oracle-instantclient-basic](https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm "oracle-instantclient-basic")       | 21.5.0.0.0       |
| [oracle-instantclient-devel](https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-devel-21.5.0.0.0-1.x86_64.rpm "oracle-instantclient-devel")       | 21.5.0.0.0       |
| [oracle-instantclient-jdbc](https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-jdbc-21.5.0.0.0-1.x86_64.rpm "oracle-instantclient-jdbc")          | 21.5.0.0.0       |
| [oracle-instantclient-sqlplus](https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64.rpm "oracle-instantclient-sqlplus") | 21.5.0.0.0       |
| [oracle-instantclient-tools](https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-tools-21.5.0.0.0-1.x86_64.rpm "oracle-instantclient-tools")       | 21.5.0.0.0       |

### Run the installer script

1. After installing all the dependencies, run the installer script on the airgapped machine:
   
   ```sh
   ./install-voyager-airgapped.sh
   ```
   
   The script:
   
   - Checks whether all required dependencies are installed.
   - Reports any missing dependencies and exits if any are not found.
   - Installs Ora2pg, Debezium, and YugabyteDB Voyager if all checks pass.
   
   **Script usage**
   
   ```sh
   ./install-voyager-airgapped.sh [options]
   ```
   
   | Argument                      | Description                                         |
   |-------------------------------|-----------------------------------------------------|
   | -d, --check-dependencies-only | Check dependencies only and exit without installing |
   | -f, --force-install           | Install packages without checking dependencies      |
   | -p, --pg-only                 | Check/install only PostgreSQL-related dependencies  |
   | -m, --mysql-only              | Check/install only MySQL-related dependencies       |
   | -o, --oracle-only             | Check/install only Oracle-related dependencies      |
   | -h, --help                    | Display help message                                |
   
   Only one of `--pg-only`, `--mysql-only`, or `--oracle-only` can be specified at a time. If none are provided, the script checks dependencies for all database types.
2. Check that yb-voyager is installed using the following command:
   
   ```sh
   yb-voyager version
   ```
   
   The components installed by the script are described in the following table:
   
   | Component          | Version                        |
   |--------------------|--------------------------------|
   | YugabyteDB Voyager | &lt;voyager\_version&gt;       |
   | Debezium           | 2.5.2-&lt;voyager\_version&gt; |
   | Ora2pg             | 23.2-yb.2                      |

You can perform an airgapped installation of YugabyteDB Voyager on Ubuntu 22.04 and later.

### Prepare the installation bundle

1. Download the airgapped bundle:
   
   ```sh
   wget https://software.yugabyte.com/repos/airgapped/yb-voyager-latest_debian.tar.gz
   ```
2. Extract the bundle:
   
   ```sh
   tar -xvf <tar-bundle-name>
   ```
   
   The extracted bundle contains the following packages:
   
   | Package            | Version                        |
   |--------------------|--------------------------------|
   | YugabyteDB Voyager | &lt;voyager\_version&gt;       |
   | Debezium           | 2.5.2-&lt;voyager\_version&gt; |
   | Ora2pg             | 23.2-yb.2                      |
3. Download the airgapped installation script into the extracted bundle directory:
   
   ```sh
   wget -P </path/to/directory> https://raw.githubusercontent.com/yugabyte/yb-voyager/main/installer_scripts/install-voyager-airgapped.sh
   ```
4. Make the script executable:
   
   ```sh
   chmod +x /path/to/directory/install-voyager-airgapped.sh
   ```
5. Transfer the folder (containing the packages and installer script) to the airgapped machine.

### Install dependencies

Install the following dependencies on the airgapped machine *before* running the installer script. If any dependency is missing, the script exits and reports the missing packages.

**System tools**

| Dependency  | Version / Constraint |
|-------------|----------------------|
| binutils    | ≥ 2.25               |
| java        | ≥ 17                 |
| make        | –                    |
| sqlite3     | –                    |
| perl        | –                    |
| libdbi-perl | –                    |
| cpanminus   | –                    |
| libaio1     | –                    |

**PostgreSQL client tools**

Install the following PostgreSQL 18 client tools and make them available in your system PATH.

| Dependency  | Required Version |
|-------------|------------------|
| pg\_dump    | 18               |
| pg\_restore | 18               |
| psql        | 18               |

**MySQL development libraries**

| Dependency         |
|--------------------|
| libmysqlclient-dev |

**Oracle Instant Client (required versions)**

Install the exact version of all Oracle Instant Client packages as follows:

| Dependency                                                                                                                                                            | Required Version |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|
| [oracle-instantclient-basic](https://downloads.yugabyte.com/repos/apt/pool/main/oracle-instantclient-basic_21.5.0.0.0-1_amd64.deb "oracle-instantclient-basic")       | 21.5.0.0.0       |
| [oracle-instantclient-devel](https://downloads.yugabyte.com/repos/apt/pool/main/oracle-instantclient-devel_21.5.0.0.0-1_amd64.deb "oracle-instantclient-devel")       | 21.5.0.0.0       |
| [oracle-instantclient-jdbc](https://downloads.yugabyte.com/repos/apt/pool/main/oracle-instantclient-jdbc_21.5.0.0.0-1_amd64.deb "oracle-instantclient-jdbc")          | 21.5.0.0.0       |
| [oracle-instantclient-sqlplus](https://downloads.yugabyte.com/repos/apt/pool/main/oracle-instantclient-sqlplus_21.5.0.0.0-1_amd64.deb "oracle-instantclient-sqlplus") | 21.5.0.0.0       |
| [oracle-instantclient-tools](https://downloads.yugabyte.com/repos/apt/pool/main/oracle-instantclient-tools_21.5.0.0.0-1_amd64.deb "oracle-instantclient-tools")       | 21.5.0.0.0       |

### Run the installer script

1. After installing all the dependencies, run the installer script on the airgapped machine:
   
   ```sh
   ./install-voyager-airgapped.sh
   ```
   
   The script:
   
   - Verifies that all required dependencies are installed.
   - Reports any missing dependencies and exits if any are not found.
   - Installs Ora2pg, Debezium, and YugabyteDB Voyager.
   
   **Script usage**
   
   ```sh
   ./install-voyager-airgapped.sh [options]
   ```
   
   | Argument                      | Description                                         |
   |-------------------------------|-----------------------------------------------------|
   | -d, --check-dependencies-only | Check dependencies only and exit without installing |
   | -f, --force-install           | Install packages without checking dependencies      |
   | -p, --pg-only                 | Check/install only PostgreSQL-related dependencies  |
   | -m, --mysql-only              | Check/install only MySQL-related dependencies       |
   | -o, --oracle-only             | Check/install only Oracle-related dependencies      |
   | -h, --help                    | Display help message                                |
   
   Only one of `--pg-only`, `--mysql-only`, or `--oracle-only` can be specified at a time. If none are provided, the script checks dependencies for all database types.
2. Check that yb-voyager is installed using the following command:
   
   ```sh
   yb-voyager version
   ```
   
   The components installed by the script are described in the following table:
   
   | Component          | Version                        |
   |--------------------|--------------------------------|
   | YugabyteDB Voyager | &lt;voyager\_version&gt;       |
   | Debezium           | 2.5.2-&lt;voyager\_version&gt; |
   | Ora2pg             | 23.2-yb.2                      |

### Prerequisites

Before installing yb-voyager in Docker, ensure that you have the following:

1. [Docker](https://docs.docker.com/get-docker/ "Docker") runtime installed on your machine.
2. Docker is configured to run without sudo (recommended). Refer to [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user "Manage Docker as a non-root user") in the Docker documentation.

### Install

Perform the following steps to install yb-voyager:

1. Pull the docker image from YugabyteDB's docker hub (pull the version from docker.io) as follows:
   
   ```sh
   docker pull software.yugabyte.com/yugabytedb/yb-voyager
   ```
2. Run yb-voyager using one of the following methods:
   
   #### Method 1: Use the Wrapper script
   
   1. Download the script to run yb-voyager using the docker image from yb-voyager's GitHub repository, and move it to your machine's bin directory using the following commands:
      
      ```sh
      wget -O ./yb-voyager https://raw.githubusercontent.com/yugabyte/yb-voyager/main/docker/yb-voyager-docker && \
      chmod +x ./yb-voyager && \
      sudo mv yb-voyager /usr/local/bin/yb-voyager
      ```
   2. Verify the installation:
      
      ```sh
      yb-voyager version
      ```
   
   **Limitations:**
   
   - [Configuration file](/stable/yugabyte-voyager/reference/configuration-file/ "Configuration file") is not supported.
   - When using [import-data-file](/stable/yugabyte-voyager/reference/bulk-data-load/import-data-file/ "import-data-file"), the [import data status](/stable/yugabyte-voyager/reference/data-migration/import-data/#import-data-status "import data status") and [end-migration](/stable/yugabyte-voyager/reference/end-migration/ "end-migration") commands do not work.
   - Certain shorthand flags (like `-e`) are not propagated properly to the docker container.
   
   #### Method 2: Use the Container directly
   
   Run the container directly with volume mounts.
   
   1. Run the container with an interactive shell:
      
      ```sh
      docker run -it --rm \
        --network=host \
        -v /path/to/export-dir/on/host:/home/ubuntu/export-dir \
        yugabytedb/yb-voyager bash
      ```
   2. Once inside the container, run any yb-voyager command. For example, to verify the installation:
      
      ```sh
      yb-voyager version
      ```
      
      Mount directories
      
      Mount all directories that yb-voyager needs to access (export directory, [configuration files](/stable/yugabyte-voyager/reference/configuration-file/ "configuration files"), SSL certificates, and so on). On macOS, add `--platform=linux/amd64` to the `docker run` command.

Perform the following steps to install yb-voyager using an installer script:

1. Clone the yb-voyager repository.
   
   ```sh
   git clone https://github.com/yugabyte/yb-voyager.git
   ```
2. Change the directory to `yb-voyager/installer_scripts`.
   
   ```sh
   cd yb-voyager/installer_scripts
   ```
3. Install yb-voyager using the following script:
   
   ```sh
   ./install-yb-voyager
   ```
   
   To install a specific version of yb-voyager on your machine, use the following command:
   
   ```sh
   ./install-yb-voyager --version <VERSION>
   ```
   
   It is safe to execute the script multiple times. If the script fails, check the `/tmp/install-yb-voyager.log` file.
4. The script generates a `.yb-voyager.rc` file in the home directory. Source the file to ensure that the environment variables are set using the following command:
   
   ```sh
   source ~/.yb-voyager.rc
   ```
5. Check that yb-voyager is installed using the following command:
   
   ```sh
   yb-voyager version
   ```

## Collect diagnostics

By default, yb-voyager captures a [diagnostics report](/stable/yugabyte-voyager/reference/diagnostics-report/ "diagnostics report") using the YugabyteDB diagnostics service that runs each time you use the yb-voyager command. If you don't want to send diagnostics when you run yb-voyager, set the [--send-diagnostics flag](/stable/yugabyte-voyager/reference/diagnostics-report/#configure-diagnostics-collection "--send-diagnostics flag") to false.

## Use configuration files

For convenience, you can define all the parameters required for running yb-voyager commands using a configuration file (v2025.6.2 or later). Configuration files are in YAML format, and templates are available. For more information, refer to [Configuration file](/stable/yugabyte-voyager/reference/configuration-file "Configuration file").

## Next step

- [Migrate](/stable/yugabyte-voyager/migrate/ "Migrate")
