Skip to content

Installing on UniData

Gordon Heydon edited this page Aug 24, 2026 · 1 revision

Installing on Rocket UniData

Installs udt-git (the shell CLI) and the in-session GIT verb from a release tarball. Takes a few minutes; needs sudo.

1 — Prerequisites

A UniData install. $UDTHOME defaults to /usr/ud83; set it if yours differs.

libgit2 at run time. The release binaries link libgit2.so.1.7. libgit2's soname pins major.minor, so a different series will not load — 1.9 is not a substitute for 1.7. On Enterprise Linux 8 it comes from EPEL:

$ sudo dnf install -y epel-release
$ sudo dnf install -y libgit2_1.7

The base RHEL/Rocky 8 libgit2 is 0.26 and will not work.

A locale UniData accepts. The installer defaults to en_US.UTF-8. Do not use C.UTF-8 or POSIXudt rejects them (see troubleshooting).

2 — Unpack and install

Download the udt tarball for your platform from the latest release:

$ tar xzf mv_git-2.0.0-udt-linux-x86_64-le.tar.gz
$ cd mv_git
$ ./install.sh

Unpack it as the user who should own it — the installer takes that user as the operator and catalogs as them. Cataloging as root leaves a root-owned CTLG that later breaks upgrades.

The unpacked directory is a UniData account, and it stays where you put it — the installer turns it into a real one rather than copying files elsewhere. Do not delete it afterwards.

./install.sh does the host-level, once-per-machine work:

  1. udt-git/usr/local/bin, and the verb source → $UDTHOME/lib/mvgit
  2. newacct on this directory so udt can LOGTO it
  3. builds $UDTHOME/bin/libu2callc.so so the GIT* CallC functions resolve
  4. compiles and globally catalogs the GIT verb, so GIT works in every account on the box

Useful environment variables: UDTHOME (default /usr/ud83), UDT_OWNER / UDT_GROUP (the account owner), LANG.

3 — Per account

The verb is global after step 2, so each account needs only a repository:

$ udt-git -a /usr/ud83/demo init

Or, from inside the account, using the shipped setup program:

ED VOC GIT.BP
001: DIR
002: /home/rocky/mv_git/BP
003: /home/rocky/mv_git/D_BP

RUN GIT.BP GIT.SETUP

Then GIT INIT, and add / commit / status / log as usual.

4 — Check it works

$ udt-git --version
$ cd /usr/ud83/demo && udt-git status

and in a session:

:GIT STATUS

Both should agree. If the CLI says clean and the verb does not, you are running something older than 2.0.0 — that disagreement was #108.

How the CLI reaches your records

udt-git starts a UniData session as you and talks to it over a pipe (the account I/O agent). It does not use InterCall/UniObjects and needs no unirpcd, no udcs service, and no stored password.

If you followed older instructions: UDT_HOST, UDT_SERVICE, UDT_USER and UDT_PASSWORD are no longer used by the CLI. That route authenticated with a stored password rather than as the person running the command, and was replaced in #45. You can drop those variables and the UniRPC server setup entirely.

Upgrading

Unpack the new release over a fresh directory and run ./install.sh again. Accounts keep their repositories; nothing in .git is touched.

One-off after upgrading to 2.0.0: the first in-session GIT ADD restates dictionary records once, because the verb now stages them in the same canonical form the CLI always has (#108). That is expected, and happens once.

See also

Clone this wiki locally