如何通过cygwin上的控制台安装以前的软件包版本? [英] How to install previous version of package by console on cygwin?

查看:307
本文介绍了如何通过cygwin上的控制台安装以前的软件包版本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要编写一个脚本来部署许多使用svn-1.6-17的cygwin应用程序。所有我的尝试都是通过安装或svn-1.7,或什么都没有完成。



我试图安装subversion,subversion-1.6,subversion-1.6-17。



如何通过cygwin上的控制台安装以前的版本的软件包?

解决方案

我刚刚通过这个,我添加这个来帮助下一个人。注意:这种技术可能适用于任何cygwin包。



我们有一个第三方产品直接与subversion服务器通信,但保持其目录为1.6格式。如果本地目录更新,工具将断开。但是我需要一种方法来在工具处于坏状态时进行 svn cleanup



这里我如何做这个:




  • Cygwin Time Machine 在fruitbat.org维护以前版本的档案。每个版本包含一个setup.bz2(压缩的setup.ini文件)和该版本包的相关归档集合。


  • 我搜索了 cygwin-announce 邮件列表更新subversion。


  • 接下来,我浏览了fruitbat.org 以前版本的索引从那个日期,直到我发现svn 1.6的最后一个版本,这是2011年7月1日的版本。 / p>


  • 我从fruitbat上的相应目录下载了setup.bz2(在这种情况下: ftp://www.fruitbat.org/pub/cygwin/circa/2011/07/01/062011/setup.bz2 )。我使用bunzip2解压缩setup.bz2到一个简单的文本文件。我找到了subversion的条目,并复制安装tarball的路径(release / subversion / subversion-1.6.17-1.tar.bz2)。您要查找的部分如下所示:

     
    @ subversion
    sdesc:版本控制系统
    ldesc :Subversion是一个版本控制系统,旨在成为一个引人注目的
    替换CVS在开源社区
    类别:Devel
    需要:libapr1 libaprutil1 libdb4.5 libexpat1 libgcc1 libintl8 libneon27 libsasl2 libserf0_1 libsqlite3_0 zlib0 cygwin
    版本:1.6.17-1
    安装:release / subversion / subversion-1.6.17-1.tar.bz2 775392 ed0c4a3cc494564c0539dffedcd5e8b6
    source:release / subversion / subversion- 1.6.17-1-src.tar.bz2 5551632 1b41eede9a14ea4cedcc462b06b1f7cb
    [上一页]
    版本:1.6.16-1
    安装:release / subversion / subversion-1.6.16-1.tar .bz2 1476151 ecbc29b1e1d9694bf8792e3871efa5f8
    source:release / subversion / subversion-1.6.16-1-src.tar.bz2 5557232 cb12425d2345a57341f16ad0ff559b84


  • 我们对此行感兴趣,给出了1.6 svn tarball的相对路径:

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


  • 我检索了 tarball for subversion ,并将其解压缩到临时目录(temp)。我将temp / usr / bin的内容移动到svn16目录。




现在,搜索路径并获得svn 1.6的功能如下:

  PATH =〜/ svn16:$ PATH svn up 

注意:看起来Cygwin Time Machine不再允许目录浏览。这意味着您需要从开始查找一个包。



更新了链接,因为我只是需要这样做。


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?

解决方案

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 fruitbat.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 fruitbat.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 fruitbat (in this case: ftp://www.fruitbat.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.

这篇关于如何通过cygwin上的控制台安装以前的软件包版本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