Installing UniVerse
Tags: multivalue, universe, database, tutorial
Published: 2022-02-21 16:35:01

# Installing UniVerse

2022-02-21

Hello! This will be a tutorial on installing the multivalue database, UniVerse on Centos 7 and/or RHEL 7.4

We'll be using the personal edition of UniVerse, so we won't need to deal with any licensing or setting up packages. By default, we get 2 licenses, python, connection pooling and unirpc.

- python - We can call python functions directly from BASIC, and write python programs that interface directly with multivalue files through the u2py library.
- connection pooling - There is a separate license for connections coming through the rpc port. These licenses are used to do quick things so they are constantly being taken and dropped.
- unirpc - Communicate with UniVerse over an rpc port, the default is 31438.

## Requesting UniVerse

The first step is to actually get the installation files which Rocket makes more difficult than it needs to be. I'm sure they have their reasons but I think it'd be better to just make it available without any barriers.

https://www.rocketsoftware.com/trials/rocket-universe-linux/request

You will need to request a UniVerse trial and give your name, address and e-mail to get access. This is a pretty invasive ask but it is the norm in enterprise software.

Rocket will then send you an e-mail with a download link, this took a couple of hours for me.

## Setup

Once you have the download, it will be a zip file, UVPE_LINUXX86_12.1.1.1014.zip. When you unzip it, the files will be exploded out so you want it to be contained in its own temp directory.

```
# mkdir uvpe
# cd uvpe
# mv ../UVPE_LINUXX86_12.1.1.1014.zip ./
# unzip UVPE_LINUXX86_12.1.1.1014.zip
```

The next step is to edit the STARTUP file. The STARTUP file is a bash file that contains some garbage. We'll need to replace the first line with `#!/bin/sh`. We'll also need to delete everything after `# should never get here`.

This is line 1, replace this with `#!/bin/sh`.

```
07070100042A5E000041ED00000BB7000003E7000000035FDB83EC00000000000000FD0000000800
000000000000000000000200000000.^@07070100042A5F000081C0000     00BB7000003E70000
00015FDB83EC00015284000000FD0000000800000000000000000000000800000000uv.load^@^@^
@#!/bin/sh
```

Line 2714, the last `# should never get here` text. Delete everything past that line.

```
if [ "$skip_uvinstall" = "0" ];then
    LD_LIBRARY_PATH=.:$uvhomedir/bin exec $uvhomedir/uv.install
else
    echo "Special options were used.  Run ${uvhomedir}/uv.install manually."
fi
exit 0
# should never get here
```

Now we have a cleaned up and functional installation script. Next, chmod the STARTUP file to be executable.

```
# chmod +x STARTUP
```

## Installation

Now we can begin the installation. This step will require you to be root.

The first prompt asks which user universe will be running as. You can leave this as the default which is root.

```
root@andromeda /h/n/b/uvpe# ./STARTUP

Rocket UniVerse Upgrade Procedure
=================================
The current upgrade is being done as 'root'.  The
existing installed UniVerse (at /usr/uv)
is being administered by the user 'root'.
Choose one of the following below:

1)  Keep 'root' as the owner and administrator of UniVerse.
    The current installation continues uninterrupted.

2)  Make 'uvadm' the new owner and administrator of UniVerse.
    The current installation continues uninterrupted.

3)  Stop the upgrade.

Your choice (Default action is 1):
```

The next prompt shows some basic file information which can be all left as is.

```
UniVerse Upgrade Options

The current settings of the available options are:

UniVerse installer    : root
UniVerse administrator: root  uid=0  gid=0

1) UniVerse home directory:           /usr/uv
2) UniVerse-UniData shared directory: /usr/unishared
3) Compile terminfo definitions:      true
4) Install media path:                /home/nivethan/bp/uvpe
5) Long File Names:                   ON NEWACC
6) Install XDEMO Account:             Yes

Enter a field number to change, q to abort upgrade, or
press <Return> to begin upgrade of UniVerse:
```
Long filenames lets you have long filenames, it used to be that long filenames would be split into multiple folders as there was a max length that files could be. This isn't an issue anymore so the default is long filenames are on.

The next prompt will set the owner of the sql parts of UniVerse. This will also be left as the default.

```
The user 'uvsql' does not exist. This user is the default owner of the
SQL catalog. Would you like to:

1). Continue with the upgrade, making 'root' the default owner
    of the SQL catalog.

2). Suspend the upgrade so that you can create the 'uvsql' user.

3). Stop the upgrade.

Your choice (Default action is 1):
```

With that, UniVerse will now be installed!

## Licensing

Once the installation is complete, you'll be placed in the uvadmin account.

```
                        UniVerse System Administration
Package    Accounts   Recovery   Spooler    sh Mem     Import     Devices





















<Space> or mnemonics to select, <F1> for help, arrows, <esc> to exit, or <F10>
```
You can license universe by going to Package -> License Administration. Here you can enter the serial number and authorization codes. Luckily, because this is the personal edition, it automatically got licensed and so we can go to the next step. To leave this account, you can hit escape twice to exit.

## New Account

Now that we have UniVerse ready, we can create a new account.

Go to /home and create a new folder. Once in that folder you can do /usr/uv/bin/uv to create a new UniVerse account. You can also copy over an existing UniVerse account and use that as well.

```
# cd /home
# mkdir WORLD
# /usr/bin/uv
```

This will then prompt you through the account creation steps.

```
root@andromeda /h/WORLD [127]# /usr/uv/bin/uv
This directory is not set up for uniVerse.
Would you like to set it up (Y/N)?Y
```

The next prompt will be which style of Pick you want to use. The one that we use is 3, Pick Compatibility.

```
0. Ideal UniVerse compatibility
1. IN2 compatibility
2. Prime Information compatibility
3. PICK compatibility
4. PI/open compatibility
5. Microdata Reality compatibility

Which way do you wish to configure your VOC ?
```

Voila! The account will be created and everything is now ready to go!

```
Your VOC is configured for PICK compatibility
Creating file "VOC" as Type 17, Modulo 47, Separation 4.
Creating file "D_VOC" as Type 12, Modulo 3, Separation 2.
Loading your "VOC" file.  (Each "*" = 10 records.)
***********************************************************************************
Loading your "D_VOC" file.  (Each "*" = 10 records.)
*
*Creating file "&SAVEDLISTS&" as Type 19.
Creating file "D_&SAVEDLISTS&" as Type 3, Modulo 1, Separation 2.
Added "@ID", the default record for RetrieVe, to "D_&SAVEDLISTS&".
Creating file "VOCLIB" as Type 2, Modulo 7, Separation 4.
Creating file "D_VOCLIB" as Type 3, Modulo 1, Separation 2.
Added "@ID", the default record for RetrieVe, to "D_VOCLIB".
UniVerse Command Language 12.1
Copyright Rocket Software, Inc. or its affiliates, All Rights Reserved 1985-2020
WORLD logged on: Mon Feb 21 10:48:49 2022
>
```

Now we are sitting at TCL and ready to start storing data and writing BASIC programs!