Specifying Launcher Directory/Installation Executable Directory

22 views
Skip to first unread message

Eric Eide

unread,
Jun 12, 2019, 5:39:27 PM6/12/19
to Racket Users
How does one specify the directory where a collection's launchers should be
installed?

The raco documentation describes `racket-launcher-names`
<https://docs.racket-lang.org/raco/setup-info.html>:

* racket-launcher-names : (listof string?) — A list of executable names to be
generated in the installation's executable directory to run Racket-based
programs implemented by the collection. [...]

In my experience, the "installation's executable directory" is generally
something like "$HOME/Library/Racket/<version>/bin".

How can I change this? Suppose I want to install launchers to someplace
outside of $HOME, so that the tools are easily available to users other than
the one installing the software.

Thanks ---

Eric.

--
-------------------------------------------------------------------------------
Eric Eide <ee...@cs.utah.edu> . University of Utah School of Computing
http://www.cs.utah.edu/~eeide/ . +1 (801) 585-5512 voice, +1 (801) 581-5843 FAX

Matthew Flatt

unread,
Jun 12, 2019, 8:03:32 PM6/12/19
to Eric Eide, Racket Users
If you use "installation" scope instead of "user" scope for the
package, then launchers via `racket-launcher-names` will be in the same
directory as other main-installation executables, such as `raco`. To do
that, specify `-i` with `raco pkg install` or select "Specific Racket
Installation" for the "Scope" choice in DrRacket's package-installation
dialog.

Note that if you want other users to be able to run a launcher, then
they'll need access to the modules that are referenced by the
executable (as well as the executable itself), so those probably need
to be installation-wide instead of user-specific.

But if you want the launchers some place other than the user-specific
place or the installation-wide place, then `racket-launcher-names`
won't help. You'd have to fall back to `post-install-collection` to
call a more general launcher-creation function.

(I's possible to configure more layers than just "user" and
"installation" via "config.rktd", but that's almost certainly too much
trouble.)
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/m1ef3ywkjz.fsf%40gris-dmz.flux.u
> tah.edu.
> For more options, visit https://groups.google.com/d/optout.

Eric Eide

unread,
Jun 13, 2019, 12:35:19 AM6/13/19
to Racket Users
Matthew Flatt <mfl...@cs.utah.edu> writes:

> If you use "installation" scope instead of "user" scope for the
> package, then launchers via `racket-launcher-names` will be in the same
> directory as other main-installation executables, such as `raco`. To do
> that, specify `-i` with `raco pkg install` or select "Specific Racket
> Installation" for the "Scope" choice in DrRacket's package-installation
> dialog.

Thank you! I think this is the thing I was looking for.
Reply all
Reply to author
Forward
0 new messages