6.18 Tethered Installations

► |  | raco: Racket Command-Line Tools

1 | raco make: Compiling Source to Bytecode
2 | raco exe: Creating Stand-Alone Executables
3 | raco distribute: Sharing Stand-Alone Executables
4 | raco planet: Automatic Package Distribution
5 | raco pkg: Package Management
6 | raco setup: Installation Management
7 | raco decompile: Decompiling Bytecode
8 | raco demod: Demodularizing Programs
9 | raco link: Library Collection Links
10 | raco pack: Packing Library Collections
11 | raco unpack: Unpacking Library Collections
12 | raco ctool: Working with C Code
13 | raco test: Run tests
14 | raco docs: Documentation Search
15 | raco expand: Macro Expansion
16 | raco read: Reading and Pretty-Printing
17 | raco scribble: Building Documentation
18 | Adding a raco Command
19 | Installation Configuration and Search Paths

▼ | 6 | raco setup: Installation Management

6.1 | Running raco setup
6.2 | Installing ".plt" Archives
6.3 | Controlling raco setup with "info.rkt" Files
6.4 | "info.rkt" File Format
6.5 | Package Dependency Checking
6.6 | API for Setup
6.7 | API for Installing ".plt" Archives
6.8 | API for Finding Installation Directories
6.9 | API for Reading "info.rkt" Files
6.10 | API for Relative Paths
6.11 | API for Collection Names
6.12 | API for Collection Searches
6.13 | API for Platform Specifications
6.14 | API for Cross-Platform Configuration
6.15 | API for Cross-References for Installed Manuals
6.16 | API for Materializing User-Specific Documentation
6.17 | Layered Installations
6.18 | Tethered Installations

top contents ← prev up next →

### 6.18 Tethered Installations🔗ℹ

A tethered installation of Racket is a layer (see Layered Installations) that includes a wrapper executable for every executable across the installation’s layers. Each wrapper executable points back to the new layer’s "config.rktd" (see Installation Configuration and Search Paths) without the use of a PLTCONFIGDIR environment variable or --config flag. In other words, a tethered installation provides executables such as racket, raco, and drracket that are tied to the layer. Tethering thus helps to create a layer of installation that behaves in a more self-contained way, but with minimal duplication of the underlying layers.

Tethering works at either a user or installation layer:

- A user layer with tethering is represented by a fresh directory ‹addon-dir› and a "‹addon-dir›/etc/config.rktd" file that maps 'addon-tethered-console-bin-dir to ‹tethered-bin-dir›, 'addon-tethered-gui-bin-dir to ‹tethered-gui-bin-dir›, and (optionally) 'addon-tethered-apps-dir to ‹tethered-apps-dir›. Initialize the tethered layer with

  racket -A ‹addon-dir› -l- raco setup --avoid-main

- An installation layer with tethering is like a one without tethering (see Layered Installations), but where the layer’s "‹layer-dir›/etc/config.rktd" file maps 'config-tethered-console-bin-dir to ‹tethered-bin-dir›, 'config-tethered-gui-bin-dir to ‹tethered-gui-bin-dir›, and (optionally) 'config-tethered-apps-dir to ‹tethered-apps-dir›. The 'bin-dir and 'gui-bin-dir configurations can point to the same directories, but executables are not specifically created there by raco setup. Initialize the tethered layer with

  racket -G ‹layer-dir›/etc -l- raco setup

In either case, initialization creates tethered executables in the directories ‹tethered-bin-dir› and ‹tethered-gui-bin-dir›, writing ".desktop" files (for Unix) in ‹tethered-apps-dir› (if specified). Thereafter, tethered executables like ‹tethered-bin-dir›/racket and ‹tethered-bin-dir›/raco can be used to work with the tethered layer.

top contents ← prev up next →