-
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 DateRelase variables are updated in the scipion script
more scipion
Make a git tag to the last commit in that branch
git tag v1.2
replace v1.2
for the right version number.
Once in the machine where we will do the bundle (si below to log in 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
Now, two file are in the home directory scipion_<version>_<date>_source.tgz
and scipion_<version>_<date>_linux-64.tgz
. The first is the source package of the software, whereas the second is the precompilated binaries package.
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.