Pkgsrc in PC-BSD®
Available to PC-BSD is its own PBI collection, FreeBSD ports, and FreeBSD packages. However, it is also possible to use the NetBSD pkgsrc system to build software. This is not (yet) a pre-configured feature, which means there are some special instructions to follow for this functionality to be enabled. This section will describe how to configure and use NetBSD pkgsrc from PC-BSD.
Setting things up
- Obtain the NetBSD pkgsrc tree by the following commands:
# cd /usr/
# env CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout pkgsrc
- FreeBSD stores its ports pkg database in /var/db/pkg/. It is therefore recommended that you use /usr/db/pkgsrc/ with the --pkgdbdir flag as below:
# cd /usr/pkgsrc/bootstrap/
# ./bootstrap --pkgdbdir /var/db/pkgsrc/
- The NetBSD pkg tools and FreeBSD pkg tools have identical names. It is recommended to change the name of the NetBSD set to match 'bmake' by prepending a 'b' to each, as follows:
# cd /usr/pkg/sbin/
# mv pkg_add bpkg_add
# mv pkg_create bpkg_create
# mv pkg_delete bpkg_delete
# mv pkg_info bpkg_info
If you do not intend to use the FreeBSD ports tools, they can be moved out of the way as follows:
# cd /usr/sbin/
# mv pkg_add pkg_add.orig
# mv pkg_create pkg_create.orig
# mv pkg_delete pkg_delete.orig
# mv pkg_info pkg_info.orig
An example mk.conf file will be placed in /etc/mk.conf.example file when you use the bootstrap script.
- Add the location of bmake (/usr/pkg/bin) and NetBSD pkg tools (/usr/pkg/sbin) to the user's search path variable.
Edit the file .cshrc in the user's home directory to modify the following line:
set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/pkg/sbin /usr/pkg/bin $HOME/bin)
- Obtain the vulnerabilities file:
# /usr/pkg/sbin/pkg_admin fetch-pkg-vulnerabilities
- The vulnerabilities of some ports (ie Firefox) may prevent them from being built.
Adjust /usr/pkg/etc/mk.conf to allow vulnerable programs to be built by adding the following line:
Using pkgsrc to build
Much like using the FreeBSD ports system, building with the NetBSD pkgsrc system is a rather simple matter of going to the location of the application, and using bmake, for example:
- # cd /usr/pkgsrc/www/firefox/
- # bmake install clean
Adding a NetBSD pkg
(needs to be tried/tested) it should be a simple matter of using pkg_add but on NetBSD it expects an address to be defined when doing this, and undefined when building from pkgsrc as above.