This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Questions about Cygwin's setup...


Dave,
	We do something like that at work... there is one installed tree
out on the LAN (equivalent of c:\cygwin\, call it n:\cygwin_cur\ *) that
we all mount stuff out of. This then can be updated by any of us, and
everyone gets the new code. The only problem we've really seen is if
I'm running something and you want to update it you're SOL because
I've got the dlls locked. The "solution" to this was to move to a
readonly file system to access the files, and a second share that was
read-write to update them. This works nearly 100%, the problem that
has sometimes been seen is that if I have a dll loaded and one it
depends on gets replaced with an incompatible version before I load
it... kaboom. The solution to this that some of us have adopted is
that instead of remotely mounting the network share, we periodically
mirror a local copy.
	The setup method we use to get a new machine going into this
environment is basically to run setup but not install anything (like
DJ suggested, run it in an empty dir and say install from local). Then
mount /bin, /lib, /sbin, /usr, /usr/bin, /usr/lib, and a couple local
directories to the right network mount point, shallow copy /etc, make
/tmp and /var and finally remount / to our local directory.

(* in reality there are two, _cur and _tst ;)

	That said, I have a prefered method I use at home to keep my
three machines happy. Setup a network share to keep the tarballs in,
periodically use the download from internet option to refresh that
collection (and unless you've got the space, periodically manually weed
out the old tarballs.) and save a copy of setup.exe in that location.
If you want you could use mirror or something to keep it up todate.
Also create a directory called "isCurrent" (or whatever).
	Then do an install on each machine by running setup from the
share, and using UNC for the paths with the install from local directroy.
After you've done the initial setup you can update automatically like
this:

if exist \\computer\share\cygwin\isCurrent\%COMPUTERNAME% goto :amCurrent
net stop inetd
\\computer\share\cygwin\setup.exe
echo "" > \\computer\share\cygwin\isCurrent\%COMPUTERNAME%
net start inetd
:amCurrent

personally I have this in the top of the cygwin.bat file
so it checks the currency whenever I start cygwin. You could also
put this in a manualy executed file, although I'd remove the if test
for that (but not the creation of the file). Obviously the inetd
stuff can be removed if you don't have it on the machine, and know 
you won't be putting it on (or will remember to put it back if you
do). Oh, and in case it isn't obvious you would delete all the files in
the isCurrent directory when you update the tarballs on the server,
or at least when you do major updates. and the use of UNC everywhere
allows you to do this without tying up some driver letter with a
mount point, in a multi user environment you're bound to piss off
someone that doesn't want you taking any letters away from them.
(there's a guy down the hall at work that has 25 drive letters in use,
he'd have all 26 if he could just make use of b:... ;)  speaking
of multi user... if it were my tree I'd make all but isCurrent ro.

	I hope that give you some ideas... to answer your basic question,
yeah, it's doable....

-- 
now the forces of openness have a powerful and
  unexpected new ally - http://ibm.com/linux


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]