Code Monkey home page Code Monkey logo

lsst-cvmfs's Introduction


Please refer to https://sw.lsst.eu for an improved version of this service. This repository won't be updated anymore.


Distribution of LSST software via CernVM-FS

Table of contents

Introduction

This document provides the steb-by-step instructions to configure your computer to use the binary distribution of the LSST science pipelines using CernVM-FS.

CERN's CernVM-FS is a software component which allows you to mount a remote software repository in read-only mode. It will appear to your computer as if the software were locally installed. At CC-IN2P3 we prepared a binary distribution of the LSST stack to be used through CernVM-FS. You will find below the procedure for installing CernVM-FS and configuring it to use the binary LSST software repository.

WARNING : please bear in mind that this work is experimental. Your feedback on how to improve it is very welcome. Scroll to the end of this document to know how you can provide feedback.

Benefits

With this method, you need to install and configure CernVM-FS only once. Once this is done, when your computer is connected to the network, you will find the available versions of the LSST software stack under the local directory:

/cvmfs/lsst.in2p3.fr

This method of distributing the software is particularly useful for individuals: you don't need to build and install each official LSST software release from sources on your personal computer. You rather mount and use the binary distribution prepared for your convenience.

The figure below shows the namespace and the releases currently available:

Please note that you don't need special privileges to use the LSST software stack distributed this way: any user on a pre-configured computer can use the software. However, in order to install and configure CernVM-FS, a one-time process, you need super-user privileges on the target machine.

Installation

We have succesfully tested several versions of the LSST software using this installation on MacOS X 10.10 Yosemite, CentOS 7 and Ubuntu 14.04. It may work on other Linux distributions as well.

Installing on CentOS 7 (64 bits)

To download the software from CERN's repository and install it do:

$ cd /tmp
$ curl -O https://ecsft.cern.ch/dist/cvmfs/cvmfs-2.3.5/cvmfs-2.3.5-1.el7.centos.x86_64.rpm
$ curl -O https://ecsft.cern.ch/dist/cvmfs/cvmfs-config/cvmfs-config-none-1.0-2.noarch.rpm
$ sudo yum install --assumeyes ./cvmfs-*.rpm

Installing on Ubuntu 14.04 (64 bits)

Some packages are either necessary or recommended on Ubuntu. To install them do:

$ sudo apt-get install autofs attr gdb git sysv-rc-conf uuid libossp-uuid16

Download and install CernVM-FS:

$ cd /tmp
$ curl -O https://ecsft.cern.ch/dist/cvmfs/cvmfs-2.3.5/cvmfs_2.3.5_amd64.deb
$ curl -O https://ecsft.cern.ch/dist/cvmfs/cvmfs-config/cvmfs-config-none_1.0-2_all.deb
$ sudo dpkg -i ./cvmfs_2.3.5_amd64.deb ./cvmfs-config-none_1.0-2_all.deb

NOTE: this method has been reported to work also on Linux Mint v17.3

Installing on OS X 10.9 Mavericks, 10.10 Yosemite, 10.11 El Capitan

  • Download and install the latest stable release of FUSE for OS X. This is a dependency of the CernVM-FS client.

  • Download and install the CernVM-FS client package. Alternatively, you can do it manually if you prefer:

$ cd /tmp
$ curl -O https://ecsft.cern.ch/dist/cvmfs/cvmfs-2.1.20/cvmfs-2.1.20.pkg
$ open cvmfs-2.1.20.pkg

At this point, you have installed the CernVM-FS client software on your computer. For configuring it please see the next section.

Configuration

Configuring the CernVM-FS client to use the binary distribution of LSST software served by CC-IN2P3 is a one-time operation:

  • Clone this repository and run the provided configuration script. The configuration script needs super-user privileges:

      $ cd /tmp
      $ git clone https://github.com/airnandez/lsst-cvmfs.git
      $ cd lsst-cvmfs
      $ sudo bash ./configure.sh
    

    After this step, among other things, an unprivileged user cvmfs is created in your computer and several configuration files with sensible default values are located under /etc/cvmfs.

    You can tell the configuration process was successful if you don't see any error message.

  • [OS X only] On OS X, you need to manually mount the file system:

      $ sudo mount -t cvmfs lsst.in2p3.fr /cvmfs/lsst.in2p3.fr
    

    For unmounting do:

      $ sudo umount /cvmfs/lsst.in2p3.fr
    
  • [Linux - recommended] On Linux, the CernVM-FS client uses autofs for automatically mounting and unmounting the file system. We recommend to configure the autofs service to start at boot time. On CentOS do:

      $ sudo chkconfig autofs on
    

    and on Ubuntu, do:

      $ sudo sysv-rc-conf autofs on
    

Now you are ready to use the stack. See next section.

Usage

Once the software is installed and configured in your computer, a one-time process, you don't need super-user privileges to use the LSST software.

