4

I am running MacOS 10.14.2.

Running from Terminal works.

> "/Applications/Racket v7.1/bin/DrRacket"

But DrRacket crashes or doesn't run (can't tell which) when I launch the app from Launchpad, and the same goes for when locating the executable in Finder and Right-clicking and selecting "Open" (which should allow me to bypass any security checks).

2
  • Please create a tag for Racket (language)
    – Ryan
    Commented Jan 29, 2019 at 20:39
  • Don't know what (Dr) Racket is, but assuming the path shown above is the complete path to the binary executable, that explains why it works from Terminal and not from Finder/Launchpad. I don't have the specifics, but "MacOS" apps are required to have a specific folder structure. You run the "folder" (/Applications/Racket v7.1) and Finder locates the "real" executable by looking inside a certain folder structure. And "./bin" isn't it. When this app does run from the Terminal, does it run inside the Terminal window, or does it launch its own GUI? Does it require "X" to be running too?
    – jimtut
    Commented Jan 30, 2019 at 2:35

3 Answers 3

2

It is due to outdated code signatures. MacOS prevents it from running. To override this behavior, the developers of DrRacket told me to drag the app out of the folder and back into the folder to force MacOS to trust the app. This worked.

1
  • That's an amazing and so helpful answer as the bug is still (or again) a problem on latest build on m1 montery beta. But why does it work? I thought subsequent to High Sierra OS X checked for the code signature at every launch and besides moving doesn't remove the quarantine attribute (removing that is also sufficient to fix)? Anyway thanks so much never would have thought of that. Commented Jun 28, 2021 at 5:46
1

Since it is cross-platform, Racket was not built using the standard macOS App Bundle and opening the DMG just displays a folder, not an app. Within the folder is the DrRacket.app, which launches via Finder or Launchpad. It also contains the various folders for a more traditional command-line installation.

As of Racket 7.2, "/Applications/Racket\ v7.2/bin/drracket" (note the lowercase), is a shell script designed to launch the GUI app via the Terminal. Also contained within the folder is a terminal-based "racket" application.

You can drag the DrRacket.app file from the top-level of the Racket 7.X folder to the Desktop or Dock if you want a quick way of launching the GUI or use Spotlight.

1

If you want to fix all of the apps in the Racket download at once (bug still exists/returned on monterey beta/m1) you can execute the following command in the terminal in the top level Racket folder (the one you copied out of the dmg):

find . -name '*.app' -exec xattr -d com.apple.quarantine "{}" \;

This will remove the quarantine attribute on the files.


If you run it in apps directory it will unquarantine all binaries (generally not what you want but can be helpful if you just moved to a new machine and don't want to manually authorize each non-signed app you have installed).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .