升级DrRacket8.10到8.18版本
安装参考:在FreeBSD、Windows、Ubuntu24三种平台下安装Racket多范式编程语言_racket安装-CSDN博客
Ubuntu24.04里面的版本是8.10,所以无法使用apt upgrade升级,最终是使用下载升级软件,手工升级完成!
首先尝试直接在软件里升级,升级失败

网站提示的升级方法
Running the Linux installer:
After downloading the installer file, run it with
sh racket-8.18-x86_64-linux-buster-cs.sh
to install, possibly adding sudo to the start of the command to install to a location that requires administrator access.
When upgrading:
To restore packages installed for a previous version of Racket, use DrRacket's File > Package Manager > Copy from Version or at a command line use raco pkg migrate.
下载软件
官网很慢,所以到到清华源下载8.18版本:Index of /installers
下载后执行
sudo sh racket-8.18-x86_64-linux-buster-cs.sh
执行交互很复杂:
sudo sh racket-8.18-x86_64-linux-buster-cs.sh
[sudo] skywalk 的密码:
This program will extract and install Racket v8.18.
Note: the required diskspace for this installation is 691M.
Do you want a Unix-style distribution?
In this distribution mode files go into different directories according
to Unix conventions. A "racket-uninstall" script will be generated
to be used when you want to remove the installation. If you say 'no',
the whole Racket directory is kept in a single installation directory
(movable and erasable), possibly with external links into it -- this is
often more convenient, especially if you want to install multiple
versions or keep it in your home directory.
Enter yes/no (default: no) > yes
Where do you want to base your installation of Racket v8.18?
(If you've done such an installation in the past, either
enter the same directory, or run 'racket-uninstall' manually.)
1 - /usr/... [default]
2 - /usr/local/...
3 - ~/... (/root/...)
4 - ./... (here)
Or enter a different directory prefix to install in.
> 1
Target Directories:
[e] Executables /usr/bin (exists)
[o] Libraries /usr/lib/racket (exists)
[s] Shared files /usr/share/racket (exists)
[c] Configuration /usr/etc/racket (will be created)
[d] Documentation /usr/share/racket/doc (will be created)
[a] .desktop files /usr/share/applications (exists)
[m] Man Pages /usr/share/man (exists)
[l] C Libraries /usr/lib (exists)
[h] C headers /usr/include/racket (exists)
[z] Compiled at lib? yes
Enter a letter to change an entry, or enter to continue.
>
Checking the integrity of the binary archive... ok.
Unpacking into "/usr/racket-tmp-install" (Ctrl+C to abort)...
Done.
Moving bin -> /usr/bin
Overwrite file "/usr/bin/drracket"?
[y]es / yes to [a]ll / [n]o=abort > a
Moving collects -> /usr/share/racket/collects
Moving share/pkgs -> /usr/share/racket/pkgs
Moving doc -> /usr/share/racket/doc
Moving lib -> /usr/lib/racket
Moving include -> /usr/include/racket
Moving share/applications -> /usr/share/applications
Moving share -> /usr/share/racket
Moving etc -> /usr/etc/racket
Moving man -> /usr/share/man
Moving README -> /usr/share/racket/doc/README
Writing uninstaller at: /usr/bin/racket-uninstall...
Rewriting configuration file at: /usr/etc/racket/config.rktd...
Moving "compiled" in /usr/share/racket/collects to /usr/lib/racket/compiled/usr/share/racket/collects
Moving "compiled" in /usr/share/racket/pkgs to /usr/lib/racket/compiled/usr/share/racket/pkgs
Rewriting configuration file at: /usr/etc/racket/config.rktd...
Installation complete.
说实话,这个交互,真的很繁琐!
升级安装完成!
启动DrRacket

调试
升级后drracket启动报错
drracket
loading code: version mismatch
expected: "8.18"
found: "8.10"
in: /usr/lib/racket/compiled/usr/share/racket/pkgs/drracket/drracket/private/compiled/drracket-normal_rkt.zo
possible solution: running `racket -y`, `raco make`, or `raco setup`
context...:
body of "/usr/share/racket/pkgs/drracket-core-lib/drracket/drracket.rkt"
执行
sudo raco setup
搞定!