Getting a Copy of MCC Interim Linux
***********************************

There are two ways at present by which you can get a copy of MCC
Interim versions of Linux: by anonymous ftp, and by visiting MCC.

Getting MCC Interim Linux by anonymous ftp
==========================================

"Anonymous ftp" is a service which allows people with TCP/IP software
and Ethernet access to retrieve files from other machines, called
servers.  You do not need a user name on the ftp servers.  The required
software is installed on most Unix machines.  Several versions of the
software are available for machines running MS-DOS.  A full tutorial in
the use of this software is beyond the scope of this document, but the
following sample session should convey a general idea of how the
software can be used.  A longer introduction to anonymous ftp can be
found in Linux Installation and Getting Started; for further
information, see README.documents.

     $ *ftp ftp.mcc.ac.uk*
     Connected to cfs2.mcc.ac.uk.
     220 cfs2 FTP server (Version wu-2.1c(8) date) ready.
     Name (myname:my.address): _

On some machines it is necessary to give the ftp command or its
equivalent without an argument, then to use the `open' command to
connect to the remote site.  On some machines it is necessary to give
an IP address instead of the name of the remote machine; the IP address
for ftp.mcc.ac.uk is 130.88.203.12.

     Name (myname:my.address): *ftp*
     331 Guest login ok, send your complete e-mail address as password.
     Password (linux:ftp): *Myname@my.address*
     230 Guest login ok, access restrictions apply.
     Remote system type is UNIX.
     Using binary mode to transfer files.
     ftp> _

The user name `ftp' usually gives access to the anonymous ftp service.
On some machines it is necessary to give the user name `anonymous'.
The password is not in fact a password at all, but your identification.
It is customary -- and more courteous -- to give your own E-mail
address as the password.  Sometimes this allows us to contact people
who have inadvertently copied software which contains dangerous bugs.
Some machines will not let you have access to their anonymous ftp
service unless you give a valid E-mail address as the password.

     ftp> *dir*
     200 PORT command successful.
     150 Opening ASCII mode data connection for /bin/ls.
     total 4
     drwx--x--x   2 admin    sys          2048 Feb 26 19:34 bin
     dr-x--x--x   2 admin    sys          2048 Mar 19 17:57 etc
     dr-x--x--x   2 admin    sys          2048 Apr  5 13:50 logs
     drwx--x--x   2 admin    sys          2048 Mar 18 15:16 mirror
     dr-xr-xr-x   3 admin    sys          2048 Mar  2 11:29 pub
     226 Transfer complete.
     ftp> _

The `dir' command gives you a listing of the remote directory.

     ftp> *cd pub/linux*
     250 CWD command successful.
     ftp> *cd mcc-interim*
     250 CWD command successful.
     ftp> *cd 1.0+*
     250 CWD command successful.
     ftp> _

Note that you may move through the directory tree one step at a time,
or many steps at once.

     226 Transfer complete.
     ftp> *ascii*
     200 Type set to A.
     ftp> *get README.lilo*
     200 PORT command successful.
     150 Opening ASCII mode data connection for README.lilo (45088 bytes).
     226 Transfer complete.
     46057 bytes received in 0.259 secs (1.7e+02 Kbytes/sec)

The `ascii' command ensures that subsequent transfers are made in text
mode.  This is a good idea unless you are certain that the remote
machine uses the same format and character set for text files that
yours does.  For example, MS-DOS and Unix do not use the same format
for text files.

The `get' command copies a remote file to your machine.  Some ftp
programs allow you to change the name of the file when it is
transferred.  Note also that the names of some files are changed
automatically if you transfer them to MS-DOS systems; for example,
`README.lilo' becomes `README.LIL'.

     ftp> *cd images*
     250 CWD command successful.
     ftp> *binary*
     200 Type set to I.
     ftp> *mget r**
     mget root.gz? *y*
     200 PORT command successful.
     150 Opening BINARY mode data connection for root.gz (844253 bytes).
     226 Transfer complete.
     844253 bytes received in 1.75 secs (4.7e+02 Kbytes/sec)
     ftp> *quit*
     221 Goodbye.
     $ _

