[plt-scheme] running mzscheme in emacs on debian

From: Neil W. Van Dyke (neil at neilvandyke.org)
Date: Thu Oct 10 07:56:36 EDT 2002

> I seem to have run into a little problem with running mzscheme in emacs =
> on my debian distro.
> mzscheme is in my path, and in the shell comes up with only: mzscheme
> This is in my .emacs:(setq scheme-program-name "mzscheme")
> But I get a " can't find the program" error when I try to run it.

Emacs and MzScheme work fine by default on my Debian boxes.  Has
MzScheme been manually installed on your computer, rather than through
the Debian "mzscheme" package?  The first thing I'd try...

Type "which mzscheme" in your shell to verify in which directory it is
finding the "mzscheme" executable.  Then make sure that Emacs'
executable search path contains the directory by doing in Emacs:

    M-x describe-variable RET exec-path RET

If you do not see the directory with "mzscheme" there, but you can
invoke "mzscheme" from your interactive shell, then probably that
directory is not getting added to your shell's executable search path
in the process environment inherited by Emacs.

To verify, invoke the "emacs" command from the same interactive shell
from which you can successfully invoke "mzscheme" command (rather than
invoking Emacs from, say, a menu or icon in your window manager), then
try to M-x run-scheme RET within Emacs.

If that works, then probably whoever configured your account added the
PLT executable directory to the wrong startup script file, or in the
wrong place in a file.  The fix is specific to whichever shell you are
using, and possibly also to the window manager and session manager.

If that doesn't work, try invoking Emacs with "Emacs -q --no-site-file",
then manually evaluating the (setq scheme-program-name "mzscheme") form
in Emacs's "*scratch*" buffer, and then trying  M-x run-scheme RET  .
If that works, then something in your personal ".emacs" or site-wide Emacs
configuration is broken.

                                                        Neil W. Van Dyke

Posted on the users mailing list.