---
# System prepended metadata

title: Course VM/computer setup

---

# Course VM/computer setup

**Only follow these instructions if you're provisioning your own native Ubuntu machine**, I've already done this for the course provided VM (download link in Day 1 homework: https://raw.githubusercontent.com/GobySoft/goby3-course/master/homework/day1-overview/day1-overview_assignment.pdf).

## Set up machine

Ubuntu 20.04 LTS Desktop "Minimal installation" (`ubuntu-desktop-minimal`)

(VM only)
Two network adapters: one NAT and one vboxnet0 (host only).

## Core packages

Required to clone
```bash
sudo apt install git
```

Optional for Goby but we're using these components for the course:

```bash
sudo apt install clang llvm-dev libclang-dev libyaml-cpp-dev libmysqlclient-dev cmake-curses-gui graphviz screen parallel
```

(VM only - for Guest editions and ssh access):
```bash
sudo apt install gcc perl make emacs openssh-server
```

## Virtualbox Guest Additions

(VM only)
Install from CD: Go to `Devices` / `Insert Guest Additions CD Image ...`

## Install Goby from source

We're using the latest release as of this writing.

```bash
cd ~
git clone https://github.com/GobySoft/goby3 -b 3.0.17
cd goby3
# could add to .bashrc as well
export GOBY_CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_BUILD_TYPE=RelWithDebInfo" 
sudo ./DEPENDENCIES -g -m
./build.sh
```
## Install MOOS-IvP

```bash
sudo apt install moos-ivp-gui moos-ivp-apps libmoos-ivp
```
```bash
sudo apt-add-repository ppa:tes/lamss-moos10 
sudo apt update
sudo apt install moos10-ui moos10-essential
```

## Install goby3-course

```bash
cd ~
git clone https://github.com/GobySoft/goby3-course.git
cd goby3-course
# could add to .bashrc as well
export GOBY3_COURSE_CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DGOBY_DIR=$HOME/goby3/build -DCMAKE_BUILD_TYPE=Debug -Dexport_goby_interfaces=ON"
./build.sh
```

## Install OpenCPN

```bash
sudo add-apt-repository ppa:opencpn/opencpn
sudo apt-get update
sudo apt-get install opencpn
```

Add charts:
- Options: Charts
    - Chart Downloader
        - Add Catalog
        - USA - NOAA & Inland Charts
            - ENC -> by States -> MA
            - Update
            - Download Charts...
                - Download selected charts
        - Add Catalog
        - USA - NOAA & Inland Charts
            - ENC -> by States -> HI
            - Update
            - Download Charts...
                - Download selected charts
        - Apply
    - Chart Files
        - Prepare All ENC Chats

Add connection:
- Options: Connections
    - Add connection : Network
    - TCP: 127.0.0.1 Port 54000

- Options: Ships: AIS Targets
    - Check: Show target tracks, length (min): 20
    - Check: Show names with AIS Targets at scale greater than 1: 250000
    
## Install GEOV

### Install Google Earth
```bash
cd /tmp
wget https://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb
sudo apt install ./google-earth-stable*.deb
```

### Install GEOV server components

```bash
cd ~/goby3-course/scripts
sudo ./geov_mirror
```

Open profile manager (<http://localhost/geov>) and add profile for realtime `trail` and `alpha` profiles. Enable moos_opgrid for both.

In "operation region specified in x/y" use:
    - alpha: "0,0:1000,0:1000,1000:0,1000"
    - trail: "-2000,-2000:2000,-2000:2000,2000:-2000,2000"

In datum latitude use:
    - alpha: 41.587923
    - trail: 21.590491

In datum longitude use:
    - alpha: -70.712958
    - trail: -159.534166

Important: click "show simulation" on both profiles.

Click `download geov kml` and save file. Open in Google Earth and click "save to my places".

## VS Code

```bash
cd /tmp
wget 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64' -O code.deb
sudo apt install ./code.deb
```

Install desired extensions

## Add paths

in `~/.bashrc`:

```bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PATH=$HOME/goby3/build/bin:${PATH}
PATH=$HOME/goby3/scripts:${PATH}
PATH=$HOME/goby3-course/build/bin:${PATH}
export $PATH
```

