Home > Blog > Using MacPorts behind a firewall

Using MacPorts behind a firewall

I failed to persuade MySQLdb to build on a Mac OS X Server 10.5.8 install using the system Python + MySQL installation. So I turned to MacPorts where I know I can get Django + all the bits working without much hassle (but with much patience).

The next problem was that MacPorts couldn’t update because rsync was blocked by the corporate access policy. Fortunately plain HTTP is permitted outbound. Here’s how to use a local ports tree.

Install MacPorts using the disk image for 10.5.

curl -O http://distfiles.macports.org/MacPorts/MacPorts-1.8.2-10.5-Leopard.dmg
hdiutil attach MacPorts-1.8.2-10.5-Leopard.dmg
sudo installer -pkg /Volumes/MacPorts-1.8.2/MacPorts-1.8.2.pkg -target /
hdiutil detach /Volumes/MacPorts-1.8.2

If the MacPorts install directories are not in your $PATH environment, you can add them to your .profile. This change will not take effect until you start a new terminal session.

cat >> ~/.profile <<EOF
PATH=/opt/local/bin:/opt/local/sbin:${PATH}
MANPATH=/opt/local/share/man:${MANPATH}
EOF

After you have installed MacPorts, create a directory for the ports tree and check it out using Subversion.

sudo mkdir -p /opt/local/var/macports/sources/svn.macports.org/trunk/dports
cd /opt/local/var/macports/sources/svn.macports.org/trunk/dports
sudo svn co http://svn.macports.org/repository/macports/trunk/dports/ .

N.B. In the last line beginning svn co ... the trailing directory separator is significant!

Now tell MacPorts to use the local checkout rather than rsync. Edit /opt/local/etc/macports/sources.conf and add a new line to the end with the path to the ports tree, then comment out the previous line that uses rsync. Here are the last lines from my configuration:

#rsync://rsync.macports.org/release/ports/ [default]
file:///opt/local/var/macports/sources/svn.macports.org/trunk/dports/ [default]

Finally you must create an index for the tree (otherwise you will see messages saying “Warning: No index(es) found!”).

cd /opt/local/var/macports/sources/svn.macports.org/trunk/dports
sudo portindex

Now go do great things.

Tags: , ,
  1. dalan
    October 3rd, 2011 at 19:57 | #1

    Hey david,

    I’m not familiar with svn, after checking it out how can I make sure that my local repo is updated?

    Thanks.

  2. October 5th, 2011 at 18:07 | #2

    @dalan

    You would do something like…

    cd /opt/local/var/macports/sources/svn.macports.org/trunk/dports
    sudo svn update
    

    Have a look at the svn update reference in the subversion book for more information.

  3. October 5th, 2011 at 18:09 | #3

    @dalan Also useful is

    svn status --show-updates --verbose
    

    if you want to see what needs updating but not actually do the updating yet.

  4. michael
    January 4th, 2012 at 18:08 | #4

    Can I ask what the easiest way is to update macports, and anything installed when this method has been used, I seem to be a little stumped at the moment.

  1. September 29th, 2010 at 23:17 | #1