In order to use the LSST science pipelines, you need first to bootstrap your environment for a specific version of the LSST software for which a binary distribution is available. For instance, to use LSST v15.0 on a Linux computer do:

	$ cd /cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v15.0
	$ source loadLSST.bash

Now you are ready to test your installation by downloading and running the demo project.

NOTE: there are some known issues with some releases of the LSST software distributed via this channel, which may not work on all Linux distributions. See the known issues if you experience some problems and don't hesitate to provide feedback.

Available releases

At any moment, you can see what releases are available for Linux-based machines by inspecting the directory:

ls -l /cvmfs/lsst.in2p3.fr/software/linux-x86_64

You can list the releases available for OS X with the command:

ls -l /cvmfs/lsst.in2p3.fr/software/darwin-x86_64

Currently you will find the releases presented in the table below:

Platform Available versions of LSST software
Linux, x86_64, 64bits v10.1, v11.0, v12.0, v12.1, v13.0, v14.0, v15.0
Darwin, x86_64, 64bits v10.1, v11.0, v12.0, v12.1, v14.0, v15.0

For details on the platform each binary release was built on please refer to the README file in the corresponding directory.

Advanced usage

Details on how to use this distribution mechanism for more advanced use cases are provided in the Advanced Usage document. There you will find details on how you can develop your own software package which depends on other packages already present in the binary distribution.

Troubleshooting

Please note that in order for this distribution mechanism to work for you, you need your machine to be connected to the network and able to contact CC-IN2P3 server. To check this is the case please do:

$ curl --proxy http://cclsstsqd.in2p3.fr:3128 --head http://cclssts1.in2p3.fr/cvmfs/lsst.in2p3.fr/.cvmfspublished

You should see a line containning HTTP/1.0 200 OK which indicates that your machine can talk to the relevant server.

Please also refer to the known issues.

Frequently Asked Questions

  • How can I provide feedback?

    Your feedback is very welcome. Please feel free to open an issue.

  • Where can I get more detailed information on CernVM-FS?

    The CernVM-FS downloads page contains additional information. In addition, you may want to read the CernVM-FS Technical Information for more in-depth information on how CernVM-FS works.

  • Can I use my remote LSST software distribution while disconnected from the network?

    The CernVM-FS client caches all the file metadata and the contents of the accessed remote files in the local disk of your computer. If you have previously used the stack it is likely that the relevant files are locally available in your local disk, in which case, you may work while disconnected. However, we have not tested this thoroughly, so let us know how it works for you.

  • Can I use this for my Docker containers?

    Yes, you can configure your container for automatically mounting a read-only file system with LSST software stack ready to use. Sébastien Binet did exactly this, so you can just use as is or as a baseline for your own containers. You will find all the details here.

Credits

This work was done by Fabio Hernandez from IN2P3/CNRS computing center (Lyon, France) with very valuable help from Vanessa Hamar who set up the CernVM-FS server and proxy infrastructure.

lsst-cvmfs's People

Contributors

airnandez avatar crosset avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

crosset

lsst-cvmfs's Issues

Python compatibility issue

I'm trying to help convert a workflow for use on GridPP, and attempting to use the version of EUPS that comes as part of the LSST CVMFS, but running into issues with creating a new version of Python. The version that is bundled with the GridPP VM (v2.6.6) is too old for use with this workflow, but when I run setup on the new Python install (v2.7.8), everything to do with eups (setup, unsetup, eups list, etc) fails. This seems to be due to the fact that the EUPS version on the LSST CVMFS hardcodes the use of the system version of Python (e.g. /usr/bin/python in eups_setup) instead of the newly-setup version. This causes some issues with compatibility (particularly with future and _weakref), since the system Python is now looking for libraries in places that don't exist, since setup altered the environment variables to suit the new version of Python. Do you know of a way to make sure that the two are kept separate? This isn't technically a CVMFS problem, but I would be surprised if people didn't run into this issue with using it, and I'm hoping someone has an answer.

Cheers

Add lsst-v14.0?

Thank you for the very nice tool and distribution. I was wondering if there were plans to add lsst-v14.0?

v12.0.rc1 does not work on Ubuntu 14.04

There is an issue when using v12.0.rc1 on Ubuntu 14.04. There is an error when setting up the environment:

$ source /cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/loadLSST.bash 
-bash: /bin/python: No such file or directory
/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/eups/bin/eups_setup: 6: /cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/eups/bin/eups_setup: /bin/python: not found
setup: command not found
setup: command not found

Note that the binary distributed via CernVM FS was built on CentOS 7 where the /bin/python file exists.

We are investigating how to solve / turnaround this issue.

Unable to loadLSST.bash on Mac

I followed the instructions for installing on my Mac (10.10.5), and everything seemed successful up until the instruction to run loadLSST.bash:

$ source loadLSST.bash 
-bash: /Users/Mike/Astro/lsst/eups/bin/setups.sh: No such file or directory
-bash: setup: command not found
-bash: setup: command not found

I guess I need to install eups? This wasn't mentioned in the installation instructions anywhere as far as I saw.

