User Tools

Site Tools


Practical 1: Linux Shell for Programmers

Aim: to build and install in your home directory a library and and application.


The slides for this morning's lecture on Linux are available.

Logging in

Download and install putty-ssh and connect to using the username (studentNN) and password provided.

Build and install zlib library

Create a src directory to store the source.

mkdir src

Copy the zlip source code tar file from my home directory.

cp /home/student00/??? .

Fill in the ??? with the correct path and file name.

Move the tar file into the new directory:

mv zlib-1.2.8.tar.gz src/
Note that the version available is probably newer than 1.2.8 — modify these instructions accordingly.

Untar the file

cd src
tar zxvf zlib-1.2.8.tar.gz

Load the correct environment variables using the tool “module”:

module load gcc/???

Fill in the correct information for the ??? above.

Prepare your own local directory structure:

cd ~
mkdir local
cd local
mkdir bin lib share include

Configure the compile environment:

cd zlib-1.2.8
./configure --prefix=~/local

Compile zlib using the tool “make” (instructing it to install to your local directory):

make install

Verify that everything is in ~/local

ls -R ~/local

Build a simple application using your own zlib

Copy the zpipe.c file from my home directory (student00) into your src directory.

You should be able to work out what the commands are by now

Edit the zpipe.c file to change the line that reads

#include "zlib.h"


#include "zzzlib.h"

and change the name of the zlib.h file in your ~/local/include directory to match.

Now compile the object file (ends in .o):

gcc -c -o zpipe.o -I ~/local/include zpipe.c

This should find the zzzlib.h file without errors.

Try the gcc command without the -I ~/local/include to what happens.

Now build the zpipe executable

gcc -o zpipe -I ~/local/include zpipe.c -L ~/local/lib -lz
The order of the command line options and arguments is important
The commands to link the library file must come after the commands to compile.

If there are no errors and ls shows you a zpipe file (in green) you are done.

You can test the new zpipe program by compressing and then uncompessing a file.

./zpipe < test > test.z
./zpipe -d < test.z > test2
cmp test test2

There should be no difference between test and test1.

Install zpipe

Now it is inconvenient that you have to always be in the src directory to use zpipe or to have to always type the full path to it: ~/src/zpipe

Install zpipe in your local execultable tree

cp zpipe ~/local/bin

To make sure that the shell can find zpipe you need to include your local/bin in the PATH environment variable:

export PATH=~/local/bin:$PATH

Now you need only type zpipe to use it anywhere.

zpipe --help

To make sure that each time you login that the PATH variable contains your local/bin directory, just add the export command to your .bash_profile file.

nano .bash_profile

And add (or edit the existing line) to have:

export PATH


/var/www/wiki/data/pages/workshops/hpcprac1.txt · Last modified: 2020/09/09 19:09 by kevin