Using Public or Private Programs and Libraries

From VrlWiki
Jump to navigation Jump to search

You can have either private copies of libraries and programs or you can use the shared copies. When you use private programs and libraries you determine when they are updated and which ones you want to use. The downside is that you have to set them up and mange them yourself. Alternatively you can use public software, however because it is public it can be changed by any member of the group at any time. Usually people use caution when changes happen, but regardless any changes are likely to disrupt some users.

Libraries and programs from third parties are typically downloaded from the web. The public copies are installed in /research/graphics/tools/linux/import/. The environment variable G_IMPORT controls where the the build system gets third party libraries when linking. Defaults are $G/import and then $GROOT/tools/linux/import. If you want private copies, set up an import directory in your sandbox. You can install the latest versions them from scratch or copy select packages from the public imports.

The import/ directory has subdirectories for each package. The organization of each subdirectory is determined by the vendor and the person that set up the install.

Public libraries and programs written by Brown students is installed in one of these directories depending on the platform:

/research/graphics/tools/linux/install_linux/
/research/graphics/tools/linux/install_WIN32/
/research/graphics/tools/linux/install_OSX/

Each has bin/, lib, include/, and share/ subdirectories. When building with libraries the build system looks for an install directory in this order:

$GROOT/users/$USER/install_$GARCH/
$HOME/install_$GARCH/
$GROOT/tools/linux/install_$GARCH/
$GTO/install_$GARCH/
$G/install_$GARCH/

The $GTO variable is used to access installed projects and defaults to $G.

The $G variable is used as a default location and it is also used to access the make files in:

$G/common/build/make/

Using only Public Directories

With this setup your work are has only your project code and that can be in any directory you want.

G       /research/graphics/tools/linux


If you want to install your project in the public area set:

GTO    /research/graphics/tools/linux


Using only Private Directories at the Top of Your Work Area

This configuration allows you to decide when software is updated. Your work will not impacted by changes made to the public area.

G     /research/graphics/users/$USER
> cd  $G
> cvs co  common              # Populate the common directory.
> cvs co  project/...         # Populate the projects you want to work on.
> mkdir  $G/install_linux
> mkdir  $G/install_WIN32
Copy select imports from /research/graphics/tools/linux/import/ to:  /research/graphics/users/$USER/import/

Do not copy the entire import directory as it uses a lot of space. Only copy the packages you need. You can also install imports by downloading the latest package.

It's recommended that you build the Brown software rather than copy it from the public directory. This ensures you have the latest versions corresponding to the source code in your work area.

If you want to install your project in the private area set:

GTO    /research/graphics/users/$USER


If you want to install your project in the public area set:

GTO    /research/graphics/tools/linux

Using Public Third Party Packages and Private Brown Software.

It is less likely that changes to third party software will impact your work. If that is the case then with this configuration you will not have to copy over their software.

G          /research/graphics/users/$USER
G_IMPORT   /research/graphics/tools/linux
> cd  $G
> cvs co  common              # Populate the common directory.
> cvs co  project/...         # Populate the projects you want to work on.
> mkdir  $G/install_linux
> mkdir  $G/install_WIN32

It's recommended that you build the Brown software rather than copy it from the public directory. This ensures that the versions you are working with correspond to the source code in your work area.

If you want to install your project in the private area set:

GTO    /research/graphics/users/$USER


If you want to install your project in the public area set:

GTO    /research/graphics/tools/linux