[wiki:howto <- 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(active) $ sudo port upgrade tcl [snip] $ port installed tcl The following ports are currently installed: tcl @8.4.16_0 tcl @8.5.0_0 (active) $ }}} If you later discover you would like to go back to the older version, you can activate it, which will automatically deactivate the active version first: {{{ $ sudo port activate tcl @8.4.16_0 ---> Deactivating tcl @8.5.0_0 ---> Activating tcl @8.4.16_0 $ }}} 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 }}} 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. [browser:trunk/dports 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 [browser:trunk/dports/lang/tcl lang/tcl] directory and look at its [log:trunk/dports/lang/tcl 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 [browser:trunk/dports/lang/tcl@30810 @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. == An example == The following shows a complete example: {{{port info php5}}} shows it to be first in the '''lang''' category, so it would be located in lang/php5. After browsing [log:trunk/dports/lang/php5 php5's history], 5.3.0 was introduced in r53563 which means the previous revision, r53555, was the last update for 5.2.10. With this information, we can run {{{ svn co -r 53555 http://svn.macports.org/repository/macports/trunk/dports/lang/php5 cd php5 sudo port install +apache2+postgresql83 }}} After this, php5 version 5.2.10 should be installed. [wiki:howto <- Back to the HOWTO section]