1.1.3. Ubuntu Linux (16.04 and some higher): The essential system setup

Here we describe installation and system setup for modern Ubuntu Linux versions, specifically 16.04 (Xenial Xerus). It may work for later systems, as well. For earlier versions of Ubuntu, please see the relevant instructions here.

For each step, either:
  1. copy+paste commands from the green fields into the terminal (help and shortcuts here), or
  2. click on a link to download+install a package.

We assume the user has admin privileges (can run sudo ...), and some steps require an internet connection. Some steps depend on the OS version.

To find out what shell you are using (e.g., bash or tcsh), type:

echo $0
IMPORTANT: Please:
  1. Do all steps.
  2. Run afni_system_check.py -check_all in the “Evaluate” stage.
  3. And follow the system check recommendations in the output “Please Fix” section.

If anything seems problematic, please just ask a clear question on the Message Board.

Install prerequisite packages

  1. Copy+paste:

    sudo add-apt-repository universe
    sudo apt-get update
    
    sudo apt-get install -y tcsh xfonts-base python-qt4       \
                            gsl-bin netpbm gnome-tweak-tool   \
                            libjpeg62 xvfb xterm vim curl     \
                            gedit evince                      \
                            libglu1-mesa-dev libglw1-mesa     \
                            libxm4 build-essential
    

    Purpose: Installs a lot of packages that AFNI depends on (so we don’t have to reinvent the wheel!).

  2. Copy+paste:

    sudo apt-get install -y gnome-terminal nautilus          \
                            gnome-icon-theme-symbolic
    

    Purpose: Useful for improving terminal behavior, especially if you are following the Windowsy WSL or (older) BoUoW instructions. This may take a little while to complete running.

Install AFNI binaries

Copy+paste:

cd
curl -O https://afni.nimh.nih.gov/pub/dist/bin/linux_ubuntu_16_64/@update.afni.binaries
tcsh @update.afni.binaries -package linux_ubuntu_16_64  -do_extras

Purpose: These commands: download and unpack the current binaries into your $HOME directory; set the AFNI binary directory name to $HOME/abin/; and add that location to the $PATH in both ~/.cshrc and ~/.bashrc.

Note

If the binary package has already been downloaded, one can use -local_package, followed by the location+name of the binary file, e.g.:

tcsh @update.afni.binaries -local_package linux_ubuntu_16_64.tgz -do_extras

Reboot

Copy+paste (to reboot):

reboot

Purpose: This deals with system updates, any change in login shell, and path updates.

Install R

  1. Copy+paste the following:

    • for tcsh:

      setenv R_LIBS $HOME/R
      mkdir $R_LIBS
      echo 'setenv R_LIBS ~/R' >> ~/.cshrc
      curl -O https://afni.nimh.nih.gov/pub/dist/src/scripts_src/@add_rcran_ubuntu.tcsh
      sudo tcsh @add_rcran_ubuntu.tcsh
      
    • for bash:

      export R_LIBS=$HOME/R
      mkdir $R_LIBS
      echo 'export R_LIBS=$HOME/R' >> ~/.bashrc
      curl -O https://afni.nimh.nih.gov/pub/dist/src/scripts_src/@add_rcran_ubuntu.tcsh
      sudo tcsh @add_rcran_ubuntu.tcsh
      

    Purpose: Setup modern R from scratch. This relies on the environment variable $R_LIBS, which specifies where to install the packages and where to read them from later (when R programs run). The file obtained using curl contains instructions to add a more uptodate set of R libraries to the source list.

  2. Copy+paste the following:

    rPkgsInstall -pkgs ALL
    

    Purpose: Get specific R packages needed for AFNI programs.

Make AFNI/SUMA profiles

Copy+paste the following:

cp $HOME/abin/AFNI.afnirc $HOME/.afnirc
suma -update_env

Purpose: As noted in the Technical notes, AFNI and SUMA have a lot of default settings, controlled using environment variables. The above initializes vanilla-mode profiles with default values for both AFNI and SUMA.

These files ($HOME/.afnirc and $HOME/.sumarc) can be edited to the user’s heart’s content, setting up specific profile features you want when using AFNI and SUMA (e.g., having left=left when viewing axial slices, making default colorbars, etc.).

Prepare for Bootcamp

Copy+paste the following:

curl -O https://afni.nimh.nih.gov/pub/dist/edu/data/CD.tgz
tar xvzf CD.tgz
cd CD
tcsh s2.cp.files . ~
cd ..

Purpose: In order, these commands: get the tarred+zipped directory that contains the class data (and is hence named “CD”), downloading it to the current location in the terminal; untar/unzip it (=opens it up); go into the newly opened directory; execute a script to copy the files to $HOME/CD/; and finally exit the directory.

At this point, if there have been no errors, you can delete/remove the tarred/zipped package, using “rm CD.tgz”. If you are really confident, you can also deleted the CD tree in the present location (but leaving it in $HOME/CD/).

Note

If using Linux terminal commands is new to you, then do look over the handy Unix documentation/tutorial and practice a few of the basic commands on your own system (e.g., ls, cd, less, etc.). It will greatly enhance your bootcamp experience– we promise!

Evaluate setup/system (important!)

  1. Copy+paste the following, and read the displayed “Please Fix” section at the end of the output (try the suggestions there!):

    afni_system_check.py -check_all
    

    … and, for extra help, copy+paste this:

    afni_system_check.py -check_all > out.afni_system_check.txt
    

    and email the file “out.afni_system_check.txt” to your local AFNI Guru for advice.

  2. Open up the AFNI and SUMA GUIs, juuuust to make sure all is well:

    afni
    suma
    

    Report any crashes!

  3. If the “system check” gives any errors, please:

Niceify terminal (optional, but goood)

To improve your life when using the terminal, copy+paste these:

echo 'set filec'    >> ~/.cshrc
echo 'set autolist' >> ~/.cshrc
echo 'set nobeep'   >> ~/.cshrc

echo 'alias ls ls --color=auto' >> ~/.cshrc
echo 'alias ll ls --color -l'   >> ~/.cshrc
echo 'alias ls="ls --color"'    >> ~/.bashrc
echo 'alias ll="ls --color -l"' >> ~/.bashrc

Purpose: The first commands set up tab autocompletion for tcsh (which should already be enabled for bash users by default). The second set of commands make aliases so that different types of files (“normal” files, zipped files, executables, et al.) and directories are shown using different colors and boldness. It makes it much easier to navigate on a terminal, IMHO.

Also, consider running gnome-tweak-tool and changing Windows -> Focus Mode from ‘click’ to ‘mouse’.

Also, consider extending time for screen saver: System Settings -> Brightness & Lock, and set inactivity duration.

Keep up-to-date (remember!)

  1. To update your AFNI any time in the future, just run:

    @update.afni.binaries -d
    

    That’s it!!

    Purpose: This will automatically download the correct, latest AFNI version to your computer, replacing your old binaries. It will also update the apearch help information. Update often!

  2. Check your AFNI version by typing:

    afni -ver
    

    Purpose: Report this useful info, whenever asking a question on the Message Board!

Note

The record of all changes (new options, new programs, bug fixes, et al.) in AFNI programs is maintained for all to see in the online AFNI History.