Skip to content

Installing on UniVerse

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

Installing on Rocket UniVerse

Installs uv-git (the shell CLI), mvgitd (the background git process) and the in-session GIT verb from a release tarball.

Why there is a background process

UniVerse gives BASIC no in-process route to libgit2: GCI is licensed and non-functional in the Trial Edition, and InterCall is a separate client SDK not available for Linux. So the git-object work runs in mvgitd, which the session reaches over a named pipe.

mvgitd starts on demand, runs as whoever started it, and exits with their session. There is no service to install, nothing to administer, and no daemon running when nobody is using git.

1 — Prerequisites

A UniVerse install, with uv on PATH.

libgit2 at run time, same constraint as everywhere — the binaries link libgit2.so.1.7, and the soname pins major.minor:

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

EL8's base libgit2 is 0.26 and will not work.

2 — Unpack and install

From the latest release:

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

The unpacked directory is the account, and stays where you put it. install.sh:

  1. installs uv-git and mvgitd to /usr/local/bin (-p <prefix> to change it)
  2. makes this directory a UniVerse account, if it is not one already
  3. writes the platform header, then compiles and catalogs the GIT verb here

3 — Per account

Unlike UniData, the verb is cataloged locally, so every account that wants GIT needs setting up. Run the installer's verb-only mode from inside that account:

$ /path/to/mv_git/install.sh --verb-only

mvgitd is shared and needs nothing per account.

Then create the repository, from a session:

:GIT INIT

or from the shell:

$ uv-git -a /path/to/account init

4 — Check it works

$ uv-git --version
$ uv-git -a /path/to/account status

and in a session:

:GIT STATUS

Both should agree.

A note on cloning

A freshly cloned account has no cataloged verb yet — cloning builds records, not a catalog. Run install.sh --verb-only inside the clone to make GIT usable there; this is what #56 added it for.

Troubleshooting

mvgitd seems to ignore a new build. It is long-running for the life of a session. After upgrading, end the session (or pkill mvgitd) so the next call starts the new binary — an old one serving a new install produces confusing, self-consistent wrong answers.

A stale licence after a hard kill. A SIGKILLed CLI used to leave its session holding a licence (#48); if you see licence exhaustion, check for orphaned uv processes.

See also

Clone this wiki locally