# Software Requirements

__*TiDB software*__
__*zz-BGL*__
__*zz-Jeff*__

+ Control machine: `TiUP` runs on this host
+ Target machine: `TiDB` cluster node to host `TiDB`, `TiKV` or `PD` server instances

| Software  | Version           | Machine Type                       |
| :-------- | :---------------- | :--------------------------------- |
| `sshpass` | `1.06` or later   | Control machine and Target machine |
| `TiUP`    | `1.5.0` or later  | Control machine                    |
| `numa`    | `2.0.12` or later | Target machine                     |
| `tar`     | any               | Target machine                     |
------------------------------------------------------------------------------------
Note: All required software are already installed in the VMs for the lab.

Software requirements for the control machine (used to deploy `TiUP` software to complete the management of the `TiDB` cluster):
```
| Software | Version        |
| :------- | :------------- |
| sshpass  | 1.06 or later  |
| TiUP     | 1.5.0 or later |
```

Software requirements for `TiDB` cluster nodes:
```
| Software | Version         |
| :------- | :-------------- |
| sshpass  | 1.06 or later   |
| numa     | 2.0.12 or later |
| tar      | optional        |
```

The `sshpass` utility is designed to run `SSH` using the keyboard-interactive password authentication mode, but in a non-interactive way. `SSH` uses direct TTY access to ensure that the password is indeed issued by an interactive keyboard user. sshpass runs SSH in a dedicated TTY, fooling SSH into thinking it is getting the password from an interactive user.

`Non-uniform memory access (NUMA)` is a computer memory design used in multiprocessing, where the memory access time depends on the memory location relative to the processor. Under NUMA, a processor can access its own local memory faster than non-local memory (memory local to another processor or memory shared between processors). 

A `TAR` file is a type of archive file, used to collect and combine several files into one manageable file. This is usually for the purposes of distributing or archiving, and the name comes from "Tape Archive", a heritage term from when files used to be stored on physical tapes.