====== Installing Source Packages ======
===== pkgsrc =====
As of release 3.1.8, [[http://www.netbsd.org/docs/software/packages.html|pkgsrc]] is used to build third party software on Minix3. This page describes how to use pkgsrc.
Before diving in, you should be aware that the Minix 3 project provides precompiled binary packages for many third party applications. This can save a lot of time. See [[.:installingbinarypackages|Installing Binary Packages]] for details.
It should also be noted that the ''/usr/pkgsrc'' hierarchy created below contains a super-set of the packages that can be built, installed, and run on a Minix3 system. In other words, just because a package is present in the ''/usr/pkgsrc'' hierarchy, it does not mean that the package will compile and be usable on a Minix3 system. The file [[http://git.minix3.org/?p=pkgsrc.git;a=blob;f=minix/limited_list.pbulk;hb=refs/heads/minix-master|/usr/pkgsrc/minix/limited_list.pbulk]] contains a list of packages that are known to at least build under Minix3 '[[.:..:developersguide:trackingcurrent|current]]'. The ''limited_list.pbulk'' file is a good starting point for determining whether a package you are interested in is likely to be usable on a Minix3 system.
==== Setting up pkgsrc on Minix ====
git is required to download the pkgsrc tree and gcc is required to compile software
# pkgin in scmgit-base gcc44
To set up the pkgsrc tree:
# cd /usr
# make pkgsrc-create
Note: this takes slightly more than 1GB of hard disk space (as of November 29, 2011)
This is all that is needed to prepare the system to build software with pkgsrc. The Minix installation comes pre-bootstrapped. Do NOT run the bootstrap script that comes with pkgsrc.
==== Updating the pkgsrc Tree ====
To update the pkgsrc tree in the future:
# cd /usr
# make pkgsrc-update
This will download any changes (new versions of packages, patches, etc).
It is important to update your copy of the pkgsrc tree using this method, instead of ''git update'', because this update method may perform additional steps such as updating your mk.conf file.
==== Compiling a Package ====
All pkgsrc operations should be done with bmake.
To build a package, misc/figlet in this example, you need to cd to that directory and do a make install
# cd /usr/pkgsrc/misc/figlet
# bmake install
This installs figlet in /usr/pkg/bin
===== Additional Documentation =====
See the official [[http://www.netbsd.org/docs/pkgsrc/|pkgsrc guide]] for complete details.