pkgsrc binary packages for illumos
pkgsrc is a cross-platform packaging framework, designed to build a large number of third-party open source software packages on many different operating systems. It is the primary package manager on Joyent’s SmartOS distribution, and the packages are built portably so that they can be used unmodified on other illumos distributions as well.
Included in the binary package set is the
pkgin package manager which is designed to look and function very similar to
apt-get, making it very easy to add, upgrade, and remove packages.
Currently there are over 11,000 up-to-date binary packages available, built for individual 32-bit and 64-bit sets, as well as a combined multiarch set.
pkgsrc is released every quarter, and the current release is 2013Q3.
: Install either the 32-bit bootstrap.. $ curl -s http://pkgsrc.joyent.com/packages/SmartOS/bootstrap/bootstrap-2013Q3-i386.tar.gz \ | gzcat | (cd /; sudo tar -xpf -) : ..or the 64-bit bootstrap.. $ curl -s http://pkgsrc.joyent.com/packages/SmartOS/bootstrap/bootstrap-2013Q3-x86_64.tar.gz \ | gzcat | (cd /; sudo tar -xpf -) : ..or the multiarch bootstrap. $ curl -s http://pkgsrc.joyent.com/packages/SmartOS/bootstrap/bootstrap-2013Q3-multiarch.tar.gz \ | gzcat | (cd /; sudo tar -xpf -) : Packages are kept under /opt/local, add to $PATH $ PATH=/opt/local/sbin:/opt/local/bin:$PATH : Refresh the package repository to get the very latest packages $ sudo pkgin -y update : Find out what packages (and how many) are available $ pkgin avail | wc -l : Search for a particular package, for example 'tmux' $ pkgin search tmux : Install a package $ sudo pkgin -y install tmux : Upgrade all packages $ sudo pkgin -y full-upgrade
Building From Source
pkgsrc is based on the FreeBSD ports system, so if you are used to that (or other similar forks such as OpenBSD ports) and want to build packages from source the procedure is very similar:
: Install the git package and fetch pkgsrc from the converted cvs->git repo $ sudo pkgin -y install git $ git clone git://github.com/joyent/pkgsrc.git : By default you will get pkgsrc trunk. If you want the most recent stable : branch, then switch to it first. $ git checkout joyent/release/2013Q3 : Change to the package directory and download/compile/install with one command. $ cd pkgsrc/<category>/<package> $ bmake install
Here are some common configuration settings you may wish to add to
# Avoid root password prompt for package install/deinstall SU_CMD= sudo /bin/sh -c # Re-use existing binary packages, replace <ARCH> with the bootstrap you # chose earlier, i.e. 'i386', 'x86_64', or 'multiarch'. BINPKG_SITES= http://pkgsrc.joyent.com/packages/SmartOS/2013Q3/<ARCH> DEPENDS_TARGET= bin-install # Build everything with -j8 MAKE_JOBS= 8 # Ignore vulnerability and license checks ALLOW_VULNERABLE_PACKAGES= yes SKIP_LICENSE_CHECK= yes # Configure where to store distfiles, binary packages, and build areas DISTDIR= /content/distfiles PACKAGES= /content/packages WRKOBJDIR= /var/tmp/pkgsrc-build
If you want to change the build options for a particular package, first find out which options are available with
show-options, and then set the particular option in
/opt/local/etc/mk.conf before building:
$ cd pkgsrc/net/nmap $ bmake show-options Any of the following general options may be selected: inet6 Enable support for IPv6. ndiff Enable tool to compare Nmap scans. zenmap Enable nmap GUI frontend. These options are enabled by default: inet6 These options are currently enabled: inet6 You can select which build options to use by setting PKG_DEFAULT_OPTIONS or PKG_OPTIONS.nmap. $ vi /opt/local/etc/mk.conf PKG_OPTIONS.nmap+= ndiff $ bmake install
The pkgsrc guide is packed with information about the internals of pkgsrc, and is useful if you would like to dig deeper and start hacking.
There are also various pkgsrc-related posts on my blog which contain various hints and tricks. I also post new branch builds and updates there.
We hang out on Freenode
#pkgsrc, and our mailing lists are:
There are over 13,000 packages in pkgsrc, so there are quite a few which currently do not build on illumos. We perform regular bulk builds that are posted to the email@example.com mailing list, which shows all the currently failing packages as well as their build logs here:
Build fixes, package updates as well as new packages are very welcome:
If you want to get involved in creating new packages, the pkgsrc-wip project is a great way to get started.
Otherwise, there is always the NetBSD GNATS database.
- 04 Dec 2013 » A node.js-powered 8-bit CPU - part four
- 03 Dec 2013 » A node.js-powered 8-bit CPU - part three
- 02 Dec 2013 » A node.js-powered 8-bit CPU - part two
- 01 Dec 2013 » A node.js-powered 8-bit CPU - part one
- 21 Nov 2013 » MDB support for Go
- 30 Jul 2013 » What's new in pkgsrc-2013Q2
- 24 Jul 2013 » Distributed chrooted pkgsrc bulk builds
- 07 Jun 2013 » pkgsrc on SmartOS - creating new packages
- 15 Apr 2013 » What's new in pkgsrc-2013Q1
- 19 Mar 2013 » Installing SVR4 packages on SmartOS
- 27 Feb 2013 » SmartOS is Not GNU/Linux
- 18 Feb 2013 » SmartOS development preview dataset
- 17 Jan 2013 » pkgsrc on SmartOS - fixing broken builds
- 15 Jan 2013 » pkgsrc on SmartOS - zone creation and basic builds
- 10 Jan 2013 » Multi-architecture package support in SmartOS
- 09 Jan 2013 » Solaris portability - cfmakeraw()
- 08 Jan 2013 » Solaris portability - flock()
- 06 Jan 2013 » pkgsrc-2012Q4 illumos packages now available
- 23 Nov 2012 » SmartOS and the global zone
- 24 Oct 2012 » Setting up Samba on SmartOS
- 10 Oct 2012 » pkgsrc-2012Q3 packages for illumos
- 23 Aug 2012 » Creating local SmartOS packages
- 10 Jul 2012 » 7,000 binary packages for OSX Lion
- 09 Jul 2012 » 9,000 packages for SmartOS and illumos
- 07 May 2012 » Goodbye Oracle, Hello Joyent!
- 13 Apr 2012 » SmartOS global zone tweaks
- 12 Apr 2012 » Automated VirtualBox SmartOS installs
- 30 Mar 2012 » iptables script for Debian / Ubuntu
- 20 Feb 2012 » New site design
- 11 Jan 2012 » Set up anonymous FTP upload on Oracle Linux
- 09 Jan 2012 » Kickstart Oracle Linux in VirtualBox
- 09 Jan 2012 » Kickstart Oracle Linux from Ubuntu
- 22 Dec 2011 » Last day at MySQL
- 15 Dec 2011 » Installing OpenBSD with softraid
- 21 Sep 2011 » Create VirtualBox VM from the command line
- 14 Sep 2011 » Creating chroots for fun and MySQL testing
- 30 Jun 2011 » Graphing memory usage during an MTR run
- 29 Jun 2011 » Fix input box keybindings in Firefox
- 24 Jun 2011 » How to lose weight
- 23 Jun 2011 » How to fix stdio buffering
- 13 Jun 2011 » Serving multiple DNS search domains in IOS DHCP
- 13 Jun 2011 » Fix Firefox URL double click behaviour
- 20 Apr 2011 » SSH via HTTP proxy in OSX
- 09 Nov 2010 » How to build MySQL releases
- 29 Apr 2010 » 'apt-get' and 5,000 packages for Solaris10/x86
- 16 Sep 2009 » ZFS and NFS vs OSX
- 12 Sep 2009 » pkgsrc on Solaris
- 09 Dec 2008 » Jumpstart from OSX
- 31 Dec 2007 » Set up local caching DNS server on OSX 10.4