#d2d 2.0 text using mtdocpage : webpage #title Tips for Using the Cygwin Environment #lang en #tableOfContents // ------------------------------------------------------- #h1 #title Using Cygwin // ------------------------------------------------------- // --------------------------------------------------------------------- #h2 #title Required Cygwin Packages #p If you are left to a "windows operating system" computer, then first of all you should install the "cygwin" tool kit. This ist most easily done by going to #link 0/www.cygwin.com#/ and clicking at the "install cygwin now" link at the right of the page, which is nothing but #link 0/www.cygwin.com/setup.exe#/ #p The installation program should be down-loaded to your local hard disk and started from there: Normally one forgets to install some needed packages, and then this installation program has to be re-run. Also for updates and de-installation you always will need this program #footnote #ldots or a newer version thereof! Regratably, there were phases when the developers requested to download a new version of this installer programm five times a week! But it is small, and currently more stable, so storing it currently does make sense! #/footnote #p If you are behind a fire-wall, you should try the option "use IE5-configuration" to find the way out of your domain into the free world. #p The basic cygwin #src!.dll! is always installed. It offers basic unix functionalities on the different windows platforms. #p Beside this, there are different packages you will need. Some of them are by default selected for installation. Most of them are not, and you have to "click" on them to get them installed (or removed !-).#nl The "View" button on the top right of the selection screen allows different presentations of the package lists. #nl There is also a search function which will find some product names (but it does not find e.g. names of libraries verbatim.) #p The following list of packages and their position reflect the situation as with February 2009. The attributes "group" and "selected by default?" may change in future releases. #p The packages or programs you need for using our "make" system are #ldots #table #border 1 #tr#td package/program #td group #td selected by default ? #tr#td #src!make! #td Devel #td no #tr#td #src!sed! #td Base #td yes #tr#td #src!coreutils/date! #td Base #td yes #/table #p For constructing the meta-tools themselves there are more packages needed additionally, which are also very useful in other contexts. These are #ldots #table #border 1 #tr#td package/program #td group #td selected by default ? #tr#td #src!tar! #td Base #td yes #tr#td #src!gunzip! #td Base #td yes #tr#td #src!cvs! (client) #td Devel #td no #tr#td #src!openssh! (ssh client) #td Net #td no #/table #p What we normally need for efficient working are additionally #ldots #table #border 1 #tr#td package/program #td group #td selected by default ? #tr#td #src!xemacs! #td Editors #td no #tr#td #src!xemacs-emacs-common! #td Editors #td no #tr#td #src!xemacs.mule-sumo! #td Editors #td no #tr#td #src!xemacs-sumo! #td Editors #td no #tr#td #src!curl! #td Web #td no #tr#td #src!lynx! #td Web #td no #tr#td #src!lftp! #td Net #td no #tr#td #src!ping! #td ??? #td yes #tr#td #src!diff! #td ??? #td yes #/table #p (In a former release we required "wget", but curl does support "post" of files, which is needed for the call to the xhtml-1.0 verification web service). #p Additionally, for having a better terminal window, and for future x11 applications: #table #border 1 #tr#td package/program #td group #td selected by default ? #tr#td #src!xorg-server! #td X11 #td no #tr#td #src!xinit! #td X11 #td no #tr#td #src!xrvt-unicode-x! #td shells (!?!) #td no #/table #p An alternative for CVS command line client is the "tortoise" GUI client, which is a plug-in for the file explorer. It looks nice, but we have not yet got it managed to run without manual password entry (i.e. with a ssh key installed on the server) // --------------------------------------------------------------------- #h2 #title Cygwin File Structure #p Since unix-like systems are not made to handle "drive letters", those are mapped by cygwin to file names. #p Cywin constructs a normal unix file system and maps the windows drives into it. On the other hand, the cygwin files themselves of course exist as a part of the windows file system! So we always have a #bold circularity#/bold, which can cause problems, e.g. when using #src!find! . #p If the installation dirctory for cygwin was put directly on the top level of drive "#src!c:!", the resulting file system can be depicted as follows: #source cygwin view: windows view: /bin c:\cygwin\bin /cygdrive c:\cygwin\cygdrive /c /c/cygwin c:\cygwin\cygdrive\c\cygwin /c/cygwin/bin c:\cygwin\cygdrive\c\cygwin\bin /cygdrive c:\cygwin\cygdrive\c\cygwin\cygdrive(<==CIRCLE!!) /cygdrive/c (<==CIRCLE!!) /etc/ c:\cygwin\etc or c:\cygwin\cygdrive\c\cygwin\etc(<==CIRCLE!!) /c/cygwin/home c:\cygwin\cygdrive\c\cygwin\home /c/cygwin/home/Nn c:\cygwin\cygdrive\c\cygwin\home\Nn (<==$HOME!!) /d c:\cygwin\cygdrive\d /d/Users /d/Users/Nn (<= a kind of "windows home", different to $HOME!) /d/Users/Nn/Documents /e /etc /lib /proc /tmp /usr /var #/source // --------------------------------------------------------------------- #h2 #title Bash Configuration #p On XP everything seems ok after cygwins's automatic installation. But on "windows vista" cygwin's program directories ("#src!/usr/bin!", "#src!/bin!", etc.) seem #bold not#/bold to be in cygwin's own search path! #p To intialize your bash you should use the #src!.profile! file in your home directory. The cygwin home directory is identical to the windows home directory, and stored in #src!$HOME!. On "vista" it is normally found in "c:\Users\". #p (The #src!.bashrc! file at this location SHOULD also do, but does not really work !-) #p We put a link there to a text file containing something like #ldots #source export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/bin export PS1="\w>" alias ll="ls -la" export LESS="-j4 -a -M -S -I" cd $HOME echo "bash startup successfully executed" #/source // --------------------------------------------------------------------- #h1 #title Additional Installs // --------------------------------------------------------------------- #h2 #title TeX #p For TeX use the separated "MikTex" distribution, as downloadable from #link miktex.org#/link #p Do not use 'TeTex' coming with cygwin. is old and rotten. Esp. the #src!TEXINPUTS! variable does not seem to be respected! // --------------------------------------------------------------------- #h2 #title Xemacs Setup File #p #bold Currently the only real important#/ explicit xemacs configuration file entry required under cygwin is #bold to explicitly enable utf-8 support#/bold. Most of our XML documents are (naturally) utf-8 encoded. #p This is achieved by #ldots #list #i installing the #src!xemacs-sumo! and #src!xemacs.mule-sumo! packages, as described above, #i and adding to the #bold initialization file#/bold #src!/.xemacs/init.el! the following code snippet: #/list #source (require 'un-define) (set-coding-priority-list '(utf-8)) (set-coding-category-system 'utf-8 'utf-8) #/source #p Some more useful configs are #ldots #source (global-set-key "\C-u" 'compile) (global-set-key "\C-z" 'next-error) (global-set-key "\M-q" 'dabbrev-expand) (setq kill-whole-line t) (paren-set-mode 'paren) (line-number-mode 1) (custom-set-variables '(visible-bell t) '(c-basic-offset 2) '(user-mail-address "" t) '(query-user-mail-address nil)) #/source #eof