The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Thursday, February 23, 2006

Don't talk to me about package managers—they're all bad!

So today I get to play around with FreeBSD's ports system, aka a “package manager.”

PORTS(7)           FreeBSD Miscellaneous Information Manual           PORTS(7)
NAME

ports—contributed applications

DESCRIPTION

The FreeBSD Ports Collection offers a simple way for users and administrators to install applications. Each port contains any patches necessary to make the original application source code compile and run on BSD. Compiling an application is as simple as typing make build in the port directory! The Makefile automatically fetches the application source code, either from a local disk or via FTP, unpacks it on your system, applies the patches, and compiles it. If all goes well, simply type make install to install the application.

Okay. Seems simple enough. Do a search (not much better than a simple grep but it's something) and find the package I need to install.

SNMP# cd /usr/ports/databases/mysql41-client/
SNMP# make build
===>  Vulnerability check disabled, database not found
=> mysql-4.1.13.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.easynet.be/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.easynet.be/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.mirrors.cybercity.dk/Downloads/MySQL-4.1/.
fetch: http://mysql.mirrors.cybercity.dk/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://netmirror.org/mirror/mysql.com/Downloads/MySQL-4.1/.
fetch: http://netmirror.org/mirror/mysql.com/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://netmirror.org/mysql.com/Downloads/MySQL-4.1/.
fetch: ftp://netmirror.org/mysql.com/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mirrors.ntua.gr/MySQL/Downloads/MySQL-4.1/.
fetch: http://mirrors.ntua.gr/MySQL/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.sote.hu/Downloads/MySQL-4.1/.
fetch: http://mysql.sote.hu/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.rhnet.is/pub/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.rhnet.is/pub/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://mirror.widexs.nl/pub/mysql/Downloads/MySQL-4.1/.
^Cfetch: transfer interrupted

SNMP#  cd /usr/ports/databases/mysql50-client/
SNMP# make build
===>  Vulnerability check disabled, database not found
=> mysql-5.0.9-beta.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.easynet.be/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.easynet.be/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.mirrors.cybercity.dk/Downloads/MySQL-5.0/.
fetch: http://mysql.mirrors.cybercity.dk/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://netmirror.org/mirror/mysql.com/Downloads/MySQL-5.0/.
fetch: http://netmirror.org/mirror/mysql.com/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://netmirror.org/mysql.com/Downloads/MySQL-5.0/.
fetch: ftp://netmirror.org/mysql.com/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mirrors.ntua.gr/MySQL/Downloads/MySQL-5.0/.
fetch: http://mirrors.ntua.gr/MySQL/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.sote.hu/Downloads/MySQL-5.0/.
fetch: http://mysql.sote.hu/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.rhnet.is/pub/mysql/Downloads/MySQL-5.0/.
^Cfetch: transfer interrupted

SNMP# 

Okay, so how exactly is this better than getting the tarballs?

Obligatory Picture

[The future's so bright, I gotta wear shades]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: https://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

https://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2024 by Sean Conner. All Rights Reserved.