1.1.6. Linux, Fedora and Red Hat¶
The essential system setup
What to do?¶
These setup instructions are for modern Linux versions of Fedora (21+) and Red Hat (RHEL) 7, along with the corresponding CentOS 7.
Each step involves either copy+pasting a command, or clicking on a download link.
The user must have admin privileges (can run
sudo ...
). Some steps require an internet connection.Is your terminal shell
bash
ortcsh
(or other)? To find out, type:echo $0
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 Message Board.
To open a text file, you can type
gedit FILENAME
. For example, to open the bash “rc” file:gedit ~/.bashrc &
Install prerequisite packages¶
To be able to install latest packages, copy+paste:
sudo yum update
For …
… Fedora, copy+paste:
sudo yum install -y tcsh libXp openmotif gsl xorg-x11-fonts-misc \ PyQt4 R-devel netpbm-progs gnome-tweak-tool ed \ xorg-x11-server-Xvfb firefox sudo yum update -y
… CentOS/RHEL 7, copy+paste:
sudo yum install -y epel-release sudo yum install -y tcsh libXp openmotif gsl xorg-x11-fonts-misc \ PyQt4 R-devel netpbm-progs gnome-tweak-tool ed \ libpng12 xorg-x11-server-Xvfb firefox sudo yum update -y
Purpose: Installs a lot of packages that AFNI depends on (so we don’t have to reinvent the wheel!).
Install AFNI binaries¶
For …
… installing binaries from online on Fedora, copy+paste:
cd curl -O https://afni.nimh.nih.gov/pub/dist/bin/misc/@update.afni.binaries tcsh @update.afni.binaries -package linux_openmp_64 -do_extras
… installing binaries from online on CentOS/RHEL 7, copy+paste:
cd curl -O https://afni.nimh.nih.gov/pub/dist/bin/misc/@update.afni.binaries tcsh @update.afni.binaries -package linux_centos_7_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.binaries
has also been downloaded, you can skip thecurl ..
command), …:… on Fedora, copy+paste:
cd curl -O https://afni.nimh.nih.gov/pub/dist/bin/misc/@update.afni.binaries tcsh @update.afni.binaries -local_package PATH_TO_FILE/linux_openmp_64.tgz -do_extras
… on CentOS/RHEL 7, copy+paste:
cd curl -O https://afni.nimh.nih.gov/pub/dist/bin/misc/@update.afni.binaries tcsh @update.afni.binaries -local_package PATH_TO_FILE/linux_centos_7_64.tgz -do_extras
Purpose: Download and unpack the current binaries in your
$HOME
directory; set the AFNI binary directory name to$HOME/abin/
; and add that location to the$PATH
in both~/.cshrc
and~/.bashrc
.
Copy+paste:
cp $HOME/abin/AFNI.afnirc $HOME/.afnirc suma -update_env
Purpose: Set up vanilla-mode environment variables for AFNI and SUMA. To see how you can bend these to your will later, read the Technical notes.
Install R¶
For …
… a
tcsh
terminal, copy+paste:setenv R_LIBS $HOME/R mkdir $R_LIBS echo 'export R_LIBS=$HOME/R' >> ~/.bashrc echo 'setenv R_LIBS ~/R' >> ~/.cshrc . ~/.cshrc
… a
bash
terminal, copy+paste:export R_LIBS=$HOME/R mkdir $R_LIBS echo 'setenv R_LIBS ~/R' >> ~/.cshrc echo 'export R_LIBS=$HOME/R' >> ~/.bashrc . ~/.bashrc
(To check your shell type, copy+paste:
echo $0
)Purpose: Setup modern R from scratch. This relies on the environment variable
$R_LIBS
, to specify where to install the packages and where to read them from later (when R programs run). The last command sources the relevant RC file so the present terminal knows about the updates.Copy+paste:
rPkgsInstall -pkgs ALL
Purpose: Get specific R packages needed for AFNI programs. This step might take a while to complete.
Setup Python (opt)¶
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. But we note that we have found Miniconda to be convenient in managing Python environment(s), and it is replicatable across platforms. If you are interested, you can check out this tutorial, which has both verbose and quick instructions.
But Miniconda is not required.
Make AFNI/SUMA profiles¶
Copy+paste:
cp $HOME/abin/AFNI.afnirc $HOME/.afnirc suma -update_env
Purpose: Set up vanilla-mode environment variables for AFNI and SUMA. To see how you can bend these to your will later, read the Technical notes.
Prepare for Bootcamp¶
Copy+paste:
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.py
says 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!
Evaluate setup/system (important!)¶
Copy+paste:
afni_system_check.py -check_all
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 suma
Report 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.
Niceify terminal (optional, but goood)¶
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
tab
autocompletion fortcsh
(which should already be enabled forbash
, 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.
Install extras (optional, but recommended for Bootcamp prep)¶
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…
Keep up-to-date (remember!)¶
To update your AFNI sometime, copy+paste:
@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!To check your AFNI version, copy+paste:
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.