====== Installing Source Packages ======
===== pkgsrc =====
[[http://www.netbsd.org/docs/software/packages.html|pkgsrc]] is used to build third-party software. This page describes how to use pkgsrc.
Before diving in, you should be aware of a few things:
* precompiled binary packages are available for many applications. This can save a lot of time and headaches. See [[.:installingbinarypackages|Installing Binary Packages]] for details.
* a list of packages that are expected to build under Minix '[[.:..:developersguide:trackingcurrent|current]]' is available here: //[[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]]// Other packages either haven't been port to Minix or haven't been tested on Minix yet.
* pkgsrc-current tracks minix-current. For best results, update the base system to [[.:..:developersguide:trackingcurrent|current]].
===== Requirements =====
* 1 GB of hard disk space for the pkgsrc tree (as of April 8, 2013). Additional space is required to build software.
* 512MB of RAM or more. Some applications such as gcc need more than 512MB of RAM to build.
==== Setting up pkgsrc on MINIX ====
Git is required to download the pkgsrc tree and GCC is required to compile software.
# pkgin install scmgit-base binutils gcc44
To set up the pkgsrc tree:
# cd /usr
# make pkgsrc-create
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 pull//. 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 //bmake 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.