Solaris

The educational technology and digital learning wiki
Jump to navigation Jump to search

Solaris pointers

This page includes a a few pointers for the Solaris operating system. Solaris has the advantage of being rock solid (including the hardware), but life is not as easy as with debian-based Linux systems like Ubuntu for example...

Disclaimer: Daniel K. Schneider is not a sys admin expert, but usually mangages to install things. This server runs on a Solaris machine that is configured by our friendly central sysadmin persons. We just add on top, e.g. AMP software and (of course) all the portalware.

Open source packages for Solaris

Packages do not always install in the same way. It's probably best to work with only one of these friendly providers ...

How to use the packaging system with for individual packages

  1. Download the package
  2. Gunzip the package file
  3. Become root
  4. Type:
pkgadd -d <filename>

E.g.

pkgadd libpng-1.2.32-sol10-sparc-local

If you want to install it in some other place, type:

pkgadd -d <filename> -a none 

There can only be one version of a package. This means that you may have to remove old ones:

  • Find it first. pkadd will tell you the name.
The following packages are available:
  1  SMClibpng     libpng
  (sparc) 1.2.32
  • Else, you can find a package that is installed by typing:

pkginfo | grep <part_of_the_package_name>

  • Then think hard if you could damage something by removing it. E.g. look at details first:
pkginfo -l SMClibpng
PKGINST:  SMClibpng
NAME:  libpng
CATEGORY:  application
ARCH:  sparc
VERSION:  1.2.12
.....
  • Then remove it
pkgrm <packagename>

E.g.

pkgrm  SMClibpng

Problems

Often a package depends libararies that don't work and they then won't work either...

You have to make sure that libaries don't have any undefined symbols or missing dependencies (other libraries). Type:

ldd -r <library_name>

E.g.

ldd -r /usr/local/libpng.so

Or do it recursively (all dependent libraries too):

ldd -rv ....

If you find missing symbols or libraries, it simply may be the case that it can't find the libraries in question. Fix that by definin/extending the LD_LIBRARY_PATH. Either in the script that launches software that is using a library or at system level.

Otherwise, install new versions. I just put most of them in /usr/local/.

Also, some package archives support automatic package updating. E.g. read the BlastWave instructions.

Search pathes

Search pathes for finding binaires depend on the shell used:

Bourne for the system
/etc/profile
CSH for the system
/etc/csh.login
Bourne and Korn for users
$HOME/.profile

To change it, insert/change

$PATH = $HOME/bin:/usr/local/bla/bin:$PATH
$export PATH To use it:
$HOME/.profile
CSH for users
$HOME/.cshrc or $HOME/.login

To change it, insert/change:

setenv PATH /usr/local/bla/bin:$PATH

To use it:

source $HOME/.cshrc

Also, type rehash after adding binaries somewhere in the path directories.

Core dumps

Core dumps (when a program crashes) can take up a lot of space and fill up a disk.

Best solution: Redirect core dumps (see coreadm and dumpadmin)

A simpler solutions is to limit the size of coredumps (but don't forget to disable if you have real problems, e.g. with the OS).

Check all limits under CSH and SH
ulimit -a
Set limits under CSH
limit coredumpsize NN
limit -h coredumpsize NN 
  • NN = 512 byte blocks
  • -h will set hard limits
  • for SH/KSH see: ulimit

HELP

Specialized topics

(such stuff might be moved to a generic Unix page some day ...)