Xref: utzoo comp.protocols.appletalk:5689 comp.sys.mac.comm:3295 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!usc!jarthur!nntp-server.caltech.edu!dank From: dank@nntp-server.caltech.edu (Daniel R. Kegel) Newsgroups: comp.protocols.appletalk,comp.sys.mac.comm Subject: How to install CAP/UAB (an Appleshare fileserver) on a Sun4 Summary: I did it, it seems to work Message-ID: <1991Apr13.011023.9751@nntp-server.caltech.edu> Date: 13 Apr 91 01:10:23 GMT Organization: California Institute of Technology, Pasadena Lines: 209 I recently installed CAP on my Sun (a 4/470 running SunOS 4.1.1 Rev B) for the file serving software. It was not difficult, but I had to read between the lines to figure out exactly what steps to follow. Also, the default installation scatters files across several filesystems, and I wanted to concentrate all the files in one place in /usr. I have run through this procedure, and it seems to work; an EtherTalk-equipped Mac IIx running System 6.0.5 can mount SunOS volumes nicely. The procedure I used is documented below. (CAP can be downloaded via FTP from munnari.OZ.AU in mac/cap60.tar.Z if you can't find it anywhere in the US.) To deinstall CAP, just rm -rf /usr/local/cap /etc/cap /etc/cap.rc and delete the line in /etc/rc.local that invokes cap.rc. - Dan Kegel (dank@blacks.jpl.nasa.gov, dank@chairie.caltech.edu) Procedure to install CAP/UAB into /usr/local/cap on a Sun4 running SunOS 4.1.1 such that ALL read-only files live in /usr/local/cap, and all read-write files live in /etc/cap. This makes for easy deinstallation and copying to new systems. In the following, #% indicates the shell prompt for super-user, % indicates the shell prompt for user cap, and ~ indicates /usr/local/cap. 0) Become superuser, create area for cap to save data in, and add user 'cap' to /etc/passwd with home directory /usr/local/cap. The intention is for /usr/local to be mounted read-only after installation. $ su #% /usr/etc/install/add_user cap 9999 10 "Columbia Appletalk Package" \ /usr/local/cap /bin/csh 1) Become user cap, and Create subdirectories in ~cap: #% su cap #% mkdir /etc/cap #% chown cap /etc/cap # for convenience later in setup % cd ~ % mkdir bin include lib % ln -s /etc/cap etc 2) Grab and unpack tarfile: % cd ~ % ftp munnari.oz.au > binary > get mac/cap60.tar.Z > quit % zcat cap60.tar.Z | tar xvf - # creates subdirectory cap60. 3) CAP's Makefiles aren't smart enough to deal with include files or libraries in nonstandard places yet, so build a wrapper around the C compiler like so: Create cc in ~cap/bin, and add ~cap/bin to the path: % cat > ~/bin/cc #!/bin/csh -f /usr/ucb/cc -I/usr/local/cap/include -L/usr/local/cap/lib $* ^D % chmod +x ~/bin/cc % set path = (~/bin $path) 4) Let cap autoconfigure itself. Answer 'yes' to the question about using UAB, and about slowing down output for Kinetics boxes, but otherwise just use the default answers: % cd ~/cap60 % ./Configure 5) Edit m4.setup to restict all CAP files to live in /usr/local/cap. % cd ~/cap60 % vi m4.setup line old new 90 /usr/include /usr/local/cap/include 94 /etc /usr/local/cap/etc 97,99 /usr/local/cap /usr/local/cap/bin 101 /usr/local/lib/cap /usr/local/cap/lib 103 /usr/local/lib /usr/local/cap/lib 158 /etc/cap.auth /usr/local/cap/etc/cap.auth 6) Create all the makefiles according to the new configuration files: % cd ~/cap60 % ./gen.makes 7a) Patch ~/cap60/support/uab/makefile to keep its database in /usr/local/cap/etc instead of /etc by changing the line CFLAGS=-DDEBUG -O to read CFLAGS=-DDEBUG -O -DMTAB=\"/usr/local/cap/etc/etalk.local\" near the top. 7b) Patch ~/cap60/lib/cap/makefile to keep its database in /usr/local/cap/etc instead of /etc by changing the line CFLAGS= -O to read CFLAGS= -O -DETAB=\"/usr/local/cap/etc/etalk.local\" near the top. 8) Patch cap60/man/makefile to install man pages for SunOS by adding following lines after the rule for 'all:'. Be careful to start each line after 'install' with a tab, and not with spaces, or Make will choke. % cd ~/cap60/man % vi makefile # and add following lines: # Added 4/91 by Dan Kegel (dank@blacks.jpl.nasa.gov) # to install man pages into a private area suitable for # use with man, catman, and apropos via the MANPATH environment variable. DESTDIR = /usr/local/cap/man install: mkdir $(DESTDIR) mkdir $(DESTDIR)/man1 $(DESTDIR)/man3 $(DESTDIR)/man5 $(DESTDIR)/man8 mkdir $(DESTDIR)/cat1 $(DESTDIR)/cat3 $(DESTDIR)/cat5 $(DESTDIR)/cat8 cp *.1 $(DESTDIR)/man1 cp *.3 $(DESTDIR)/man3 cp *.5 $(DESTDIR)/man5 cp *.8 $(DESTDIR)/man8 ln -s papif.8 $(DESTDIR)/man8/papof.8 ln -s atprint.1 $(DESTDIR)/man1/tlw.1 ln -s atprint.1 $(DESTDIR)/man1/lwpr.1 cp atprint.1 $(DESTDIR)/man8/isrv.8 ln -s atprint.1 $(DESTDIR)/man1/iwpr.1 ln -s CAP.3 $(DESTDIR)/man3/libcap.3 ln -s CAP.3 $(DESTDIR)/man3/libafpc.3 ln -s CAP.3 $(DESTDIR)/man3/libafp.3 ln -s cvt2apple.1 $(DESTDIR)/man1/cvt2cap.1 ln -s atlook.1 $(DESTDIR)/man1/atpinger.1 ln -s atlook.1 $(DESTDIR)/man1/atlooklws.1 /usr/etc/catman -M $(DESTDIR) # Now add $(DESTDIR) to your MANPATH environment variable. # Caution: above lines start with TAB, not blanks 8) Install cap's man pages (ignore errors from opendir): % cd ~/cap60/man % make install 9) Install cap's include files: % cd ~ % mkdir include/netat % cp cap60/netat/*.h include/netat 10) Compile the programs and install them in ~/bin: % cd ~/cap60 % make install 11) Create script that lets users access CAP if needed: % cat > ~/bin/setup_env # C-shell users add the line 'source /usr/local/cap/bin/setup_env' # to their .cshrc to use CAP programs, manpages, or libraries directly. set path = (/usr/local/cap/bin $path) setenv MANPATH '${MANPATH}':/usr/local/cap/man ^D 12) Create ~/lib/bridge_desc. For example, if your hostname is blacks, the following two lines would connect to whatever's out there on Ethernet, and ignore asynchronous Appletalk: % cat > ~/lib/bridge_desc blacks [elap,ie:0] mkip [0] blacks [async,as:0] none [127.127,fakeZone] ^D 13) Create read-write and read-only folders available to all Mac users. % mkdir ~/macpub ~/macpub/.finderinfo ~/macpub/.resource % chmod -R 755 ~/macpub % mkdir /usr/tmp/mactmp /usr/tmp/mactmp/.finderinfo /usr/tmp/mactmp/.resource % chmod -R 777 /usr/tmp/mactmp 14) Create a file describing the public folders. Replace 'blacks' with your hostname: % cat > ~/lib/afpvols /usr/local/cap/macpub:blacks_public /usr/tmp/mactmp:blacks_temporary ^D 15) Create a shell script to start CAP, and invoke it in /etc/rc.local: % su #% cat > /etc/cap.rc #!/bin/sh ### sample start servers file; start from '/etc/rc.local' LOGd=/usr/tmp LOGf=/dev/null CAP=/usr/local/cap/bin LIB=/usr/local/cap/lib LWARGS="-a ${LIB}/procsets -f ${LIB}/LW+Fonts" # # Start UAB first. # Assumes you've created /usr/local/cap/lib/bridge_desc. ${CAP}/uab -f ${LIB}/bridge_desc sleep 10 # # allow atis to startup before other CAP programs ${CAP}/atis sleep 5 # # Start up snitch, fileserver, and print server. # Assumes there's a printer called lw.`hostname` in /etc/printcap, # and that you've created /usr/local/cap/lib/afpvols. ${CAP}/snitch -S -f "SUN 4 SunOS 4.1.1 UNIX" -l lwsrv ${CAP}/aufs -U 20 -V ${LIB}/afpvols -l ${LOGf} -n `hostname` ${CAP}/lwsrv -n "Laserwriter on "`hostname` -p lw.`hostname` ${LWARGS} ^D #% chmod +x /etc/cap.rc #% vi /etc/rc.local # Add the following lines at the bottom: # # Start up Appletalk fileserver & print server. # if [ -f /etc/cap.rc ]; then /etc/cap.rc; echo "Appletalk fileserver" fi ^D 16) Test the installation by seeing if your fileserver is visible, and by logging in to it with ash (replace blacks with your hostname): % atlook % ash "blacks:AFPServer@*"