From: Charles Wilson <cwilson@ece.gatech.edu>
To: George Hester <hesterloli@hotmail.com>
Cc: cygwin@cygwin.com
Subject: Re: I am not going to let cygwin BSOD my Windows 2000 Server
Date: Sat, 20 Apr 2002 14:28:00 -0000 [thread overview]
Message-ID: <3CC1DE00.5080405@ece.gatech.edu> (raw)
In-Reply-To: <a9s9ri$ppm$1@main.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 2353 bytes --]
George Hester wrote:
> The information I have garnered here has helped to maybe stick my toes in
> the fire again. I will wait a while and see if there is any good soul that
> can explain the procedures for a manual setup. And if that is pie in the sky
> then at that point I will decide if walking around with a few less toes is
> worth it.
[Robert, Chris : this isn't intended to detract from setup.exe. In
fact, I hope it actually serves to demonstrate how much setup.exe DOES
for you (since this DOESN'T do those things). In the future, when
luddite reactionaries insist on installing cygwin by hand, point them to
this message with the appropriate disclaimers. Hopefully we can
short-circuit future threads of this type.]
Okay, here:
Cygwin used to distribute a "bootstrap.zip" file that allowed
anti-setup.exe people to shoot themselves in the foot (or head).
However, in the recent reorganization of the cygwin ftp site, it went
away. Well, never let it be said that the cygwin folks are
overprotective; if you want to shoot yourself in the foot we'll give you
the tools....
I don't guarantee that this will create a working cygwin installation on
your system. I don't even guarantee that the scripts will run without
error. I don't warrant the scripts against totally scrogging your
entire system. If you use these scripts, you indemnify me and everybody
else on the planet against any damage they may or may not cause.
Neither I nor anyone else will support these scripts or answer any
further questions about them. Neither I nor anyone else will support
any cygwin installation created by them. You are totally, completely,
100% and in all other ways on your own.
That having been said, go here:
http://www.neuro.gatech.edu/users/cwilson/cygutils/cygwin-bootstrap/
and download bootstrap.zip. Unpack it. run bootstrap.bat from a
command prompt. Afterwards, you may even be able to use the
manual_install.bash and manual_uninstall.bash script to (painfully)
maintain your system. But then again, maybe not.
The scripts are attached here; bootstrap.zip contains them as well as
cygwin1.dll, tar.exe, gunzip.exe, gzip.exe, bunzip2.exe, mount.exe,
sh.exe, bash.exe, and the cygwin-1.3.10-1 package (total size: 1.7M).
bootstrap-src.zip contains all appropriate sources (total size: 8.4M).
--Chuck
[-- Attachment #2: bootstrap.README --]
[-- Type: text/plain, Size: 1440 bytes --]
This is absolutely, totally, and completely unsupported.
No one will answer any questions about it. No one will
support a system that was installed using this method.
If it works, great. If not, also great. If it completely
destroys your system, it's your fault, not mine.
How to use:
- unpack bootstrap.zip using your favorite unzipper
- run "bootstrap.bat"
- you now have the core cygwin kernel installed but almost
nothing else. There's bash.exe, sh.exe and a few utilities,
but you'd better install some packages.
- the end.
You can also use "manual_install.bash" and "manual_uninstall.bash"
to add or remove cygwin packages.
What these scripts don't do:
they don't parse filename / version numbers exactly the same
as the official setup
they don't handle upgrades (you have to uninstall and then install)
-- which makes it difficult to upgrade the 'bash' package, for
instance. Ditto gzip, tar, bzip2, and cygwin itself.
you have to manually correct the /etc/setup/installed.db file; these
scripts will leave duplicate entries after a reinstall, and don't
remove uninstalled entries
you don't get a handy shortcut for starting cygwin
they do NOT understand prerequisites and dependencies -- it's even
possible for the postinstall scripts to fail because they aren't
"saved" until the end, and the postinstall script might call an
executable that hasn't yet been installed.
[-- Attachment #3: bootstrap.bat --]
[-- Type: text/plain, Size: 1158 bytes --]
rem set this to the desired '/' location
rem other than the '/' vs. '\' difference, the following
rem two variable must be the same
set CYGROOT=C:\cygwin
set CYGROOT_FWDSLASH=C:/cygwin
rem set this to -t for text mounts
set BIN_OR_TEXT=-b
rem set this to -u for a non-system-global installation
set SYSTEM_OR_USER=-s
set CYGVER=1.3.10-1
mkdir %CYGROOT%
mkdir %CYGROOT%\usr
mkdir %CYGROOT%\bin
mkdir %CYGROOT%\lib
mkdir %CYGROOT%\etc
mkdir %CYGROOT%\etc\setup
mount %BIN_OR_TEXT% %SYSTEM_OR_USER% %CYGROOT_FWDSLASH% /
mount %BIN_OR_TEXT% %SYSTEM_OR_USER% -f %CYGROOT_FWDSLASH%/usr/bin /bin
mount %BIN_OR_TEXT% %SYSTEM_OR_USER% -f %CYGROOT_FWDSLASH%/usr/lib /lib
mount %BIN_OR_TEXT% %SYSTEM_OR_USER% --change-cygdrive-prefix /cygdrive
bunzip2 -dc cygwin-%CYGVER%.tar.bz2 | tar -C / -x -v -f -
bunzip2 -dc cygwin-%CYGVER%.tar.bz2 | tar tvf - | gawk '{print $6}' | gzip > %CYGROOT%\etc\setup\cygwin.lst.gz
copy bunzip2.exe %CYGROOT%\usr\bin
copy tar.exe %CYGROOT%\usr\bin
copy gunzip.exe %CYGROOT%\usr\bin
copy sh.exe %CYGROOT%\usr\bin
copy gawk.exe %CYGROOT%\usr\bin
copy manual_install.bash %CYGROOT%\usr\bin
copy manual_uninstall.bash %CYGROOT%\usr\bin
[-- Attachment #4: manual_install.bash --]
[-- Type: text/plain, Size: 1523 bytes --]
#!/bin/bash
shopt -sq extglob
# NOTE: this uses a different algorithm
# for parsing the package name/version/release
# than setup. However, it mostly works...
parseName() {
REM=${1%%*([^-])}
REL=${1##$REM}
NEXT=${REM%%-}
REM=${NEXT%%*([^-])}
VER=${NEXT##$REM}
PKG=${REM%%-}
}
do_postinstall() {
while read line ; do
case $line in
etc/postinstall/*)
`/$line`
mv /$line /$line.done
;;
*) ;;
esac
done < /etc/setup/${PKG}.lst
}
# we need /etc/setup/installed.db so that 'cygcheck -c' will work
if [ ! -f /etc/setup/installed.db ] ; then
echo "INSTALLED.DB 2" > /etc/setup/installed.db
fi
for fn in $* ; do
case $fn in
*-src.tar*) echo "I don't do -src packages" ;;
*.tar.bz2)
parseName ${fn%%.tar.bz2}
echo Installing $PKG Version $VER Release $REL
bunzip2 -dc $fn | tar -C / -x -v -f -
bunzip2 -dc $fn | tar -t -v -f - | gawk '{print $6}' |\
> /etc/setup/${PKG}.lst
do_postinstall
gzip /etc/setup/${PKG}.lst
echo "$PKG $fn 0" >> /etc/setup/installed.db
;;
*.tar.gz)
parseName ${fn%%.tar.gz}
echo Installing $PKG Version $VER Release $REL
gunzip -dc $fn | tar -C / -x -v -f -
gunzip -dc $fn | tar -t -v -f - | gawk '{print $6}' |\
> /etc/setup/${PKG}.lst.gz
do_postinstall
gzip /etc/setup/${PKG}.lst
echo "$PKG $fn 0" >> /etc/setup/installed.db
;;
*) echo bad filespec: $fn ;;
esac
done
echo "It's up to you to sort and eliminate duplicates in"
echo "/etc/setup/installed.db"
[-- Attachment #5: manual_uninstall.bash --]
[-- Type: text/plain, Size: 1323 bytes --]
#!/bin/bash
shopt -sq extglob
# NOTE: this uses a different algorithm
# for parsing the package name/version/release
# than setup. However, it mostly works...
parseName() {
REM=${1%%*([^-])}
REL=${1##$REM}
NEXT=${REM%%-}
REM=${NEXT%%*([^-])}
VER=${NEXT##$REM}
PKG=${REM%%-}
}
do_uninstall () {
DO_POSTSCRIPT=no
while read line ; do
case $line in
etc/postuninstall/*) DO_POSTSCRIPT=$line
;;
*/) # ignore directories
;;
*) rm -f /$line
;;
esac
done < /etc/setup/${PKG}.lst
if [ "$DO_POSTSCRIPT" -ne "no" ] ; then
`/$line`
mv /$line /$line.done
fi
}
for fn in $* ; do
case $fn in
*-src.tar*) echo "I don't do -src packages" ;;
*.tar.bz2)
parseName ${fn%%.tar.bz2}
echo Unnstalling $PKG Version $VER Release $REL
gunzip /etc/setup/${PKG}.lst.gz
do_uninstall
rm /etc/setup/${PKG}.lst
echo "$PKG $fn REMOVED" >> /etc/setup/installed.db
;;
*.tar.gz)
parseName ${fn%%.tar.gz}
echo Uninstalling $PKG Version $VER Release $REL
gunzip /etc/setup/${PKG}.lst.gz
do_uninstall
rm /etc/setup/${PKG}.lst
echo "$PKG $fn REMOVED" >> /etc/setup/installed.db
;;
*) echo bad filespec: $fn ;;
esac
done
echo "It's up to you to remove the appropriate entries from"
echo "/etc/setup/installed.db"
[-- Attachment #6: Type: text/plain, Size: 214 bytes --]
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
next prev parent reply other threads:[~2002-04-20 21:28 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-20 0:02 I am not going to let Cygwin " George Hester
2002-04-20 0:02 ` I am not going to let cygwin " Christopher Faylor
2002-04-20 0:21 ` George Hester
2002-04-20 9:36 ` Christopher Faylor
2002-04-20 10:04 ` David Means
2002-04-20 11:02 ` George Hester
2002-04-20 11:21 ` Larry Hall (RFK Partners, Inc)
2002-04-20 14:28 ` Charles Wilson [this message]
2002-04-20 14:38 ` Charles Wilson
2002-04-20 14:49 ` Charles Wilson
2002-04-21 0:54 ` George Hester
2002-04-20 15:30 ` Michael A Chase
2002-04-20 22:05 ` Compiling cygwin Dave Trollope
2002-04-20 15:40 ` I am not going to let cygwin BSOD my Windows 2000 Server Christopher Faylor
2002-04-20 16:46 ` Cliff Hones
2002-04-21 1:20 ` George Hester
2002-04-21 6:55 ` Cliff Hones
2002-04-21 11:32 ` Christopher Faylor
2002-04-21 14:25 ` Cliff Hones
2002-04-21 16:20 ` OT: Cygwin at Fault? (Was Re: I am not going to let cygwin BSOD my Windows 2000 Server) Paul G.
2002-04-21 20:18 ` I am not going to let cygwin BSOD my Windows 2000 Server George Hester
2002-04-20 9:36 ` I am not going to let Cygwin " Michael A Chase
2002-04-20 11:17 ` Charles Wilson
2002-04-21 20:29 ` George Hester
2002-04-22 14:28 ` Paul G.
2002-04-20 0:19 Robert Collins
2002-04-20 15:44 Robert Collins
2002-04-20 15:56 ` I am not going to let cygwin " Christopher Faylor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3CC1DE00.5080405@ece.gatech.edu \
--to=cwilson@ece.gatech.edu \
--cc=cygwin@cygwin.com \
--cc=hesterloli@hotmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).