Bash Setup¶
Step 1: Removing references to Ureka¶
Remove all references to Ureka (SSB , SSBX, SSBDEV) in your shell files. If you have never edited your bash setup files .profile, or .bash*), you can ignore these for now as we are going to delete them all later on, and just focus on your tcsh files, these could include: .cshrc, .setenv, or .scienv. You may or may not have some of these files depending on when your machine was set up originally. Accounts created after 2008 may have an additional .mysetenv file.
If you not sure what to look for, and haven’t edited your shell files before, look for references to ssbx, ssbrel or ssbdev and remove those lines. You can use the following listed commands to search for Ureka dependencies. You may see lines from your $HOME/.ureka/.default and $HOME/.bash_history files. This is expected and can be ignored.
Linux:
find $HOME -maxdepth 1 -type f -name '.*' | xargs -I'{}' grep -n -H -E --color=auto 'ssbrel|ssbx|ssbdev' "{}"
OSX:
Darwin’s BSD find does not support -maxdepth (users can install gnu findutils if they wish to execute the Linux-style command on OS X, however)
find $HOME -type f -name '.*' | xargs -I'{}' grep -n -H -E --color=auto 'ssbrel|ssbx|ssbdev' "{}"
Step 2: Backup your current bash files¶
Warning
Only follow this step if you have not added anything to your ITSD-provided bash setup files (.profile, or .bash*). If your bash files are configured already, you can skip steps 2 and 3.
Tar and zip your current bash setup files with the following command:
tar cfz envbackup.tar.gz .profile .bash*
Step 3: Rebuilding your bash startup files¶
Now that you have a backup of your bash files safely stored, wipe all bash startup files currently in your ~home directory.
rm ~/.profile
rm ~/.bash*
You should also delete your $HOME/.pydistutils.cfg file. This file can interefere with Anaconda’s Python install.
rm ~/.pydistutils.cfg
Now you can open up a new ~/.bash_profile file. Remember this should be a blank text file, since we just deleted the previous copy if it existed. We will also set up a ~/.bashrc file. Below is an example of a standard ~/.bash_profile and ~/.bashrc.
# File - ~/.bash_profile (or .profile)
# Common shell aliases
alias ls='ls -G'
alias ll='ls -l'
alias grep='grep --color=auto'
if [ -f $HOME/.bashrc ]; then
source $HOME/.bashrc
fi
# EOF
# File - ~/.bashrc
# Tune your profile… these are example only
# Replace these with desired paths
export PATH="$PATH:$LOCAL_CUSTOM/bin:$PATH"
export MANPATH="$LOCAL_CUSTOM/share/man:$MANPATH"
# EOF
Using this line:
if [ -f $HOME/.bashrc ]; then
source $HOME/.bashrc
fi
the ~/.bashrc file will get sourced by ~/.bash_profile.
Now we can start to port the environment setup information that was in the tcsh startup files over to your bash files. Most of these commands will either be setenv or alias commands. There is a syntax difference between ``tcsh`` and ``bash``. You can put these kinds of commands into your .bash_profile file. Below are some examples of how to translate tcsh to bash syntax.
| tcsh syntax | bash syntax |
|---|---|
| setenv cdbs /grp/hst/cdbs/ | export cdbs=”/grp/hst/cdbs/” |
| setenv PATH $HOME/pybin:${PATH} | export PATH=”~/pybin:$PATH” |
| alias emax ‘open -a “Aquamacs”’ | alias emax=’open -a “Aquamacs”’ |
| setenv EMACS editor | EDITOR=emacs; export EDITOR |
Finally, you should now restart your terminal program so that these changes are applied.
Note
Regarding if statements: Many of the statements originally in the tcsh files that were nested in if statement calls were set up to test if your machine was connected to the STScI network. For example, if you set up an environment variable that links to a directory on /grp/hst/ and try and access this directory from outside the institute network, it will fail.
For if statements that you have written into your tcsh files yourself, please see this bash guide for if statements in bash.
Step 4: Bash as default, or temporary bash sessions¶
Switching to bash as your default shell¶
Warning
You may want to wait to execute this step until after you have installed and tested Anaconda.
For Mac
To switch your default shell on Mac machines, you can change your local system by opening a terminal and using the following command, you will need to enter your password when prompted:
chsh -s /bin/bash
To verify that the change went through, restart your terminal program, and type the following:
echo $SHELL
This command should return /bin/bash. Remember this changes your local default only. To change your default on all future systems and builds you should also follow the directions below for Linux machines so that your AD default is changed. But keep in mind this immediately changes your default on all Linux machines.
For Linux
To change the default shell on Linux machines (this includes the Linux servers at STScI) you will need to contact IT to switch your AD account settings. The path to your default shell is controlled by Active Directory (AD), which can only be modified by ITSD.
Using bash from tcsh¶
If you plan on using bash from tsch, you can switch into bash using
bash -l
This call will inherit your environment setup from your tcsh. This means any environment variables you have set in your tsch will get transferred over.
Warning
If you have a call to ssbx/dev/rel in one of your tsch setup file Anaconda will not run properly!