CMSSW_2_2_9 on Ubuntu 9.04

Fresh install, bash, I chose the same architecture as on my lxplus account, ...

Prerequisites:

  • export VO_CMS_SW_DIR=/x/y/z
  • export SCRAM_ARCH=slc4_ia32_gcc345
  • export LANG="C"
  • Download a modified bootstrap.sh from: http://cern.ch/pfeiffer/bootstrap.sh
  • and install it with the -unsupported_distribution_hack option;
  • sh -x $VO_CMS_SW_DIR/bootstrap.sh setup -path $VO_CMS_SW_DIR -arch $SCRAM_ARCH -unsupported_distribution_hack >& $VO_CMS_SW_DIR/bootstrap_$SCRAM_ARCH.log

Install CMSSW:

  • My apt-version is: 0.5.15lorg3.2-cms5
  • source $VO_CMS_SW_DIR/$SCRAM_ARCH/external/apt/0.5.15lorg3.2-cms5/etc/profile.d/init.sh
  • apt-get update
  • apt-cache search cmssw
  • apt-get install cms+cmssw+CMSSW_2_2_9

Where is the scramv1 command?

  • cd $VO_CMS_SW_DIR
  • source cmsset_default.sh
  • And there he is. To start working you need to go to the src directory:
  • cd $VO_CMS_SW_DIR/slc4_ia32_gcc345/cms/cmssw/CMSSW_2_2_9/src
  • and execute the eval command:
  • eval `scramv1 runtime -sh`
  • but this gives some errors because Ubuntu uses the smaller dash instead of bash for the command sh, so a way to work around this is:
  • sudo dpkg-reconfigure dash
  • and answer no

Compiling your cmssw version

  • For this last step you need some additional software from the repositories that is not installed by default:
  • sudo apt-get install build-essential freeglut3-dev --> Installs openGL (necessary for Iguana)
  • sudo apt-get install flex
  • sudo apt-get install bison
  • Now you are able to run scramv1 b in $VO_CMS_SW_DIR/slc4_ia32_gcc345/cms/cmssw/CMSSW_2_2_9/src without any problem, but it will takes some time...

-- PietVerwilligen - 08-Nov-2009

CMSSW_3_5_6 on Ubuntu 9.04

I had troubles with installing slc5_ia32_gcc434: amongst others the directory "external" was not produced and that one is rather important. Thanks to Marcin Konecki a work-around exitst (),https://hypernews.cern.ch/HyperNews/CMS/get/softwareDistrib/638/1.html but is unfortunately a bit dirty: In short: * Install SLC5 on a second partition or with a Virtual Machine * Install CMSSW in SLC5 (up to the bootstrapscript is fine, as described in the main twiki page). Make sure that $VO_CMS_SW_DIR is the same in SLC5 and in Ubuntu! * Copy $VO_CMS_SW_DIR on SLC5 to Ubuntu * Install CMSSW

In more detail:

Install SLC5:

Prerequisites in SLC5:

  • export VO_CMS_SW_DIR=/x/y/z Make sure that /x/y/z exists and is the same in both Ubuntu and SLC5)
  • export SCRAM_ARCH=slc4_ia32_gcc345
  • export LANG="C"
  • wget -O $VO_CMS_SW_DIR/bootstrap.sh http://cmsrep.cern.ch/cmssw/cms/bootstrap.sh

Install CMSSW in SLC5 (not mandatory, just in case you want it here too)

  • My apt-version is: 0.5.15lorg3.2-cms2
  • sh -x $VO_CMS_SW_DIR/bootstrap.sh setup -path $VO_CMS_SW_DIR -arch $SCRAM_ARCH >& $VO_CMS_SW_DIR/bootstrap_$SCRAM_ARCH.log
  • source $VO_CMS_SW_DIR/$SCRAM_ARCH/external/apt/0.5.15lorg3.2-cms2/profile.d/init.sh
  • apt-get install external+fakesystem+1.0 external+fakesystem+1.0-cms
  • apt-get update
  • apt-cache search cmssw
  • apt-get install cms+cmssw+CMSSW_3_5_6

Install CMSSW in Ubuntu:

  • My apt-version is: 0.5.15lorg3.2-cms2
  • source $VO_CMS_SW_DIR/$SCRAM_ARCH/external/apt/0.5.15lorg3.2-cms2/etc/profile.d/init.sh
  • apt-get install external+fakesystem+1.0 external+fakesystem+1.0-cms
  • apt-get update
  • apt-cache search cmssw
  • apt-get install cms+cmssw+CMSSW_3_5_6

Solve stdio.h problem:

If you try to compile, you will get an error:
  • /usr/include/bits/stdio.h: In function '__ssize_t getline(char**, size_t*, FILE*)':
  • /usr/include/bits/stdio.h:118: error: '__getdelim' was not declared in this scope
This was solved by Michael Maes by cooking following recipe:
  • open /usr/include/stdio.h
  • look for a block of code:
#ifdef __USE_GNU
/* This function does the same as `fgets' but does not lock the stream.

  This function is not part of POSIX and therefore no official
  cancellation point.  But due to similarity with an POSIX interface
  or due to the implementation it is a cancellation point and
  therefore not marked with __THROW.  */
extern char *fgets_unlocked (char *__restrict __s, int __n,
                            FILE *__restrict __stream) __wur;
#endif
  • just before the #endif add the following:
extern _IO_ssize_t __getdelim (char **__restrict __lineptr,
                              size_t *__restrict __n, int __delimiter,
                              FILE *__restrict __stream) __wur;
-- PietVerwilligen - 08-Jun-2010
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2010-06-08 - PietVerwilligen
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback