mailing-list for TeXmacs Users

Text archives Help


Re: [TeXmacs] session maxima; session tableur ?


Chronological Thread 
  • From: "Enrique Perez-Terron" <address@hidden>
  • To: address@hidden, "El.Douwen" <address@hidden>
  • Subject: Re: [TeXmacs] session maxima; session tableur ?
  • Date: Thu, 23 Jun 2011 18:04:51 +0200

On Thu, 23 Jun 2011 07:51:07 +0200, El.Douwen <address@hidden> wrote:

I have installed maxima at the place i install all the aplications in os X : that is to say ... the folder /Applications
i understand that terminal does not find maxima, and so, you explain that texmacs can not find something that terminal doesn't find. ok
i don't realy see how the computer interprets the command "maxima" in the terminal. I have an application given with mac os X and called "textedit". If in type "textedit" or "Textedit" in the os X terminal, it says "command not found". I deduce from this that there is not a terminal command corresponding to every os X application.


"There is not a terminal command corresponding to every os X application"

Hey, are you missing this little piece of information?

The "terminal" is really two programs. The first one is the terminal proper, which just draws the terminal window and the text within it, handles the scrollbars and remembers what text to show when you use the scrollbars. The terminal also gathers key-presses and sends them on to the second program.

The second program is a "shell". You can install different shells on a system, this is really just a program like any other. A shell knows of a few commands, but if you write a command the shell does not recognize, the shell assumes there is a file somewhere of that name. So if you write "maxima ding dong", the shell looks at the first word, "maxima", and then searches the disk for a file called "maxima". If it finds one, it asks the OS to load it as a program, and run it.

(The additional words "ding dong" or whatever you write, are passed along to the new program, and will perhaps be interpreted by that program, in whatever way it pleases. Often the additional words are file names that the program is supposed to read or write. The shell does not care, it just passes these words along.)

So there really is a "terminal command" for every executable file in your system!

And every "os X application" is an executable file somewhere on your disk.

Only that the shell does not look in absolutely all folders to find the named executable file.

All running programs on the system have each a list of strings called "the environment". Each string consists of a unique name, an equal sign, and some more text which is the "value" corresponding to that name. Whenever one program starts another, the second program inherits this list from the parent program, except as the parent first modifies it if required. Remember that no program is started just by you. When you start a program, you do so using the mouse or whatever, and there is a program already running that monitors your mouse movements and starts your program as you indicate. That already-running program supplies an "environment" to the program you start. And no, that already-running program is not just "the OS X", it is a different kind of shell that the OS X starts when you log in. A shell that does not use command lines but rather mouse gestures and keyboard shortcuts. So the ultimate source of the environment strings is the primordial login shell, that reads the initial environment from somewhere, or even earlier in the system that handles the login procedure.

Among the conventional elements of the environment there is a string "PATH=.....". The value part of this variable is used by the shell and by almost every other program as well, to determine in what folders to look if you supply a program name without specifying the folder in which it resides.

But you may specify the folder name, like this (but translate this to OS X conventions, I don't have a mac):
"/folder/subfolder/maxima ding dong"

In this case the first part of the command begins with a "/", which is the Unix/Linux convention for the root of the file system. On Windows the equivalent would be like "C:\folder\subfolder\maxima", and on windows the shell will likely also append ".bat", ".exe", ".com", and a few other extensions and try each in turn. The OS X conventions may differ.

When the file name contains folder separators ("/" in Unix/Linux, ":" in older Macs, don't know for OSX) then the shell does not use the PATH environment variable to determine where to look for the specified file. It uses the given string as is.

So, as others here have indicated, you need to teach your Mac where to find the "maxima" executable. First locate the actual folder where the file resides. Then ask around and figure out how to add this folder name to the PATH variable that the system passes around to the programs. This may be different in different OSes. Windows keeps an initial environment in the registry. If the shell in your terminal window is "bash" or anything related, the shell reads a startup file, which you can edit. Add a line PATH="$PATH:/folder/subfolder"
but adapt this to the applicable conventions for your shell and OS X

By the way, the standard mouse-driven shell in Windows (and perhaps also in OS X) does not often use the PATH variable, because when you double-click an icon on the screen, that icon contains a complete /folder/file path specification. Which is why people can use the computer without knowing about the PATH variable.

-Enrique



Archive powered by MHonArc 2.6.19.

Top of page