Installing wine under FreeBSD 8 amd64

To get wine (which is a 32 bit application) running on a 64 bit FreeBSD installation you have 2 options:

  1. Get the wine-fbsd64 packages from mediafire.
  2. Build it manually.

In my case the second option was necessary because my system was running pkgng and there are no pkgng packages for FreeBSD 8 available. Before you start be sure to have enough disk space for the /compat/i386 directory. You’ll need around 2 gb.

At first we create the necessary directory structure and build an i386 system into the compat directory. Then we mount our ports directory, copy our system source directory, chroot into the compat directory, start ldconfig and mount our /dev directory.

# mkdir -p /compat/i386
# cd /usr/src
# make buildworld TARGET=i386 DESTDIR=/compat/i386
# make distrib-dirs TARGET=i386 DESTDIR=/compat/i386
# make distribution TARGET=i386 DESTDIR=/compat/i386
# make installworld TARGET=i386 DESTDIR=/compat/i386
# cp /etc/resolv.conf /compat/i386/etc
# mkdir -p /compat/i386/usr/ports
# mount -t nullfs /usr/ports /compat/i386/usr/ports
# cd /compat/i386/usr/src
# cp -a /usr/src/ .
# chroot /compat/i386
# mount -t devfs devfs /dev
# /etc/rc.d/ldconfig start

Now we need to set our environment variables and build the wine port.

# setenv MACHINE i386
# setenv UNAME_p i386
# setenv UNAME_m i386
# cd /usr/ports/emulators/wine
# make install clean

To enable 3D on nvidia cards you’ll have to build the corresponding nvidia driver into the compat directory.

# cd /usr/ports/x11/nvidia-driver
# make install clean

Now leave the chroot environment.

# exit

Last but not least you need some aliases for your shell:

alias winecfg="LD_32_LIBRARY_PATH=/compat/i386/usr/local/lib PATH=/compat/i386/usr/local/bin:$PATH /compat/i386/usr/local/bin/winecfg"
alias wine32="LD_32_LIBRARY_PATH=/compat/i386/usr/local/lib PATH=/compat/i386/usr/local/bin:$PATH /compat/i386/usr/local/bin/wine"

That’s all folks! :-)

Jens Grassel Written by:

Solving problems and burning chrome for fun and profit.