r39 - 09 Aug 2005 - 16:53:36 - BobKrzaczekYou are here: TWiki >  Help Web  >  AdminStuff > SoftwareInstalls > BuildingFromScratch
Tags:
create new tag
, view all tags

This topic details the creation and population of a brand new architecture tree in CIS. For the purposes of example, imagine we are adding support for a new operating system called PhobOS.

Creation

First, a new filesystem containing the architecture needs to exist on some server. Traditionally, mount points for physically mounted filesystems are made under a /local tree in CIS.

   mkdir /local/phobos

Tru64 systems with AdvFS? would typically do something like this:

   mkfset sys phobos
   mount 'sys#phobos' /local/phobos

While systems with traditional filesystems (e.g. Solaris) would do this instead:

   newfs /dev/dsk/cxtxdxsx
   mount /dev/dsk/cxtxdxsx /local/phobos

Exporting

The new filesystem needs to be made available to client systems in the Center over NFS.

Solaris DFS systems would add the following line to /etc/dfs/dfstab:

   share -F nfs -o rw=cis-unix /local/phobos

While systems using /etc/exports (e.g. Tru64) would add this line to their exports file:

   /local/phobos -access=cis-unix

Typically, you would use the showmount command from another system to check that the filesystems are being exported correctly. For example, if saturn is the fileserver being tweaked above, from another system you might run the following command to ensure that the new /local/phobos tree is being exported correctly.

   showmount -e saturn.cis.rit.edu

Directories

Note much of the information in this section is "how it should be", not "how it is". There's a lot of history and cruft in the system, and for that reason existing file tree may not look exactly as you see below. Directories may be called NEW and GNU instead of cis and gnu, for example. Mount points may be an extra level deep. Things like that. Keep your eyes open.

There are two trees supported within each filesystem: a CIS tree and a GNU tree.

   cd /local/phobos
   mkdir cis gnu

Each new tree needs a set of directories created within it. The set is listed below; each directory should be owned by root, part of group support, and mode 0775.

   for tree in cis gnu; do
      for dir in bin etc include lib libexec openssl opt share sbin var; do
         mkdir -m 0775 $tree/$dir
         chown root:support $tree/$dir
      done
   done

Each tree also has some convenience symlinks at the top. These are convenient both for users as well as older software packages that don't understand things like share.

   for tree in cis gnu; do
      ln -s share/doc $tree/doc
      ln -s share/man $tree/man
      ln -s share/info $tree/info
      ln -s openssl $tree/ssl
   done

Finally, for IDL, ENVI, and other related tools, we need one more symlink in the /cis tree.

   ln -s /cis/common/rsi cis/rsi

Automount Maps

Over on leeloo, there are three maps of interest.

auto.master

There needs to be a couple lines pointing at the CIS and GNU filesystems in the master automounter map (auto.master). Typically, these only need to be added once, ever; but make sure they're there. They should look something like

   /cis   auto.cis  -rw,hard,intr,nosuid,nodev,noquota
   /gnu   auto.gnu  -rw,hard,intr,nosuid,nodev,noquota

auto.gnu

This is an easy file; unlike the /cis filesystem, which supports home directories and all sorts of other things in the Center, the /gnu tree is just for programs. The mount map for this file should contain just the following.

   bin      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   doc      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   etc      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   include  -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   info     -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   lib      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   libexec  -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   openssl  -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   opt      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   man      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   sbin     -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   share    -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   ssl      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&
   var      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/gnu/&

auto.cis

Somewhere in the auto.cis file, there should be a section that resembles the GNU map above. The difference is that, instead of GNU in each line, it should specify cis. Note the addition of rsi.

   bin      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   doc      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   etc      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   include  -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   info     -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   lib      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   libexec  -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   openssl  -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   opt      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   man      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   rsi      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   sbin     -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   share    -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   ssl      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&
   var      -rw,hard,intr,nosuid,nodev,noquota  saturn:/local/$ARCH/cis/&

Software Builds

Starting with these two clean, fresh filesystems, what order do we start putting things out there? This assumes that you've got a native set of language tools available, somewhere, on your system. This also assumes that /cis and /gnu both work as above.

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r39 < r38 < r37 < r36 < r35 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback