Post by David StaceyPost by Jakub HorbacewiczI have to use Windows server for making backups of network devices. To
accomplish that I have to run Rancid, so I need to install Cygwin. Can
you help me with compiling Rancid through Cygwin? I cannot find any
tutorial or tips in google.
If you download and unpack the RANCID sources, there is a 'README' file
in there with some quick installation instructions. Simply follow the 12
steps listed in that document.
I don't know much about RANCID, but this might get you started: It
appears that RANCID is mostly written in script languages (perl,
expect), with a very small amount of C code that has to be compiled. So,
# Download and unpack the sources.
wget ftp://ftp.shrubbery.net/pub/rancid/rancid-2.3.8.tar.gz
tar -xf rancid-2.3.8.tar.gz
cd rancid-2.3.8
# Configure.
./configure --prefix=/usr
# This gets stuck checking for 'ping'.
# I had to open up Windows Task Manager and kill 'ping.exe'.
probably the fix for that is to set PING_PATH in configure - eg:
$ cat MYconfigure
#!/bin/sh
# rancid config
# default prefix is /usr/local/rancid -- make it ~/rancid
# default oldincludedir is /usr/include -- make it ~/rancid/old/include
# windoze only - cygwin ping does not return non-zerfo status for ping fail so
# use the windoze ping instead
./configure --prefix=${HOME}/rancid \
--oldincludedir=${HOME}/rancid/old/include \
PING_PATH=/cygdrive/c/windows/system32/ping.exe
And if you have any long device names ( > 12 characters?? I don't
remember) you might have to modify the code in clogin:
# match cisco config mode prompts too, such as router(config-if)#,
# but catalyst does not change in this fashion.
# -LR- regsub -all fails on cygwin + long device name. {1,21} works
# -LR- regsub -all {^(.{1,11}).*([#>])$} $prompt
{\1([^#>\r\n]+)?[#>](\\([^)\\r\\n]+\\))?} reprompt
regsub -all {^(.{1,21}).*([#>])$} $prompt
{\1([^#>\r\n]+)?[#>](\\([^)\\r\\n]+\\))?} reprompt
expect {
-re $reprompt {}
-re "\[\n\r]+" { exp_continue }
}
Regards,
Lee