The `binary' command ensures that subsequent transfers are made in
binary mode.  You should use this mode for all MCC packages and
compressed disk images, as well as for all MS-DOS executable files.

The `mget' command gets all files whose name matches the pattern you
give.  `mget *' gets all files in the remote directory.  Some ftp
servers, such as the one at ftp.mcc.ac.uk, allow you to get a whole
directory tree as a single tar file, or as a compressed or gzipped tar
file.  For example, to retrieve the entire MCC 1.0+ distribution
(including source files) as a tar file, change to the directory
`/pub/linux/mcc-interim', and give the command `get 1.0+.tar'.  Note
that the resulting tar file is about 70 Mb in size.

The `hash' command prints a `#' for every kilobyte transferred.  This
may be useful if your connection does not allow fast transfers.

MCC Interim versions of Linux are released on ftp.mcc.ac.uk
[130.88.203.12] in the directory `/pub/linux/mcc-interim'.  In this
directory there are subdirectories `dos-utils' (which contains some
commands which you may need if you install Linux from DOS), `1.0+'
(which contains the current release), and `old' (which contains one or
more older releases).  The current MCC release is also available from
sunsite.unc.edu [152.2.22.81] in the directory
`/pub/Linux/distributions/MCC', from tsx-11.mit.edu [18.172.1.2] in the
directory `/pub/linux/distributions/MCC', and also from nic.funet.fi
[128.214.6.100] in `/pub/OS/Linux/images/MCC-interim'.  Other sites
sometimes maintain mirrors of the current MCC distribution.

The directory `1.0+' contains the current `README' files and the file
`Bugs+Warnings', which contain important information.  (The contents of
all of these files have been incorporated into the present document.)
It also contains the following subdirectories:

`images'
     This contains the gzipped images of the two boot disks and the
     root or base disk.  The file `nocdboot.gz' is the normal boot
     disk, while `cdrmboot.gz' is a special boot disk, whose kernel
     contains drivers for the supported CD ROM disks, but which may
     cause problems if you have other hardware.  `root.gz' is the root
     or base disk.  The suffix `.gz' indicates that the files have been
     gzipped, and must be uncompressed with `gunzip' or with the
     command `gzip -d'.  The files `nocdboot.cnf' and `cdrmboot.cnf'
     are copies of the `config.in' files used to compile the kernels on
     these disks.

     `gzip' is the GNU compression utility.  A version of this utility
     which runs under MS-DOS can be found in the `dos-utils' directory.

`packages'
     This contains the packages which are optional, but important,
     parts of the MCC Interim distribution.

`extra_kernels'
     This contains additional kernels which may be installed as if they
     were packages.  You should not install more than one of these
     kernels.  They contain no support for SCSI or XT disks, and one of
     them, `wd.tgz', contains support only for the Western Digital 80x3
     Ethernet cards.  All four MCC kernels contain maths coprocessor
     emulation code, and support for IDE hard disks, parallel printers,
     selection (cut and paste between virtual consoles), ELF and COFF
     binary support, and support for the minix, ext2, msdos, NFS, and
     proc file systems.  The files `ipide.cnf' and `wd.cnf' are copies
     of the `config.in' files used to compile these kernels.

    cdrmboot
          All CD ROM, all SCSI, XD, all Ethernet cards.

    nocdboot
          No CD ROM, all SCSI, XD, all Ethernet cards.

    ipide
          No CD ROM, no SCSI, no XD, all Ethernet cards.

    wd
          No CD ROM, no SCSI, no XD, WD 80x3 Ethernet cards only.

`extra_packages'
     This contains packages which have a secondary status, mainly
     because they are not needed to recompile other packages.

    emacs,
    elisp
          A cut-down version of the `emacs' editor, which we use in our
          courses at the Computer Centre.  A more complete version can
          be obtained by installing the emacsxtr package in addition to
          these two.  Note that the emacsxtr package is too large to
          fit on a floppy disk.  A version of `emacs' which is compiled
          with support for X windows is available by anonymous ftp from
          the `contributions' directory.

    extrainf
          Info files which I did not wish to include in the main
          distribution; these describe the GNU assembler `gas',
          `bison', `flex', texinfo, `gcc' and how to port it, `cpp',
          some of the odder parts of `emacs', and other subjects.

    extralib
          A number of libraries which are of less general interest than
          those contained in the gccb package: `bfd', `dbm', `gmon',
          `iberty', `mcheck', `mmalloc', `opcodes', and `readline'.

    gprof
          The GNU profiler `gprof', together with its support files.

    kermit
          The `kermit' terminal emulator and file transfer utility.

    lp
          The Berkeley lineprinter program `lpr', together with
          associated commands and daemons.

    mail
          The `elm' mail reader and the `smail' mail delivery system,
          together with their support files.

    manpages
          Unformatted manual pages.  The formatted pages are all that
          most people need, and they are already contained in the other
          packages.

    patches
          The patches which, when applied to the corresponding source
          files, produce the sources compiled in the current release.

    timezone
          The time zone data files, which are produced from the
          `utilx15' source file.

    words
          The file `/usr/dict/words'.

