freemapperDeutsch

Manual › freemapper-print

2. Installation

Download the archive for your system from the release page, unpack it and check the program with freemapper-print --version. The steps for each system, including the warning about an unsigned program on first start, are in the README, section "Installation". An AI agent can do them for you (chapter 3).

Updates

A release build updates itself. One command installs the newest release in place:

freemapper-print update

It looks up the newest release, says what is new and asks "Install it now? [y/N]". On yes it downloads the program for your system, checks the signature and the checksum and replaces the running program at the same path, so a registration of the MCP server keeps working. Nothing unsigned or unverified is installed. If the signature does not verify, the command ends with an error and changes nothing.

SwitchWhat it does
--checkOnly checks. Exit code 10 when a newer version exists, 0 when this one is current.
--yesInstalls without asking. Needed when the input is not a terminal, for example in a script.
--version <X.Y.Z>Installs this version instead of the newest one, also an older one.
--rollbackGoes back to the version the last update replaced.
--mode notify|install|offStores what the daily check does when it finds a newer version (default: notify).

A release that was published before the update existed cannot update itself; install the first one with the update by hand once. If the newest release needs a newer updater than the one you run, update says so and names the version to install by hand.

The daily check

After init, check, export and render, and at the start of mcp and edit, the program checks once for a newer release, at most once in 24 hours. It runs alongside the command and gets 3 seconds. A slow or unreachable GitHub changes neither the output nor the exit code of your command; the attempt counts as failed and the next one comes a day later. numbers, masks and update do not check. The check does nothing when the environment variable CI is set.

What it reports depends on the mode:

  • notify (the default): one line on standard error, "freemapper-print 1.2.3 is available (you have 1.2.2). Update with: freemapper-print update". edit prints it once at its start, and the MCP server hands it to the agent with its first result (chapter 3).
  • install: installs the newer version after a command that ended with exit code 0. A check that finds notes ends with exit code 1 and so installs nothing. mcp and edit never install. The new version applies from the next start.
  • off: no check and no request.

freemapper-print update --mode off writes the setting, and FREEMAPPER_PRINT_UPDATE=off (or notify, install) overrides it for as long as it is set.

What is sent

The check requests the update manifest freemapper-print-update.json and its signature freemapper-print-update.json.minisig from the GitHub releases, and update also downloads the program itself. The requests carry the fixed User-Agent freemapper-print/<version> (+https://github.com/HenryJobst/freemapper-print): program, version and repository. They carry no data about you or your project, and the program has no telemetry. Apart from the check and update, the program makes no network requests.

Folders

WhatWhereOverride
The setting [update] modesettings.toml in freemapper-print in the system's configuration folderFREEMAPPER_PRINT_CONFIG_DIR names the folder that holds settings.toml
The time and result of the last checkupdate-check.json in freemapper-print in the system's cache folderFREEMAPPER_PRINT_CACHE_DIR names the folder

Deleting update-check.json makes the next command check again.

Rollback and the folder of the program

An update keeps the replaced version next to the program as freemapper-print.previous (Windows: freemapper-print.previous.exe). freemapper-print update --rollback swaps the two back and prints where the version you left is kept. Another update replaces the file.

The program does not ask for administrator rights. If its folder is not writable, for example /usr/local/bin or C:\Program Files, update names the folder, changes nothing and ends with exit code 1. Unpack the new release there by hand, or move the program to a folder you can write to.

Builds from source

A program built from source, and a release built without the signing key, cannot update itself. update says so, names the release page and the way to update a clone (git pull, then cargo build --release --locked) and ends with exit code 0. The daily check stays silent in such a build. --mode works anyway, since it only writes the setting.

Version: v0.11.0 · Source on GitHub