Also, looking at this script, it looks like it's going to want to setup anaconda. Am I going to need to install anaconda too? This can't just use the regular system python? This should be mentioned in the installation instructions too if this is the case.

Running lsst v11.0 demo on Ubuntu 14.04 does not work

We have observed that running the v11.0 demo on Ubuntu 14.04 using the binary distribution does not work. The binary distribution of v11.0 was built on CentOS 7.

This is the error message:

Setting up: astrometry_net_data             Flavor: Linux64    Version: LOCAL:/home/ubuntu/lsst/lsst_dm_stack_demo-11.0/astrometry_net_data
Traceback (most recent call last):
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v11.0/Linux64/obs_sdss/11.0+2/bin/processCcdSdss.py", line 23, in <module>
    from lsst.obs.sdss.processCcdSdss import ProcessCcdSdssTask
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v11.0/Linux64/obs_sdss/11.0+2/python/lsst/obs/sdss/__init__.py", line 23, in <module>
    from sdssMapper import *
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v11.0/Linux64/obs_sdss/11.0+2/python/lsst/obs/sdss/sdssMapper.py", line 24, in <module>
    import lsst.pex.policy as pexPolicy
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v11.0/Linux64/pex_policy/11.0/python/lsst/pex/policy/__init__.py", line 23, in <module>
    from policyLib import *
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v11.0/Linux64/pex_policy/11.0/python/lsst/pex/policy/policyLib.py", line 34, in <module>
    _policyLib = swig_import_helper()
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v11.0/Linux64/pex_policy/11.0/python/lsst/pex/policy/policyLib.py", line 30, in swig_import_helper
    _mod = imp.load_module('_policyLib', fp, pathname, description)
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v11.0/Linux64/base/11.0/python/lsstimport.py", line 102, in imp_load_module
    module = orig_imp_load_module(name, *args)
ImportError: libicudata.so.50: cannot open shared object file: No such file or directory

Error downloading CernVM FS software from CERN repository

We noticed that there is currently an issue while downloading software packages from CERN repository. You may observe the following error message:

$ curl -O https://ecsft.cern.ch/dist/cvmfs/cvmfs-2.1.19/cvmfs-2.1.19-1.el6.x86_64.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

The cause of this issue is that the server ecsft.cern.ch hosting the software is presenting a certificate which has a distinguished name (DN) cernvm.cern.ch. The curl command above notices that the host name and the certificate DN do not match and stops.

We were told by the CernVM FS developers that this is a transient situation and will be fixed soon. The turnaround is to add the -k option to the curl command, for instance:

$ curl -k -O https://ecsft.cern.ch/dist/cvmfs/cvmfs-2.1.19/cvmfs-2.1.19-1.el6.x86_64.rpm

We will keep this issue open until the problem with the server is fixed.

Running the demo using v12.0.rc1 fails on Ubuntu

Running the stack demo on Ubuntu using v12.0.rc1 does not work. This is the error message:

$ source /cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/loadLSST.bash
$ setup obs_sdss
$ ./bin/demo.sh 
Setting up: astrometry_net_data             Flavor: Linux64    Version: LOCAL:/home/ubuntu/lsst/lsst_dm_stack_demo-12.0.rc1/lsst_dm_stack_demo/astrometry_net_data
Traceback (most recent call last):
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/Linux64/pipe_tasks/2016_01.0-48-g7bf2411/bin/processCcd.py", line 23, in <module>
    from lsst.pipe.tasks.processCcd import ProcessCcdTask
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/Linux64/pipe_tasks/2016_01.0-48-g7bf2411/python/lsst/pipe/tasks/processCcd.py", line 22, in <module>
    from lsst.ip.isr import IsrTask
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/Linux64/ip_isr/2016_01.0-16-g395f455/python/lsst/ip/isr/__init__.py", line 24, in <module>
    from .isrLib import *
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/Linux64/ip_isr/2016_01.0-16-g395f455/python/lsst/ip/isr/isrLib.py", line 34, in <module>
    _isrLib = swig_import_helper()
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/Linux64/ip_isr/2016_01.0-16-g395f455/python/lsst/ip/isr/isrLib.py", line 30, in swig_import_helper
    _mod = imp.load_module('_isrLib', fp, pathname, description)
  File "/cvmfs/lsst.in2p3.fr/software/linux-x86_64/lsst-v12.0.rc1/Linux64/base/2.2016.10-2-ge90c490+1/python/lsstimport.py", line 102, in imp_load_module
    module = orig_imp_load_module(name, *args)
ImportError: libssl.so.10: cannot open shared object file: No such file or directory

Note that this is a known issue and the experts are investigating how to solve it.

I'll keep this issue open until a solution or turnaround is found.

feedback

1/ The install procedure works with Ubuntu 12.04
2/ As deb or rpm files are "curl"-ed from CERN, it might be useful to have official repositories loaded in the system to get notices of upgrades to CERN VMFS. Do these exist?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.