Ok, so it turns out that /var was out of space!
I tried running:
/etc/rc.conf_mount_rw
pkg_add http://files.pfsense.org/packages/8/All/perl-5.14.2_2.tbz
… and it gives me:
Fetching http://files.pfsense.org/packages/8/All/perl-5.14.2_2.tbz...
/var: write failed, filesystem is full
lib/perl5/5.14.2/unicore/lib/NChar/N.pl: Write failed
lib/perl5/5.14.2/unicore/lib/NChar/Y.pl: Seek failed
lib/perl5/5.14.2/unicore/lib/NFCQC/Y.pl: Seek failed
lib/perl5/5.14.2/unicore/lib/NFDQC/N.pl: Seek failed
lib/perl5/5.14.2/unicore/lib/NFDQC/Y.pl: Seek failed
lib/perl5/5.14.2/unicore/lib/NFKCQC/M.pl: Seek failed
lib/perl5/5.14.2/unicore/lib/NFKCQC/N.pl: Seek failed
lib/perl5/5.14.2/unicore/lib/NFKCQC/Y.pl: Seek failed
...
lib/perl5/5.14.2/warnings.pm: Seek failed
lib/perl5/5.14.2/warnings/register.pm: Seek failed
tar: (Empty error message)
tar: Error exit delayed from previous errors.
Done.
pkg_add: package 'perl-5.14.2_2' or its older version already installed
var doesn't "seem" to be full, but pkg_add must be needing to write something larger than the available capacity… ???
df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ufs/pfsense0 443M 232M 175M 57% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/md0 38M 274K 35M 1% /tmp
/dev/md1 58M 14M 40M 26% /var
/dev/ufs/cf 49M 166K 45M 0% /cf
devfs 1.0K 1.0K 0B 100% /var/dhcpd/dev
I then found this other thread, where someone was having the same problem (var being full) when installing Python:
http://forum.pfsense.org/index.php/topic,44953.msg234429.html
So I tried their solution:
[2.0.3-RELEASE][root@bonfire.localdomain]/var/log(17): setenv PKG_TMPDIR /root/
[2.0.3-RELEASE][root@bonfire.localdomain]/var/log(18): pkg_add http://files.pfsense.org/packages/8/All/perl-5.14.2_2.tbz
Fetching http://files.pfsense.org/packages/8/All/perl-5.14.2_2.tbz... Done.
pkg_add: package 'perl-5.14.2_2' or its older version already installed
Perl is already installed, eh? ???
Let's try Squid…
[2.0.3-RELEASE][root@bonfire.localdomain]/var/log(25): pkg_add http://files.pfsense.org/packages/8/All/squid-2.7.9_3.tbz
Fetching http://files.pfsense.org/packages/8/All/squid-2.7.9_3.tbz... Done.
pkg_add: package 'squid-2.7.9_3' or its older version already installed
Hmm! Both already installed!
So then I went back to the web interface, and selected "reinstall GUI components" (or something to that effect) for Squid…
Removing squid components...
Tabs items... done.
Menu items... done.
Services... done.
Loading package instructions...
Include file squid.inc could not be found for inclusion.
Deinstall commands...
Not executing custom deinstall hook because an include is missing.
Removing package instructions...done.
Auxiliary files... done.
Package XML... done.
Configuration... done.
Beginning package installation for squid...
Downloading package configuration file... done.
Saving updated package information... done.
Downloading squid and its dependencies...
Checking for package installation...
Downloading http://files.pfsense.org/packages/8/All/libwww-5.4.0_4.tbz ... (extracting)
Loading package configuration... done.
Configuring package components...
Additional files... done.
Loading package instructions...
Custom commands...
Executing custom_php_install_command()...done.
Executing custom_php_resync_config_command()...done.
Custom commands...
Executing custom_php_install_command()...done.
Executing custom_php_resync_config_command()...done.
Menu items... done.
Integrated Tab items... done.
Services... done.
Writing configuration... done.
Package reinstalled.
… and the next time I refreshed the web interface, it now shows "Proxy Server" under services!!! Hooray! :D
The system log seems to confirm this too:
Apr 27 22:45:24 php: /pkg_mgr_install.php: Beginning package installation for squid.
Apr 27 22:47:43 check_reload_status: Syncing firewall
Apr 27 22:47:43 php: /pkg_mgr_install.php: Stopping any running proxy monitors
Apr 27 22:47:45 php: /pkg_mgr_install.php: Starting Squid
Apr 27 22:47:45 php: /pkg_mgr_install.php: Starting a proxy monitor script
Apr 27 22:47:45 squid[54449]: Bungled (null) line 182: http_reply_access allow all
Apr 27 22:47:45 check_reload_status: Reloading filter
Apr 27 22:47:47 php: /pkg_mgr_install.php: Starting Squid
Apr 27 22:47:47 squid[57532]: Squid Parent: child process 57856 started
Apr 27 22:47:48 php: /pkg_mgr_install.php: Reloading Squid for configuration sync
I'm still not sure where this leaves things in terms of the problem. I even tried 2.0.3 in a VirtualBox VM and got the same problem - I just couldn't install Squid on the nanobsd version of pfSense. It seems to be related to the size of /var… is this something that is "fixable", or should the potential problem (or the resulting failure) be detectable by the package installer? Should I file a bug report for it?
Thanks again to everyone for the help! 8)