`source_files'
     This contains the source files which were used to compile all
     binaries in the current distribution.

`contributions'
     This contains MCC-style packages and source files for programs not
     distributed as part of MCC Interim Linux.  The file `00-contents'
     describes what is there.  Currently it contains NFS server
     software, cron, a version of the emacs binary that supports X
     windows, the network time software package `xntp', and the
     typesetting utility TeX.

After you decide what you need, you may transfer those files in binary
mode to any machine which supports ftp.  The root and boot disks must
be gunzipped and copied to a high density floppy disk, either 3.5 inch
1.44 Mb or 5.25 inch 1.2 Mb, of the sort which can be used to boot the
PC on which you intend to install or upgrade Linux.  If you have a
Linux system which you are upgrading, you may put an unformatted floppy
into your 0 drive (which DOS calls `A:') and give these commands:

     fdformat /dev/fd0H1440                 (for 3.5 inch disks)
     fdformat /dev/fd0h1200                 (for 5.25 inch disks)
     gunzip root.gz
     dd if=root of=/dev/fd0 bs=18432        (for 3.5 inch disks)
     dd if=root of=/dev/fd0 bs=15360        (for 5.25 inch disks)

Then place another unformatted floppy in drive 0 and repeat this process
with `nocdboot.gz'.  (We recommend using unformatted floppies, since
older floppies often have bad blocks, which make the critical root and
boot floppies unreliable.)

If you are installing Linux on a machine which already contains a
version of Linux, you may wish to put the MCC packages in a directory
in the existing file system.  MCC Interim versions at present support
only the minix and ext2 file systems.  The kernel will not allow you to
mount older ext or xiafs file systems.  The packages you wish to
install should be in a single directory, and they must have the same
file names (in lower case) as they do in the MCC distribution
directory.  You may put all the packages in a DOS directory on the same
machine, or you may copy them to floppies.  The MCC distribution
prefers DOS-format floppies, though minix or ext2 floppies will work as
well.  DOS format floppies will hold more, and will not produce
spurious error messages during installation.

If you are installing from DOS, you need commands which will gunzip the
disk images and copy then to a disk.  The commands `GZIPxxx.EXE',
`RAWRITE.EXE', and `RAWRITE3.COM' can be found at ftp.mcc.ac.uk in the
directory `/pub/linux/mcc-interim/dos-utils'.  Transfer `GZIPxxx.EXE'
and one of the `RAWRITE' commands in binary mode.  (The version number
xxx is currently 124.) The command `GZIPxxx.EXE' is a self-unpacking
archive, which creates `GZIP.EXE' and a documentation file.
Documentation for the two `RAWRITE' commands can be found in the
`dos-utils' directory with the commands.  Remember to transfer
documentation files in text mode.  After unpacking `GZIP.EXE', you
should give the following commands:

     FORMAT A:
     GZIP -D ROOT.GZ
     RAWRITE
     Enter source file name: ROOT
     Enter destination drive: A:
     Please insert a formatted diskette into drive A: and press -ENTER- : _

The program `RAWRITE3' is screen-oriented, and may work rather faster
than the older `RAWRITE' program.

