-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathwin95.txt
More file actions
110 lines (77 loc) · 3.81 KB
/
win95.txt
File metadata and controls
110 lines (77 loc) · 3.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Compiling rsync for MS Windows 95
=================================
Caveat:
There are no doubt other ways to do this, but I have not tried them.
This will produce an rsync binary which runs under win95/NT which can _send_
data to a UNIX rsync host but not receive. This is suitable for my requirements
as I am backing up a bunch of win95 machines to a linux server, but it may
not be what _you_ require.
NOTE: I am now told (by patl@curl.com) that receiving as well as
sending works with the current cygwin32 toolkit.
Step 1. Get the Cygnus development kit
--------------------------------------
If you do not already know about this wonderful project undertaken by cygnus,
grab the latest copy of the gnu-win32 runtime system from
http://www.cygnus.com/misc/gnu-win32/
You will want the CDK-B19.EXE self-installing binary (be warned - it's 12M
in size) which contains gcc+binutils+DLLs required by the system. Read the
instructions about this and install it. You will then have something which
looks _very_ close to a UNIX box as far as any UNIX software ic concerned.
Also grab the updated version (B19.1) of the DLL as this fixes some problems
(it's pretty small at ~190k).
Take a bit of time to play with this stuff - have a look at the registry
entries that define mount points etc so you know where/how your windows
directories are mapped.
Step 2. Compile rsync
---------------------
Once the magic BASH$ prompt appears in your cygnus dos box, you can download
and compile rsync right out of the box. You might want to do this:
tar xvzf rsync-2.0.17.tar.gz (or whatever version...)
cd rsync-2.0.17
chmod +x configure (exec is not set automatically)
./configure
make
and you will have a working RSYNC.EXE
Before you can do a "make install" you must edit the Makefile so that
it knows about "rsync.exe" rather than "rsync".
Step 3 (optional) - compile and install SSH
-------------------------------------------
If you want to use ssh as the transport then you better grab a copy and compile
it - again, no surprises. It compiles ok under gnuwin32, and you can generate
keys etc in the normal way.
Problems
--------
Well, it _almost_ works seamlessly. Here are a couple of problems I have
encountered so far - I do not know why these symptoms occur, and they are
probably nothing to do with rsync, but if you follow this course then you
will probably run into these things also...
1. rsync will not _receive_ data onto a windows box. It seems to do everything
ok, but then hangs at the last step and no files actually appear. When
transferring via my modem, I can see data being received, but it never
appears in my directory.
NOTE: This now appears to be fixed.
2. rsync, ssh and other gnuwin32-compiled programs can be called directly from
a DOS prompt, but argument passing seems to be broken. This means that
starting SSH directly is difficult.
After a bit of experimenting I found a workaround, which is not pretty
but worked for me :-)
Lets say you want to call ssh from a normal DOS prompt. Set up a batch
file called "SSH.BAT" which sets up the cygnus environment and calls bash
with the argument "ssh.sh %1 %2 %3 %4 %5 %6 %7 %8 %9". You can copy the
cygnus.bat file and use it as a template if you like. here is my ssh.bat:
@ECHO OFF
SET TERM=ansi
SET MAKE_MODE=unix
SET CYGFS=e:/apps/cygnus
SET GCC_EXEC_PREFIX=/lib\gcc-lib\
SET TCL_LIBRARY=%CYGROOT%\share\tcl8.0\
SET HOME=/home/awesley
SET GDBTK_LIBRARY=%CYGFS%/share/gdbtcl
bash /scripts/ssh.sh %1 %2 %3 %4 %5 %6 %7 %8 %9
Create a shell script called ssh.sh containing:
/usr/local/bin/ssh $*
which is then run by bash and calls the ssh binary (wherever you have
installed it).
I suspect that there is a better way, but I have not yet had time to
look for it.
Cheers, Anthony Wesley