Skip to content
This repository has been archived by the owner on Apr 26, 2023. It is now read-only.

Generating Binaries

David Maluenda Niubó edited this page Mar 15, 2018 · 39 revisions
Scipion Logo

For a new Scipion release we generate a "binary" version (a Scipion installation that can be moved as a whole and work in basically any machine without recompiling). The main difference is the --binary flag when installing from a fresh download, that will later change the RPATH of the binaries.

In order to get the maximum libc compatibility, it is recommended to generate the binary package in a computer running an old Linux. One option is a Centos-6.5 virtual machine (see below for details).

The following steps summarize how to generate the binaries in a Centos_64 virtual machine.

Getting ready the branch

In your local system, move to the branch from where the bundle will be done (usually it is the master branch)

cd scipion
git checkout <branch name>

Ensure that the Version, NickName and DateRelease variables are updated in the scipion script

more scipion

Make a git tag to the last commit in that branch

 git tag -a v1.2

replace v1.2 for the right version number.

Accessing to a Virtual machine

We have set up a Centos 6.5 virtual machine to generate the Scipion bundles. This VM is on heisenberg (user scipion) and the following commands are useful to manage it:

  • List existing VMs

VBoxManage list vms

(machine is called "CentOS_64")

  • List running vms

VBoxManage list runningvms
  • Start the VM

VBoxHeadless -startvm "CentOS_64" &
  • Access the VM from heisenberg (wait a bit till it starts)

ssh -p 2222 [email protected]

(pass: 'V1rtu4l.')

  • Stop VM

VBoxManage controlvm CentOS_64 poweroff

It is recommended to stop the VM once bundles are done and copied out of the machine.

Download Scipion from GitHub

Once in the machine where we will do the bundle (CentOS_64), we must get the repository. For generating the binaries we do not need the whole repository history (option --depth 1).

git clone --depth 1 https://github.com/I2PC/scipion.git

Moving to a certain branch (not for normal bundles)

If you want to do a bundle from a certain branch (e.g. to make a beta), you need to move to that branch

cd scipion
git checkout <branch name>
cd ..

Generate the Source zipped tar

python scipion/scripts/tar.py source

This script will create the zipped tar file skipping temporary files and build artifacts. The script should print the tar command used:

 tar czf scipion_devel__source.tgz \
--exclude=.git --exclude='*.o' --exclude='*.os' --exclude='*pyc' \
--exclude='*.mrc' --exclude='*.stk' --exclude='*.gz'  \
--exclude='software/tmp/*' --exclude='*.scons*' --exclude='config/*.conf' scipion

Create a Basic Installation

cd scipion
./scipion config
./scipion install --binary -j 5
cd ..
python scipion/scripts/tar.py linux64

In this CentOS machine the ./scipion config should complain about the MPI variables. You will need to correct with mpi directories. For example:

MPI_BINDIR = /usr/lib64/openmpi/bin
MPI_LIBDIR = /usr/lib64/openmpi/lib
MPI_INCLUDE = /usr/include/openmpi-x86_64

Install other EM packages (not for normal bundles)

cd scipion
./scipion install --no-xmipp --binary -j 5 relion-1.4
./scipion install --no-xmipp bsoft-1.9.0 chimera ctffind ctffind4 dogpicker eman2.11 frealign motioncorr resmap spider summovie unblur
cd ..
python scipion/scripts/tar.py linux64-em-packages
Clone this wiki locally