Print

Print


You probably solved the problem by now, but here are a few general tips 
for dealing with unix, linux, or mac os x.


1.  The value of $FSLDIR is irrelevant for running fsl from the command 
line.  $FSLDIR exists so that it can be called by shell scripts.  Thus, 
ppl can write scripts that don't hard code the location of the FSL home 
directory.  But $FSLDIR is not where the shell looks for fsl.


2. When you type a command from a terminal command line, the shell (i.e. 
terminal command interpreter) looks for the command (aka "executable") 
by searching the directories specified in the $PATH environment 
variable.  BTW, the shell program is actually called "bash" (for 
"bourne-again shell" it's some kind of nerd joke).  In other words, 
"bash" is the program that interprets everything you type at the command 
prompt.  There are a bunch of other shell programs (bsh, ksh, tcsh, 
dash), but bash is pretty much the standard one for mac os x.  The 
standard for Ubuntu is "dash"

Anyway, try typing "$PATH" at the command line.  You should get some 
mess that includes the following:

    /Applications/fsl/bin

This is where the executable for fsl should live.  When you see this, it 
means that the shell knows where to find fsl.  If you don't see this, it 
means that the shell cannot find fsl.  It doesn't matter what any of the 
other environment variables are set to.

The fsl installation scripts should automatically add 
"/Application/fsl/bin" (or whatever dir the fsl executable lives in) to 
the PATH.  If not, you can do it yourself by typing the following lines 
at the command line:

    FSLDIR=/Applications/fsl
    PATH=${FSLDIR}/bin:${PATH}
    export FSLDIR PATH


3. There is a file that bash uses to set user-specific environment 
variables, including the PATH, when you log in.  It is called 
.bash_profile and lives at the top level of your home directory.  You 
can check the contents of .bash_profile by typing the following at the 
command line:

    cd
    cat .bash_profile

It should come back with:

    FSLDIR=/Applications/fsl
    . ${FSLDIR}/etc/fslconf/fsl.sh
    PATH=${FSLDIR}/bin:${PATH}
    DISPLAY=localhost:0.0
    export FSLDIR PATH DISPLAY

If not, you can edit .bash_profile with any text editor or word 
processor, but make sure to save it as plain text.  .bash_profile is a 
hidden file, so you won't see it if you are using a program like Word or 
TextEdit.  But you can use emacs, which is installed on most Mac OS X 
systems:

    cd
    emacs .bash_profile

You can find emacs manuals online.  You only need to know a few basic 
commands to use it effectively.


4. You can see the values of all environment variables by typing 
"printenv" at the command line.


5. You can find the full path for any executable by using "which"  I.e. 
"which fsl" at the command line should return 
"/Application/fsl/bin/fsl"  But this only works if the shell can find 
fsl in the first place.


6. I don't think .bashrc is essential.  I do not have it on my system 
and fsl runs fine.  My understanding is that ~/.bash_profile is run when 
you login while ~/.bashrc is run each time you open a terminal.  So 
maybe you have to log out and log back in to make sure that the settings 
in .bash_profile are being used.



Dianne Patterson wrote:

> I'd try opening a new shell first, so that you are starting with a 
> prompt that has refreshed its knowledge of what is on your machine.
>
> If that doesn't work, try typing the entire path to the fsl program....
> .bashrc may need that path if you just want to type fsl and have it 
> find the program.
>
> The experts may have other views...but these things should not hurt, 
> and might solve the problem.
>
> -Dianne
>
> On Sun, Oct 19, 2008 at 6:23 AM, M. Bester <[log in to unmask] 
> <mailto:[log in to unmask]>> wrote:
>
>     Hello !
>
>     I installed FSL 4.1 with the fsl_installer script on my mac. a
>     bash_profile
>     file exists in my homefolder. while the command echo $FSLDIR gives
>     my the
>     right answer, typing fsl gives back: no such command. what did i
>     do wrong?
>
>     thanks,
>
>     m.bester
>
>
>
>
> -- 
> Dianne Patterson, Ph.D.
> [log in to unmask] <mailto:[log in to unmask]>
> University of Arizona
> SHLS 328
> 621-5105