Much like Python, Racket packages and modules have their own special build system. To learn more about the specifics of Racket package system, please refer to the Racket Docs.
RacketPackage base classes provides an
install phase that
can be overridden, corresponding to the use of:
$ raco pkg install
raco supports a second,
setup phase; however, we have not
implemented this separately, as in normal circumstances,
install also handles
Unlike Python, Racket currently on supports two installation scopes for packages, user
or system, and keeps a registry of installed packages at each scope in its configuration files.
This means we can’t simply compose a “
RACKET_PATH” environment variable listing all of the
places packages are installed, and update this at will.
Unfortunately this means that all currently installed packages which extend Racket via
raco pkg install
are accessible whenever Racket is accessible.
Additionally, because Spack does not implement uninstall hooks, uninstalling a Spack
will have no effect on the
raco installed packages visible to your Racket installation.
Instead, you must manually run
raco pkg remove to keep the two package managers in a mutually