wiki:howto/InstallingOlderPort

Version 9 (modified by ryandesign (Ryan Carsten Schmidt), 15 years ago) (diff)

Reword introduction to show how older versions can be much more easily reinstalled if they are already installed, just inactive

<- Back to the HOWTO section

How to install an older version of a port

  • Audience: Anyone needing an older version of a port than is currently available in the repository or installed on their machine
  • Requires: MacPorts >=1.7

Introduction

When you upgrade an installed port, MacPorts deactivates the older version but keeps it installed. For example:

$ port installed tcl 
The following ports are currently installed:
  tcl @8.4.16_0+darwin_9 (active)
$ sudo port upgrade tcl
[snip]
$ port installed tcl 
The following ports are currently installed:
  tcl @8.4.16_0+darwin_9
  tcl @8.5.0_0 (active)
$ 

If you later discover you would like to go back to the older version, you can deactivate the current version and reactivate the older one:

$ sudo port deactivate tcl
--->  Deactivating tcl
$ sudo port activate tcl @8.4.16_0+darwin_9
--->  Activating tcl @8.4.16_0+darwin_9
$

Once you're confident the new version works to your satisfaction, you can uninstall the old one to reclaim disk space:

$ sudo port uninstall tcl @8.4.16_0+darwin_9

If you want to go back to an older version after you've already uninstalled it, or to an older version than you've ever had installed, you can do so by manually downloading the older version of the portfile from the Subversion repository.

Installation

Step 1: Finding the right revision

To install an older version of the port, you'll have to manually download the files from the repository. Browse the repository to find the directory of the port you want, then use the Revision Log link in the upper right to find the older version that you want to install. For example, if you wanted to install the older 8.4.16 version of tcl, browse to the lang/tcl directory and look at its revision log. Here you'll note that tcl was updated to 8.5.0 in r32235, so you want the revision before that, which was r30810. Click the @30810 link in the revision log (not the [30810] link) to see the directory as it existed in that revision.

Step 2: Getting the Portfile

Click the Portfile to see it, then download it to disk using the Original Format link at the bottom of the page. The tcl port doesn't have a files directory, but if it did, you should download each file within it as well, and place them in a files directory on your disk in the same place where you downloaded the Portfile.

Step 3: Building the downloaded port

Finally, use the Terminal to cd to the directory where you downloaded the Portfile and type "sudo port install".

Alternative method to getting the port

Subversion can be used as well to fetch an older port, and is simpler for one that has a files/ subdirectory.

Step 1: Install Subversion

Install Subversion:

sudo port install subversion

This step is optional for Mac OS X 10.5 Leopard and later, which already include a Subversion client, but you may want to install it from MacPorts anyway because its version is likely newer than the one included with your operating system.

Step 2: Finding the right revision

Follow Step 1 earlier to find the right revision for the port you need, e.g. r30810.

Step 3: Checking out the port

Using the revision number, port category and port name, check out the port directory at that revision using the svn command:

svn co -r 30810 http://svn.macports.org/repository/macports/trunk/dports/lang/tcl

This creates a tcl directory in your current location, and populates that with everything the port needs to build. Replace "30810" and "lang/tcl" with the correct revision and category/portname for the port you're interested in.

<- Back to the HOWTO section