If you are installing Linux on a system which already contains a DOS
partition, you may find it convenient to put MCC packages in a single
directory on that partition.  You can also copy them to DOS format
floppies.  As explained above, the file names must be the same as in
the `packages' directory, though under DOS they will, of course, be in
upper case.  If you get all of the packages and extra packages, they
will fit on floppies as follows:

3.5 inch high density floppies:

disk 1
     elisp

disk 2
     bison, gcca, groff

disk 3
     baseman, flex, gccb, words

disk 4
     info, manpages

disk 5
     gpp, mail, patches

disk 6
     extrainf, gdb, kermit

disk 7
     emacs, extralib, gawk, progman

disk 8
     gprof, linux, lp, timezone

In this case, disk 1 also has room for the two extra kernel packages.

5.25 inch high density floppies:

disk 1
     info

disk 2
     gcca, mail

disk 3
     baseman, manpages

disk 4
     bison, gawk, groff, lp, timezone

disk 5
     gccb, gdb

disk 6
     elisp, progman, words

disk 7
     extralib, flex, gpp

disk 8
     extrainf, gprof, patches

disk 9
     emacs, kermit

disk 10
     linux

In this case as well, disk 1 also has room for the two extra kernel
packages.

The MCC installation allows you to create your own packages, which you
can install along with ours.  They must be gzipped tar files with the
extension `.tgz'.  Each package is unzipped and untarred in the root
directory, but should contain only files with relative path names;
e.g., not `/usr/bin/cmd' but `usr/bin/cmd'.  If it contains files
`install.setup' and `install.clean', these are executed as shell
scripts respectively before and after untarring the archive.  If you
wish, you may include a file `install.info', which is copied to the
screen during installation.  The MCC packages all contain a file
filename`.crc', which must have the same basename as the `.tgz' file,
and which has been generated with the command `brik -Gb'.  If such a
file exists, the installation uses it to verify the included checksums
after `install.clean' is executed.  This `.crc' file is then saved in
`/tmp', where you may delete it, or move it somewhere safe if you wish
to keep it.

You may omit any packages you wish.  Obviously, you cannot recompile the
kernel unless you also install gcca and gccb.  Bison, flex, gdb, gpp,
and gprof will not work properly unless gcca and gccb are also
installed.

Getting MCC Interim Linux from the MCC shop
===========================================

MCC Interim Linux is available from the MCC shop.  You can buy a set of
diskettes containing the boot and root disks, all the packages, and the
two optional kernels with no SCSI support.  *Note Getting MCC Interim
Linux by anonymous ftp: FTP, where these optional kernels are described.
At present only 3.5 inch diskettes are available on demand, since there
has been little call for the 5.25 inch disks.

You can also obtain a copy of this document.  Because of changes in
University funding policy, there is now a small charge for almost all
documents, including this one.

Installing MCC Interim packages using NFS
=========================================

It is possible to install MCC Interim packages from a directory on a
remote machine, which can be mounted on your Linux system using NFS.
To do this, you must have a supported Ethernet card.  You must already
have networking software installed and configured.  In the present
release of MCC Interim Linux, the networking software can be installed
and configured from the boot and root disks.

The mounting of remote file systems varies from one site to another.
The following commands can be used in Manchester to make MCC packages
available using NFS and to install them.  After installing or upgrading
from the boot and root disks, as described in README.install, give
the following commands:

     mkdir /afs /packages
     mount -t nfs -o rsize=1024,wsize=1024 zeus.mcc.ac.uk:/afs /afs
     cd /packages
     ln -s /afs/mcc/ftp/pub/linux/mcc-interim/1.0+/[pe]*/* .

This places symbolic links to all MCC Interim packages, extra packages,
and extra kernels in the directory `/packages'.  Use the command `ls'
to list the available packages, and use the command `rm' to delete the
links to any packages you do not wish to install.

*Note*: Do not install the extra kernel packages ipide or wd if you
have SCSI disks, as these kernels do not contain support for them.

Give the following command:

     */tmp/bootinstall*

     Which drive will you use to install Linux packages:

     1  drive A:  5.25 inch HD floppies
     2  drive A:  3.5  inch HD floppies
     3  drive B:  5.25 inch HD floppies
     4  drive B:  3.5  inch HD floppies
     5  A directory on an unmounted partition on this machine
     6  A directory already mounted at this time
     7  No installation at this time

     ? *6*
     Do you wish to have a prompt before each package (Y or N): *n*

     If you wish, you may install other parts of MCC Interim Linux
     from a directory on another machine, remotely mounted using NFS,
     or from a currently available directory mounted in some other way.
     This will only work if you have mounted the remote directory.
     If the directory is not accessible now, do you wish to quit? (Y or N): *n*

     In what directory are the MCC packages to be found?
     */packages*

At this point the packages you have selected will be installed.  After
you have completed the installation, you may give these commands to
`clean up':

     umount /afs
     rm -rf /afs /packages

If MCC Interim packages are available from other sites using NFS, you
should check with the local administrator to find what commands you
should use to mount the appropriate file system, and to ensure that you
have the appropriate permission to mount it.
