abstract:darwin:install_software:workgroup-sw

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
abstract:darwin:install_software:workgroup-sw [2020-11-19 17:15] – external edit 127.0.0.1abstract:darwin:install_software:workgroup-sw [2021-04-28 13:44] (current) anita
Line 9: Line 9:
 ===== Directory Structure ===== ===== Directory Structure =====
  
-After using the ''workgroup'' command (either explicitly or within your login files) the ''WORKDIR'' environment variable is set to the workgroup's work directory.  Create a directory to contain all workgroup-specific software:+After using the ''workgroup'' command (either explicitly or within your login files) the ''WORKDIR'', ''WORKDIR_USERS'' and ''WORKDIR_SW'' environment variables are set based the allocation workgroup directory. Create a directory to contain all workgroup-specific software:
  
 <code bash> <code bash>
-mkdir -p $WORKDIR/sw +workgroup -g it_nss 
-$ chmod 02775 $WORKDIR/sw +$ ls -ld $WORKDIR_SW 
- +drwxrws--- 4 root it_nss 4096 Aug  1  2013 sw
-$ ls -ld sw +
-drwxrwsr-frey it_nss 4096 Aug  1  2013 sw+
 </code> </code>
  
 The privileges assigned to the //sw// directory allow any member of the workgroup to create directories/files inside it. The privileges assigned to the //sw// directory allow any member of the workgroup to create directories/files inside it.
  
-To streamline VALET usage, a directory named //valet// can be created inside //sw// to contain any VALET package definition files representing the software you've installed.  The VALET software will automatically check this directory if present:+To streamline VALET usage, a directory named //valet// has been created inside //sw// to contain any VALET package definition files representing the software you've installed.  The VALET software will automatically check this directory if present:
  
 <code bash> <code bash>
-mkdir -$WORKDIR/sw/valet +ls -la $WORKDIR_SW 
-$ chmod 02775 $WORKDIR/sw/valet+total 130 
 +drwxrws--- 4 root   it_nss 33280 Feb  3 14:37 . 
 +drwxrws--- 6 root   it_nss 33280 Feb  4 12:59 .. 
 +drwxrws--- 2 root   it_nss 33280 Feb  4 10:37 valet
 </code> </code>
  
 Again, the directory is made writeable by all workgroup members. Again, the directory is made writeable by all workgroup members.
  
-The IT-managed software organized under ''/opt/shared'' is a good example of how individual software packages will be installed inside ''$WORKDIR/sw'' Each package gets its own subdirectory, named in lowercase.  Individual versions of that software package are installed in subdirectories of that:+The IT-managed software organized under ''/opt/shared'' is a good example of how individual software packages will be installed inside ''$WORKDIR_SW'' Each package gets its own subdirectory, named in lowercase.  Individual versions of that software package are installed in subdirectories of that:
  
 <code> <code>
-$WORKDIR/sw+$WORKDIR_SW
  |- supercfd/  |- supercfd/
      |- attic/      |- attic/
Line 47: Line 48:
  
 Some workgroups may elect to have one individual maintain their software -- call him or her the //buildmeister// A workgroup may have several buildmeisters who each maintain some subset of the software.  At the total opposite extreme, every group member acts as buildmeister for his/her own software.  However your workgroup decides to divide that responsibility, it is best to leave package version directories and their contents ONLY writable by the buildmeister for that package (or version of a package). Some workgroups may elect to have one individual maintain their software -- call him or her the //buildmeister// A workgroup may have several buildmeisters who each maintain some subset of the software.  At the total opposite extreme, every group member acts as buildmeister for his/her own software.  However your workgroup decides to divide that responsibility, it is best to leave package version directories and their contents ONLY writable by the buildmeister for that package (or version of a package).
- 
-<note important>If a single buildmeister for all software is chosen, then it's best to leave everything within the ''$WORKDIR/sw'' directory writable only by that user (but still owned and readable by the workgroup).  Rather than doing ''chmod 02775'' one would do ''chmod 02755'' when creating the ''sw'' directory.</note> 
  
 ===== Building from Source ===== ===== Building from Source =====
  
