Skip to content

Updating Software in OASIS

OASIS is the OSG Application Software Installation Service. It is the recommended method to install software on the Open Science Grid. It is implemented using CernVM FileSystem (CVMFS) technology.

This document is a step by step explanation of how a Virtual Organization (VO) Software Adminstrator can enable the OASIS service and use it to publish and update software on OSG Worker Nodes under /cvmfs/



To begin the process to distribute software on OASIS using the service hosted at the OSG GOC, you must:

How to use OASIS

Enable OASIS

When you are ready to distribute your software with OASIS, submit a GOC ticket with a request to enable OASIS for your VO. In your request, please specify your VO and provide a list of people who will install and administer the VO software in OASIS.

The GOC will enable OASIS for your VO in OIM and add your list of administrators to the "OASIS Managers" list (which is near the bottom of the page of information about each VO in OIM). oasis-login will then grant access to the people who are listed as OASIS managers. Any time the list is to be modified, submit another GOC ticket.

Log in with GSISSH

The next step is to generate a proxy and log into with gsissh. These commands should be run on a computer that has the OSG worker node client software. First make sure that your grid certificate is installed in ~/.globus/usercred.p12 on that computer and that it is mode 600, then run these commands:

[email protected] $ voms-proxy-init
[email protected] $ gsissh -o GSSAPIDelegateCredentials=yes

In case the user can be mapped to more than one account, specify it explicitly in a command like this

[email protected] $ gsissh -o GSSAPIDelegateCredentials=yes

Instead of putting -o GSSAPIDelegateCredentials=yes on the command line, you can put it in your ~/.ssh/config like this:

    GSSAPIDelegateCredentials yes

Install and update software

Once you log in, you can add/modify/remove content on a staging area at /stage/oasis/$VO where $VO is the name of the VO represented by the manager.

Files here are visible to both oasis-login and the Stratum 0 server ( There is a symbolic link at /cvmfs/$VO that points to the same staging area.

Request an oasis publish with this command:

[email protected] $ osg-oasis-update

This command queues a process to sync the content of OASIS with the content of /stage/oasis/$VO

osg-oasis-update returns immediately, but only one update can run at a time (across all VOs); your request may be queued behind a different VO. If you encounter severe delays before the update is finished being published (more than 4 hours), please file a GOC ticket.

Limitations on repository content

Although CVMFS provides a POSIX filesystem, it does not work well with all types of content. Content in OASIS is expected to adhere to the CVMFS repository content limitations so please review those guidelines carefully.


After osg-oasis-update completes and the changes have been propagated to the CVMFS stratum 1 servers (typically between 0 and 60 minutes, but possibly longer if the servers are busy with updates of other repositories) then the changes can be visible under /cvmfs/ on a computer that has the CVMFS client installed. A client normally only checks for updates if at least an hour has passed since it last checked, but people who have superuser access on the client machine can force it to check again with

[email protected] # cvmfs_talk -i remount

This can be done while the filesystem is mounted (despite what the name sounds like it does not do umount/mount). If the filesystem is not mounted, it will automatically check for new updates the next time it is mounted.

In order to find out if an update has reached the CVMFS stratum 1 server, you can find out the latest osg-oasis-update time seen by the stratum 1 most favored by your CVMFS client with the following long command on your client machine:

[email protected] $ date -d "1970-1-1 GMT + $(wget -qO- $(attr -qg host /cvmfs/ | \
                                                            cat -v|sed -n '/^T/{s/^T//p;q;}') sec"


CVMFS Documentation