This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
usersguide:installingsourcepackages [2014/12/28 15:44] yrmt make pkgsrc-create -> make pkgsrc |
usersguide:installingsourcepackages [2016/02/26 19:40] gtkelly [Compiling a Package] add note about looking for correct strip from install |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | |||
+ | ====== 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. | ||
+ | * pkgsrc tracks MINIX. For best results, update the base system to [[.:..:developersguide:trackingcurrent|tracking current MINIX]]. | ||
+ | |||
+ | We have currently the following manually maintained lists: | ||
+ | * **[[http://git.minix3.org/?p=pkgsrc-ng.git;a=blob;f=minix/limited_list.minimal;h=d904e2228405c6c05937b557580ad1d92ab3b96c;hb=3.3.0|minix/limited_list.minimal]]** Packages which are required for a release of MINIX. | ||
+ | * **[[http://git.minix3.org/?p=pkgsrc-ng.git;a=blob;f=minix/limited_list.patched;h=815ba1af1670b270032fd59b126793a675519e25;hb=3.3.0|minix/limited_list.patched]]** Packages which have been explicitly patched for MINIX. | ||
+ | |||
+ | |||
+ | ===== Requirements ===== | ||
+ | |||
+ | * 1 GB of hard disk space for the pkgsrc tree (as of August 29, 2014). 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 ==== | ||
+ | |||
+ | To retrieve the current official repository, type the following as root: | ||
+ | <code> | ||
+ | # pkgin install git-base digest | ||
+ | # cd /usr | ||
+ | # make pkgsrc | ||
+ | </code> | ||
+ | |||
+ | To build software, you will also need to install the development tools (pkgin_sets contains bmake, clang, etc): | ||
+ | <code> | ||
+ | # pkgin_sets | ||
+ | </code> | ||
+ | |||
+ | <!> 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: | ||
+ | |||
+ | <code> | ||
+ | # cd /usr | ||
+ | # make pkgsrc-update | ||
+ | </code> | ||
+ | |||
+ | 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//. | ||
+ | |||
+ | <code> | ||
+ | # cd /usr/pkgsrc/misc/figlet | ||
+ | # bmake install | ||
+ | </code> | ||
+ | |||
+ | This installs //figlet// in ///usr/pkg/bin//. | ||
+ | |||
+ | If you receive a message "install: exec of strip failed: /usr/bin/strip" test your environmental values: | ||
+ | |||
+ | <code> | ||
+ | # which strip | ||
+ | /usr/pkg/bin/strip | ||
+ | # export STRIP=/usr/pkg/bin/strip | ||
+ | </code> | ||
+ | |||
+ | The default for /usr/bin/install is to use /usr/bin/strip, unless an alternative is provided in the environmental value STRIP. | ||
+ | ===== Additional Documentation ===== | ||
+ | |||
+ | ==== General pkgsrc documentation ==== | ||
+ | See the official [[http://www.netbsd.org/docs/pkgsrc/|pkgsrc guide]] for complete details. | ||
+ | |||
+ | ==== Contributing ==== | ||
+ | |||
+ | If you wish to contribute fixes and patches to pkgsrc, please see [[:HowToContribute]]. | ||