1.1.2. Linux, Ubuntu 15.10 and earlier¶
The essential system setup
These setup instructions are for Ubuntu Linux version 20.04 (Focal Fossa). And a note of thanks to Chris Rorden, who contributed advice to these instructions!
Each step involves either copy+pasting a command, or clicking on a download link.
Admin privileges are needed for some steps: check if you can run
sudo ls, entering the correct password. If you can’t, perhaps ask an administrator to do that step, and you can do the others that don’t require it.
Note your terminal shell type (
csh, etc.), by copy+pasting:
Do the system check in the “Evaluate” stage. Try any recommendations in its “Please Fix” section.
If you run into any problems, please just ask a clear question on the AFNI Message Board.
To copy and paste in a Linux terminal, one can use
Ctrl+Shift+v, respectively. (In WSL terminals, one might first enable this functionality: rightclick on the panel’s taskbar, select “Properties” and put a checkmark by this option.)
To open a text file, use any text editor you like, and/or you can type
gedit FILENAME, such as either:
gedit ~/.bashrc gedit ~/.bashrc &
To be able to install latest packages, copy+paste:
sudo apt-get update
… versions 15.04 and earlier, copy+paste:
sudo apt-get install -y tcsh libxp6 xfonts-base python-qt4 \ python-matplotlib \ libmotif4 libmotif-dev motif-clients \ gsl-bin netpbm xvfb gnome-tweak-tool \ libjpeg62 xterm gedit evince firefox eog \ xfonts-100dpi
sudo apt-get update
… version 15.10, copy+paste:
sudo apt-get install -y tcsh xfonts-base python-qt4 gedit evince \ python-matplotlib \ libmotif4 libmotif-dev motif-clients \ gsl-bin netpbm xvfb gnome-tweak-tool \ libjpeg62 firefox eog xfonts-100dpi
sudo apt-get update
sudo ln -s /usr/lib/x86_64-linux-gnu/libgsl.so /usr/lib/libgsl.so.0
sudo dpkg -i http://mirrors.kernel.org/ubuntu/pool/main/libx/libxp/libxp6_1.0.2-2_amd64.deb
sudo apt-get install -f
(To check your version number, copy+paste:
Purpose: Installs a lot of packages that AFNI depends on (so we don’t have to reinvent the wheel!).
… (default) installing the binaries from online, copy+paste:
cd curl -O https://firstname.lastname@example.org tcsh @update.afni.binaries -package linux_openmp_64 -do_extras
… (alternative) installing already-downloaded binaries, you can use
-local_package ..(replace “PATH_TO_FILE” with the actual path; also, if
@update.afni.binarieshas also been downloaded, you can skip the
curl ..command), copy+paste:
cd curl -O https://email@example.com tcsh @update.afni.binaries -local_package PATH_TO_FILE/linux_openmp_64.tgz -do_extras
Purpose: Download and unpack the current binaries in your
$HOMEdirectory; set the AFNI binary directory name to
$HOME/abin/; and add that location to the
Check your shell type (
echo $0). For …
setenv R_LIBS $HOME/R mkdir $R_LIBS echo 'export R_LIBS=$HOME/R' >> ~/.bashrc echo 'setenv R_LIBS ~/R' >> ~/.cshrc curl -O https://afni.nimh.nih.gov/pub/dist/src/scripts_src/@add_rcran_ubuntu.tcsh
export R_LIBS=$HOME/R mkdir $R_LIBS echo 'setenv R_LIBS ~/R' >> ~/.cshrc echo 'export R_LIBS=$HOME/R' >> ~/.bashrc curl -O https://afni.nimh.nih.gov/pub/dist/src/scripts_src/@add_rcran_ubuntu.tcsh
Purpose: Step 1 of setting up modern R from scratch. Set the environment variable
$R_LIBSto specify where to install+find the packages. The file obtained using
curlcontains instructions to add a more uptodate set of R libraries to the source list.
sudo tcsh @add_rcran_ubuntu.tcsh
Purpose: This script updates your package manager to be able to get a modern version of R. If you don’t already have R on your system, it will install it. If you do have R, it will stop and ask if you want to remove it and update it, or not.
rPkgsInstall -pkgs ALL
Purpose: Get specific R packages needed for AFNI programs. This step might take a while to complete.
AFNI has very minimal Python requirements—at present, matplotlib and numpy. For example, for the recommended automatic QC output from afni_proc.py, matplotlib is necessary.
You can use any method to install+manage Python and its dependencies. In fact, your OS might have all the Python+modules needed to run AFNI already. Check this by running:
... and seeing there are no notes in the “Please fix” section at the end—if there are none about Python, then you are all set!
But if you do still need to setup Python with appropriate modules, or you want to manage different environments with different package needs (Python or otherwise), then we note that we have found Miniconda to be convenient. It is cross-platform (with occasional OS-specific quirks). If you are interested in either using it or reading more about it, you can check out this tutorial, which has both verbose and quick instructions.
But Miniconda is not required.
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: Download the Bootcamp class data; untar+unzip it (= open it up); move into the newly opened directory; execute a script to copy the files to
$HOME/..If no errors occur in the above, and your
afni_system_check.pysays things are OK, you can delete/remove the tarred/zipped package, using “
rm CD.tgz”. If you are really confident, you can also deleted the CD/ directory in the present location.
- !Pro tip!: Bring a computer mouse to use at the Bootcamp. It is muuuuch easier to follow the demos that way.
Read+practice with the handy Unix documentation/tutorial.
Purpose: give you a quick lesson/refresher on using basic Linux shell commands (e.g., ls, cd, less, etc.). It will greatly enhance your bootcamp experience– we promise!
- Read the “Please Fix” section at the end. If there are no suggestions, then rejoice! Otherwise, try the suggestion(s) there.
Open up the AFNI and SUMA GUIs, juuuust to make sure all is well:
afni sumaReport any crashes!
If stuck, then …
… put any error message into an online search, and/or post a question on the Message Board
… copy+paste this:
afni_system_check.py -check_all > out.afni_system_check.txt
... and email the file “out.afni_system_check.txt” to an AFNI Guru for advice.
To improve your life when using the terminal, copy+paste:
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 ltr ls --color -ltr' >> ~/.cshrc echo 'alias ls="ls --color"' >> ~/.bashrc echo 'alias ll="ls --color -l"' >> ~/.bashrc echo 'alias ltr="ls --color -ltr"' >> ~/.bashrc
Purpose: The first commands set up
tcsh(which should already be enabled for
bash, 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.
If you plan to use the FATCAT_matplot functionality in AFNI, then copy+paste the following:
@afni_R_package_install -shiny -circos
Purpose: This script will install the R packages for FATCAT_matplot and other ‘shiny’ tools (via bioconductor). And it might take a little while to complete…
To update your AFNI sometime, copy+paste:
Purpose: This will automatically download the correct, latest AFNI version to your computer, replacing your old binaries. It will also update the
apearchhelp information. Update often!
To check your AFNI version, copy+paste:
Purpose: Report this useful info whenever asking a question on the Message Board!
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.