Over the last couple weeks, I (and my hungry ghosts^H^H AI tools) have built rackup, a toolchain installer and manager for Racket. You can get it here: rackup
The basic idea is that you install rackup with the classic curl | sh pattern
$ curl -fsSL https://samth.github.io/rackup/install.sh | sh
Then you can do something like:
$ rackup install stable
or
$ rackup install 8.9
or
$ rackup install 4.2
and then you can do this:
$ racket -v
Welcome to Racket v9.1 [cs].
$ rackup switch 8.9
$ racket -v
Welcome to Racket v8.9 [cs].
$ rackup switch 4.2
$ mzscheme -v
Welcome to MzScheme v4.2 [3m], Copyright (c) 2004-2009 PLT Scheme Inc.
You can do lots more with it, like upgrade the internals when I fix bugs, or even install truly ancient versions if you have the right libc installed.
$ rackup install 352
$ rackup switch 352
$ mzscheme -v
Welcome to MzScheme version 352, Copyright (c) 2004-2006 PLT Scheme Inc.
rackup also handles managing your own installations of Racket, eg:
$ git clone github.com:racket/racket
$ (cd racket && make)
$ rackup link dev racket/
$ rackup switch dev
$ racket -v
Welcome to Racket v9.1.0.7-2026-02-25-26be534ac9 [cs].
There's lots more at the website, including documentation, more examples, slightly more secure installation methods, etc. You can also see the github repository here: GitHub - samth/rackup · GitHub
Rackup made it really easy for me to install a new Racket on my laptop for teaching a class just this week, so it's already making my life better.
I'm quite excited about the possibilities here, and I want to make this something that everyone who uses Racket turns to for managing their installation. If you find bugs, have feature requests, or anything else, please let me know.
Currently it supports Linux and macOS, although macOS has only been tested a little outside of CI. I hope to support Windows in the future but it's not obvious to me yet what the right approach is.
As I mentioned at the beginning, rackup has been very heavily assisted by AI coding tools (both Codex and Claude Code), and so it shows something about what can be accomplished in Racket using them -- they don't just write Python. That also means there's still significant ways that the code can be improved, but there's no way I could have built this in 10 days without them.