Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install previous version of package by console on cygwin?

Tags:

svn

cygwin

I need to write a script that deploy many cygwin applications with svn-1.6-17. All my attempts were finished by installing or svn-1.7, or nothing.

I tried to install subversion, subversion-1.6, subversion-1.6-17. It all was useless.

How I can install previous version of package by console on cygwin?

like image 202
Jimilian Avatar asked Mar 14 '12 10:03

Jimilian


2 Answers

I just went through this and I'm adding this to help the next person. Note: this same technique will probably work for any Cygwin package.

We have a third party product that talks directly to the subversion server, but keeps its directories in the 1.6 format. If the local directories are updated, the tool breaks. But I needed a way to do a svn cleanup for times when the tool got in a bad state.

Here's how I went about doing this:

  • Cygwin Time Machine at crouchingtigerhiddenfruitbat.org maintains archives of previous releases. Each release consists of a setup.bz2 (the compressed setup.ini file) and a collection of related archives for the packages of that release.

  • I searched the cygwin-announce mailinglist for updates of subversion. The last update for 1.6 was June 10, 2011.

  • Next, I walked through the crouchingtigerhiddenfruitbat.org indexes of previous releases from that date until I found the last release of svn 1.6, It was the July 1, 2011 release.

  • I downloaded setup.bz2 from the corresponding directory on crouchingtigerhiddenfruitbat (in this case: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2011/07/01/062011/setup.bz2). I used bunzip2 to unpack setup.bz2 to a simple text file. I found the entry for subversion and copied the path of the install tarball (release/subversion/subversion-1.6.17-1.tar.bz2). The section you're looking for looks like this:

    @ subversion
    sdesc: "A version control system"
    ldesc: "Subversion is a version control system that aims to be a compelling
    replacement for CVS in the open source community"
    category: Devel
    requires: libapr1 libaprutil1 libdb4.5 libexpat1 libgcc1 libintl8 libneon27 libsasl2 libserf0_1 libsqlite3_0 zlib0 cygwin
    version: 1.6.17-1
    install: release/subversion/subversion-1.6.17-1.tar.bz2 775392 ed0c4a3cc494564c0539dffedcd5e8b6
    source: release/subversion/subversion-1.6.17-1-src.tar.bz2 5551632 1b41eede9a14ea4cedcc462b06b1f7cb
    [prev]
    version: 1.6.16-1
    install: release/subversion/subversion-1.6.16-1.tar.bz2 1476151 ecbc29b1e1d9694bf8792e3871efa5f8
    source: release/subversion/subversion-1.6.16-1-src.tar.bz2 5557232 cb12425d2345a57341f16ad0ff559b84
    

  • We're interested in this line that gives the relative path to the 1.6 svn tarball:

    install: release/subversion/subversion-1.6.17-1.tar.bz2 775392
    

  • I retrieved the tarball for subversion and extracted it to a temporary directory (temp). I moved the contents of temp/usr/bin to a svn16 directory.

Now, I can prepend that directory to the search path and get the functionality of svn 1.6 like so:

PATH=~/svn16:$PATH svn up

Note: It looks like the Cygwin Time Machine no longer allows directory browsing. This means you'll need to start from the root an dig a bit to find a package.

Updated with links as I just needed to do this again.

Note 2: Updated links to crouchingtigerhiddenfruitbat

like image 177
Devon_C_Miller Avatar answered Oct 29 '22 10:10

Devon_C_Miller


1) Download a subversion package from a download site offered by the cygwin installer. I personally took it from here (64 bit version) and saved it into an empty directory.

EDIT: If you want the 32-bit version, just remov the "_64" from the URL.

Choose A Download site

2) Start the cygwin installer and choose Install from Local Directory when it asks to choose from a download source.

3) Locate everything related to subversion. Uninstall the unwanted version and install the old one. The newer version is already uninstalled on the image.

enter image description here

like image 38
Luc M Avatar answered Oct 29 '22 08:10

Luc M