# Upgrading my PC ENGINE from 8.2 --> CURRENT



## hnk (Mar 12, 2014)

Hi!

I'm going to upgrade my FreeBSD router that I use at home from 8.2 to the current version.

```
$ uname -a
FreeBSD alix.xxx 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Sun May 29 23:25:21 CEST 2011     hank@xxx:/usr/obj/usr/src/sys/hnk-krnl  i386
```


```
$ df -h
Filesystem                    Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a                   520M    326M    152M    68%    /
devfs                         1.0K    1.0K      0B   100%    /dev
/dev/ad0s1e                   166M    406K    153M     0%    /tmp
/dev/ad0s1f                   2.2G    1.8G    298M    86%    /usr
/dev/ad0s1d                   669M    140M    476M    23%    /var
```

The thing is I don't have the ports tree installed (perhaps not an issue). I don't have much disk space, I only have a 4GB CF disk. I'm using pf as a firewall with some port forwarding, NAT etc. 

Any suggestions on what to think about when doing this? I know it's probably going to fail and break my system at some point, but hopefully that won't be an issue in the long run. Is there any way to use some sort of "network ports repository" instead of having to sync it to the local disk (where it won't fit).


----------



## SirDice (Mar 12, 2014)

Just follow the instructions for freebsd-update(8): http://www.freebsd.org/releases/8.4R/installation.html

Ports are indeed a different matter. Would it be possible to temporarily add a disk? So we can use it as a scratch disk to build ports on? Another option is to upgrade using packages. But that depends on what you have installed and if you changed any of the options.


----------



## hnk (Mar 12, 2014)

I'll have to look if there is a USB-port on the box (I dont remember), in that case I could mount an usb-disk to the filesystem and build ports there, smart!

list of installed ports:

```
pkg_Version -l
bash-4.1.9                          <   needs updating (index has 4.1.11)
bison-2.4.3,1                       =   up-to-date with index
bitstream-vera-1.10_4               <   needs updating (index has 1.10_5)
compositeproto-0.4.1                <   needs updating (index has 0.4.2)
cups-client-1.4.6                   <   needs updating (index has 1.5.0)
damageproto-1.2.0                   <   needs updating (index has 1.2.1)
db41-4.1.25_4                       =   up-to-date with index
dnsmasq-2.55,1                      <   needs updating (index has 2.59,1)
encodings-1.0.3,1                   <   needs updating (index has 1.0.4,1)
expat-2.0.1_1                       <   needs updating (index has 2.0.1_2)
fixesproto-4.1.1                    <   needs updating (index has 5.0)
font-bh-ttf-1.0.1                   <   needs updating (index has 1.0.3)
font-misc-ethiopic-1.0.1            <   needs updating (index has 1.0.3)
font-misc-meltho-1.0.1              <   needs updating (index has 1.0.3)
font-util-1.0.2                     <   needs updating (index has 1.2.0)
fontconfig-2.8.0,1                  <   needs updating (index has 2.8.0_1,1)
freetype2-2.4.4                     <   needs updating (index has 2.4.7)
gamin-0.1.10_4                      =   up-to-date with index
gettext-0.18.1.1                    =   up-to-date with index
gio-fam-backend-2.26.1              <   needs updating (index has 2.28.8)
glib-2.26.1_1                       <   needs updating (index has 2.28.8_3)
gmake-3.81_4                        <   needs updating (index has 3.82)
gnutls-2.8.6_2                      <   needs updating (index has 2.12.14)
hicolor-icon-theme-0.12             =   up-to-date with index
inputproto-2.0                      <   needs updating (index has 2.0.2)
iperf-2.0.5                         =   up-to-date with index
irssi-0.8.15_2                      <   needs updating (index has 0.8.15_3)
jasper-1.900.1_9                    <   needs updating (port has 1.900.1_10)
jbigkit-1.6                         =   up-to-date with port
jpeg-8_3                            =   up-to-date with port
kbproto-1.0.4                       <   needs updating (index has 1.0.5)
libICE-1.0.6,1                      <   needs updating (index has 1.0.7,1)
libSM-1.1.1_3,1                     <   needs updating (index has 1.2.0,1)
libX11-1.3.3_1,1                    <   needs updating (index has 1.4.4,1)
libXau-1.0.5                        <   needs updating (index has 1.0.6)
libXcomposite-0.4.1,1               <   needs updating (index has 0.4.3,1)
libXcursor-1.1.10                   <   needs updating (index has 1.1.12)
libXdamage-1.1.2                    <   needs updating (index has 1.1.3)
libXdmcp-1.0.3                      <   needs updating (index has 1.1.0)
libXext-1.1.1,1                     <   needs updating (index has 1.3.0_1,1)
libXfixes-4.0.4                     <   needs updating (index has 5.0)
libXft-2.1.14                       =   up-to-date with index
libXi-1.3,1                         <   needs updating (index has 1.4.3,1)
libXinerama-1.1,1                   <   needs updating (index has 1.1.1,1)
libXrandr-1.3.0                     <   needs updating (index has 1.3.2)
libXrender-0.9.5                    <   needs updating (index has 0.9.6)
libXt-1.0.7                         <   needs updating (index has 1.0.9)
libffi-3.0.9                        =   up-to-date with index
libfontenc-1.0.5                    <   needs updating (index has 1.1.0)
libgcrypt-1.4.6                     <   needs updating (index has 1.5.0)
libgpg-error-1.10                   =   up-to-date with index
libiconv-1.13.1_1                   =   up-to-date with index
libidn-1.16                         <   needs updating (index has 1.22)
libpdel-0.5.3_4                     =   up-to-date with index
libpthread-stubs-0.3_3              =   up-to-date with index
libxcb-1.7                          =   up-to-date with index
libxml2-2.7.8_1                     =   up-to-date with index
lsof-4.85A,5                        <   needs updating (index has 4.86A,6)
lua-5.1.4_5                         <   needs updating (index has 5.1.4_6)
lynx-2.8.7.1_1,1                    =   up-to-date with index
lzo2-2.04                           <   needs updating (index has 2.06)
m4-1.4.15,1                         <   needs updating (index has 1.4.16,1)
miniupnpd-1.4.20100921              <   needs updating (index has 1.5,1)
mkfontdir-1.0.5                     <   needs updating (index has 1.0.6)
mkfontscale-1.0.7                   <   needs updating (index has 1.0.9)
mpd-5.5                             =   up-to-date with port
nano-2.2.6                          =   up-to-date with port
ncftp-3.2.4                         =   up-to-date with port
net-snmp-5.5_4                      <   needs updating (index has 5.7.1_3)
nmap-5.50                           <   needs updating (index has 5.61.t4)
ntp-4.2.6p2                         <   needs updating (index has 4.2.6p4_2)
openvpn-2.1.4                       <   needs updating (index has 2.2.2)
pcre-8.12                           <   needs updating (index has 8.21_1)
perl-5.10.1_3                       <   needs updating (index has 5.10.1_6)
pixman-0.18.4                       <   needs updating (index has 0.24.0)
pkg-config-0.25_1                   =   up-to-date with index
png-1.4.5                           <   needs updating (port has 1.4.8)
portmaster-3.6.1                    <   needs updating (index has 3.11)
portupgrade-2.4.8_1,2               <   needs updating (index has 2.4.9.3,2)
pptpclient-1.7.2_5                  =   up-to-date with index
python26-2.6.6                      <   needs updating (index has 2.6.7_2)
randrproto-1.3.1                    <   needs updating (index has 1.3.2)
renderproto-0.11                    <   needs updating (index has 0.11.1)
ruby-1.8.7.302,1                    <   needs updating (index has 1.8.7.352_2,1)
ruby18-bdb-0.6.5_1                  <   needs updating (index has 0.6.6)
screen-4.0.3_10                     <   needs updating (index has 4.0.3_13)
tiff-4.0.0                          <   needs updating (index has 4.0.0_3)
wget-1.12_2                         <   needs updating (port has 1.13.4_1)
xcb-util-0.3.6_1                    <   needs updating (index has 0.3.6,1)
xextproto-7.1.1                     <   needs updating (index has 7.2.0)
xineramaproto-1.2                   <   needs updating (index has 1.2.1)
xorg-fonts-truetype-7.5             <   needs updating (index has 7.5.1)
xproto-7.0.16                       <   needs updating (index has 7.0.22)
znc-0.096                           <   needs updating (index has 0.202)
```


----------



## SirDice (Mar 12, 2014)

Are you sure you don't have a ports tree? It looks like it does have one, or at least an /usr/ports/INDEX-* file. It's slightly out of date though. You can upgrade just the ports tree using `portsnap fetch update`. The ports tree itself should only use a few KB of data.

What are you using the box for? I think we can tweak a few things as you seem to have a lot of unnecessary stuff installed. The less there's installed the easier the upgrade will be. If you can add an USB disk that would be great. We can use it to store the temporary build stuff.

If you can't add an extra drive one other option is to build packages on another, bigger and faster, machine. It doesn't have to be the same FreeBSD version, as long as it has a higher (or the same) version we can use it.


----------



## hnk (Mar 12, 2014)

I'm currently using it as a router and some small services here and there 

I have a little ports tree, canceled the extract when I saw the diskspace usage rising. I'm up for all suggestions.
Mouting an usb-drive to /usr/ports should work pretty effortless right?

EDIT: http://www.pcengines.ch/alix2d3.htm

Thats the box. If I'll have to build something, its probably gonna take a while


----------



## SirDice (Mar 12, 2014)

hnk said:
			
		

> I have a little ports tree, canceled the extract when I saw the diskspace usage rising. I'm up for all suggestions.
> Mouting an usb-drive to /usr/ports should work pretty effortless right?


Yep, remove whatever is still left in /usr/ports and mount the USB drive on it. Then extract a ports tree and work from there. 



> That's the box. If I'll have to build something, its probably gonna take a while


In that case it's probably better to do the building on another machine. Wasn't the other machine a 9.x amd64? If so you can use ports-mgmt/poudriere to build packages for it automatically. You can easily build packages for 8.x amd64/i386 and 9.x amd64/i386 that way. And if you switch to the new package system future upgrades are going to be a breeze.

There's an excellent howto for poudriere: viewtopic.php?f=39&t=38859


----------



## hnk (Mar 12, 2014)

Oh my, wanna come hold my hand?

Whan I have bult packages there, how to get them to the other box? I'll read the guide again though. I've probably missed a thing or two.


----------



## wblock@ (Mar 12, 2014)

Why not just NFS mount a directory on the other system, and use that for /usr/ports?


----------



## SirDice (Mar 13, 2014)

hnk said:
			
		

> When I have built packages there, how to get them to the other box?


Several ways, NFS is one, a simple web server another. The latter is the safest to work with.


----------