-Let's say that version 2.2 of "SuperCFD" has just been released and I've logged-in and downloaded the Unix/Linux source code to my desktop.  I copy the source package to DARWIN using ''scp'' (or ''sftp'') and the remote directory ''/work/it_nss/sw/supercfd/attic'' Note that this is the value of ''$WORKDIR'' plus paths created in the previous section.+Let's say that version 2.2 of "SuperCFD" has just been released and I've logged-in and downloaded the Unix/Linux source code to my desktop.  I copy the source package to DARWIN using ''scp'' (or ''sftp'') and the remote directory ''/lustre/it_nss/sw/supercfd/attic'' Note that this is the value of ''$WORKDIR_SW'' plus paths created in the previous section.
  
 On DARWIN, I change to the SuperCFD software directory and prepare for the build of version 2.2: On DARWIN, I change to the SuperCFD software directory and prepare for the build of version 2.2:
  
 <code bash> <code bash>
-$ cd $WORKDIR/sw/supercfd+$ cd $WORKDIR_SW/supercfd
 $ mkdir 2.2 $ mkdir 2.2
 $ cd 2.2 $ cd 2.2
 </code> </code>
  
-With the source code uploaded to the ''attic'' directory, I can unpack inside the version 2.2 directory I just created:+With the source code uploaded to the ''attic'' directory (or you could use ''wget <<//URL//>>'' to download into the ''attic'' directory), I can unpack inside the version 2.2 directory I just created:
  
 <code bash> <code bash>
 $ pwd $ pwd
-/work/it_nss/sw/supercfd/2.2+/lustre/it_nss/sw/supercfd/2.2
  
 $ tar --bzip -xf ../attic/supercfd-2.2.tar.bz2 $ tar --bzip -xf ../attic/supercfd-2.2.tar.bz2
Line 78: Line 77:
 In this case, the source was a bzip-compressed tar file, so it was unpacked using the ''tar'' command.  Other software might be packed as a gzip-compressed tar file or a ZIP file, so the actual command will vary. In this case, the source was a bzip-compressed tar file, so it was unpacked using the ''tar'' command.  Other software might be packed as a gzip-compressed tar file or a ZIP file, so the actual command will vary.
  
-The authors of SuperCFD organize their source code along the GNU autoconf guidelines.  The source code directory was renamed from //supercfd-2.2// to //src//; when running ''./configure'' the install prefix will be set to ''$WORKDIR/sw/supercfd/2.2'' which will then have e.g. ''bin'', ''etc'', ''share'', ''lib'' directories accompanying the ''src'' directory.  For any software package that uses autoconf or CMake, this is the organizational strategy IT has adopted.+The authors of SuperCFD organize their source code along the GNU autoconf guidelines.  The source code directory was renamed from //supercfd-2.2// to //src//; when running ''./configure'' the install prefix will be set to ''$WORKDIR_SW/supercfd/2.2'' which will then have e.g. ''bin'', ''etc'', ''share'', ''lib'' directories accompanying the ''src'' directory.  For any software package that uses autoconf or CMake, this is the organizational strategy IT has adopted.
  
 ==== Building for Autoconf/CMake ==== ==== Building for Autoconf/CMake ====
Line 106: Line 105:
 export SUPERCFD_UNITS=METRIC export SUPERCFD_UNITS=METRIC
  
-./configure --prefix=$WORKDIR/sw/supercfd/2.2 \+./configure --prefix=$WORKDIR_SW/supercfd/2.2 \
         --solver=auto         --solver=auto
 </file> </file>
Line 117: Line 116:
 $ cd .. $ cd ..
 $ pwd $ pwd
-/work/it_nss/sw/supercfd/2.2+/lustre/it_nss/sw/supercfd/2.2
  
 $ ls -l $ ls -l
  • abstract/darwin/install_software/workgroup-sw.1605824118.txt.gz
  • Last modified: 2020-11-19 17:15
  • by 127.0.0.1