Skip to content

news

1 January 2024 - pkgsrc-2023Q4 released

The pkgsrc developers are proud to announce the pkgsrc-2023Q4 branch, the 81st pkgsrc release.

See the release announcement for more information.

28 September 2023 - pkgsrc-2023Q3 released

The pkgsrc developers are proud to announce the pkgsrc-2023Q3 branch, the 80th pkgsrc release.

See the release announcement for more information.

28 June 2023 - pkgsrc-2023Q2 released

The pkgsrc developers are proud to announce the pkgsrc-2023Q2 branch, the 79th pkgsrc release.

See the release announcement for more information.

28 March 2023 - pkgsrc-2023Q1 released

The pkgsrc developers are proud to announce the pkgsrc-2023Q1 branch, the 78th pkgsrc release.

See the release announcement for more information.

29 December 2022 - pkgsrc-2022Q4 released

The pkgsrc developers are proud to announce the pkgsrc-2022Q4 branch, the 77th pkgsrc release.

See the release announcement for more information.

pkgsrc is a framework for managing third-party software on UNIX-like systems, currently containing over 26,000 packages. It is the default package manager of NetBSD and SmartOS, and can be used to enable freely available software to be built easily on a large number of other UNIX-like platforms. The binary packages that are produced by pkgsrc can be used without having to compile anything from source. It can be easily used to complement the software on an existing system.

pkgsrc is very versatile and configurable, supporting building packages for an arbitrary installation prefix, allowing multiple branches to coexist on one machine, a build options framework, and a compiler transformation framework, among other advanced features. Unprivileged use and installation is also supported.

NetBSD already contains the necessary tools for using pkgsrc; on other platforms you need to bootstrap pkgsrc to get the package management tools installed.

Table of contents:

quickstart

install binary packages (NetBSD)

Set the PKG_PATH and install pkgin if it isn't installed already:

# PKG_PATH="http://cdn.NetBSD.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r|cut -f '1 2' -d.)/All/"
# export PKG_PATH
# pkg_add pkgin

Note that the "release" field of the URL should be something like 9.2, not 9.2_STABLE.

pkgin is the primary high level tool for managing pkgsrc binary packages, designed to be familiar to users of other package managers such as apt:

# pkgin search nginx
nginx-1.19.6         Lightweight HTTP server and mail proxy server
nginx-1.18.0nb8      Lightweight HTTP server and mail proxy server
# pkgin install zsh nginx-1.19.6 vim
# pkgin upgrade

A browsable web index of NetBSD packages is available.

install binary packages (illumos, macOS, Enterprise Linux)

Binary package sets for SmartOS/illumos, macOS, NetBSD current, and Enterprise Linux are available from MNX.

install source packages

get pkgsrc

You can checkout pkgsrc HEAD with CVS:

$ CVS_RSH=ssh cvs -danoncvs@anoncvs.NetBSD.org:/cvsroot checkout -P pkgsrc

Or pkgsrc's stable branch:

$ CVS_RSH=ssh cvs -danoncvs@anoncvs.NetBSD.org:/cvsroot checkout -r pkgsrc-2023Q4 -P pkgsrc

Or download pkgsrc from HTTP:

bootstrap

On operating systems other than NetBSD, and on NetBSD with non-default settings (e.g. different installation PREFIX), pkgsrc first needs to bootstrap (build and install its tools).

$ cd pkgsrc/bootstrap
$ ./bootstrap --prefix /opt/pkg-2023Q4 --prefer-pkgsrc yes --make-jobs 4

build a package

Dependencies will be automatically downloaded, built, and installed.

$ cd pkgsrc/devel/memcached
$ bmake install clean

On a non-bootstrapped NetBSD installation, bmake is simply make.

Built packages can then be managed with exactly the same tools as binary packages (pkgin, pkg_info, etc).

Various tools exist to automate the building and installation of pkgsrc packages, including pbulk, pkg_chk, and pkg_rolling-replace.

start packaging yourself

Take a look at pkgsrc-wip if you want to contribute by packaging software yourself!

community and support

We use the NetBSD mailing lists pkgsrc-users and tech-pkg. If you don't want to subscribe, you can browse via web or NNTP, and post without a subscription. There is also a #pkgsrc IRC channel on the Libera IRC chat network.

If you want to report a bug, use the NetBSD bug reporting tool and select the pkg category.

There is a pkgsrc account on Twitter.

We used to have pkgsrcCon in the real world, but then the world ended.

security

For getting the latest package vulnerabilities database and checking your installed packages against it, use

# pkg_admin fetch-pkg-vulnerabilities
$ pkg_admin audit

The vulnerabilities database and package EOL database are both signed with the pkgsrc-security GPG key.

A hardening guide is also available.

resolving problems

For issues with the change in default PKG_DBDIR, which can manifest in hard-to-understand ways, see the PKGDB change page.

platforms pkgsrc runs on

More details about how pkgsrc works on various platforms are in bootstrap/README in the pkgsrc sources, and per-platform notes are in bootstrap/README.${platform}. pkgsrc aims to be portable and works better on platforms that people actively use it on.

primary focus

These platforms have many active users and active bulk builds.

other supported platforms

Code exists in pkgsrc to support 20+ Unix-like operating systems and 15+ CPU architectures.

Operating systems that receive occasional testing include FreeBSD, OpenBSD, DragonFlyBSD, MINIX 3, SCO OpenServer/UnixWare, HP-UX. See the various platform-specific README files in bootstrap/ for more information.

Please report your experiences trying pkgsrc on unusual platforms to the pkgsrc-users mailing list, complete with bootstrapping and build logs. Try to provide as much detail as possible - particularly for proprietary platforms, developers may not have access to a test environment.

information for developers

other links