> 技术文档 > 升级DrRacket8.10到8.18版本@Ubuntu24.04

升级DrRacket8.10到8.18版本@Ubuntu24.04


升级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) > yesWhere 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.> 1Target 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? yesEnter 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/binOverwrite file \"/usr/bin/drracket\"? [y]es / yes to [a]ll / [n]o=abort > aMoving collects -> /usr/share/racket/collectsMoving share/pkgs -> /usr/share/racket/pkgsMoving doc -> /usr/share/racket/docMoving lib -> /usr/lib/racketMoving include -> /usr/include/racketMoving share/applications -> /usr/share/applicationsMoving share -> /usr/share/racketMoving etc -> /usr/etc/racketMoving man -> /usr/share/manMoving README -> /usr/share/racket/doc/READMEWriting 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/collectsMoving \"compiled\" in /usr/share/racket/pkgs to /usr/lib/racket/compiled/usr/share/racket/pkgsRewriting 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

搞定!