-
Notifications
You must be signed in to change notification settings - Fork 48
Generating Binaries

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.
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.
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.
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
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 ..
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
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
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