Standard instructions for installing EMAN2/3 on Linux, macOS and WSL2 (Windows)


While the instructions look long, in reality it should only take 10-15 minutes to complete the entire process (with a decent network connection).


WARNING FOR EXISTING USERS of EMAN >2.9 - If your last source build was before 8/21/24, on that date we updated the eman-dev conda-forge dependencies to use Python 3.12. This Python version has some backwards incompatibility, and using it requires setting up a fresh EMAN2 Anaconda environment, or you will get a variety of errors. If you are in this situation:

Initial Setup

This section only needs to be completed once. If you have a working EMAN2 source installation and just wish to update, skip ahead to Build and Install.

  1. Check your account for possible problems

    • IF you have conda-forge, mini-forge or Anaconda already installed in your account, and wish to try setting up EMAN2 as a new environment skip ahead to Configure and update conda. This may or may not work, depending on the age of your previous Anaconda install.

    • Otherwise:
       1 echo $PATH
       2 # make sure no Anaconda/Miniconda/old EMAN2 entries:
       3 echo $LD_LIBRARY_PATH
       4 echo $PYTHONPATH
       5 # ideally, both return nothing. If it set to something it is possible that it may interfere with Anaconda
       6 # strongly suggest at least during the install, ''unset'' both of these. After installation you can test
       7 # to see if they cause any issues
       8 
    
  2. Download and install

    • Note: If your site has an Anaconda license, you are welcome to use the conda provided by a proper Anaconda/MiniConda installation. Using mini-forge, which provides 'conda' and 'mamba' command line tools is completely FOSS. All EMAN2 dependencies are provided by conda-forge and make no use of the Anaconda mainline repository, so require no licensing agreement (as far as we can determine).
    • Download the MiniForge installer: Installers (for your platform)

    • Install:
       1 bash <MiniForge-installer>
    

    and follow the prompts. When you see Do you wish to update your shell profile to automatically initialize conda?, say yes, then move on to the next step.

    Please ignore any references to micromamba in the text displayed by the installer and just follow these instructions.

Build and Install: Daily development, Update code, etc.

When you start a new shell, these are the steps you will need to take before running EMAN programs or compiling the system:

  1. Activate your environment. If you used a different name above, use it here too.

       1 conda activate eman2
    
  2. Update and Checkout source code. Periodically you should update your source using standard git techniques.

       1 cd <source-directory>    # <path-where-you-want-eman2-source>/eman2
       2 git fetch --all --prune  # get remote branches and cleanup non-existing remote branches from local repo
       3 git checkout master      # to make sure you are building from the current master build rather than a branch someone is working on
       4 git pull                 # This is what actually updates your local copy of the code
       5 
    
  3. CMake

       1 cd <build-directory>
       2 # on Mac:
       3 cmake <source-directory>   # - eg $HOME/src/eman2, optionally add -DCMAKE_VERBOSE_MAKEFILE
       4 
       5 # on Linux:
       6 cmake <source-directory> -DENABLE_OPTIMIZE_MACHINE=ON  # - eg $HOME/src/eman2, optionally add -DCMAKE_VERBOSE_MAKEFILE
       7 
    
    • cmake-gui

      • If you use cmake-gui, since conda is not in PATH anymore, cmake will fail to find the environment directory. In that case set CONDA_PREFIX to your conda environment directory manually.

      • Make sure to delete any cmake variables that cmake already found, variables like *_LIBRARY or similar, *_INCLUDE_PATH or similar, CONDA_EXECUTABLE, CMAKE_INSTALL_PREFIX and any variables that are expected to contain conda environment related values.
      • Configure and generate.
    • ccmake

      • If you use ccmake, you may get an error related to OpenGL. If this happens try quitting ccmake and running it again.

  4. Make

       1 make -j 8
       2 make install
       3 
       4 # To install sphire
       5 make install-sphire  
    

    Note that the make -j 8 above will compile using 8 threads. On some machines omitting the 8 will compile faster and cause no problems, and if you have more than 8 threads on your machine, you can increase the number.

Test install

Troubleshooting

Solutions to potential known problems will be listed here. If these don't help, please report your problem (http://groups.google.com/group/eman2):

Reporting Problems

If you encounter problems, PLEASE report them, either via direct email to sludtke@bcm.edu or to the Google Group. When doing so:

Please, provide the output of the following commands when reporting a problem. Record the session via script command. This, also, records the commands, and you can just submit the full text file with your problem report.

  1.    1 script filename.txt
       2 
       3 conda activate eman2
       4 
       5 conda info -a
       6 conda list
       7 conda list --explicit
       8 
       9 cd <source-dir>
      10 
      11 git status
      12 git log -1
      13 
      14 cd <build-dir>
      15 
      16 rm CMakeCache.txt
      17 cmake <source-dir>
      18 cmake . -LA
      19 
      20 make clean
      21 make -j
      22 make install
      23 make test-verbose
      24 
      25 conda deactivate
      26 
      27 exit # or Ctrl+D
      28 
    
  2. Send filename.txt.

Linux Clusters

The approach above will install EMAN with a precompiled version of OpenMPI, which may or may not work with the batch queuing system on your cluster. If it does not work, the symptom will be that MPI parallel jobs will use only a single node, no matter how many you have allocated in your job. Currently, we do not have alternative OpenMPI installation instructions.

EMAN2/Install/SourceInstall (last edited 2025-01-16 14:43:00 by SteveLudtke)