Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
9000 up-to-date binary packages for OS X (perkin.org.uk)
28 points by jperkin on May 1, 2013 | hide | past | favorite | 13 comments


Is there any reason to use this over homebrew?


It should be a lot faster, homebrew compiles most packages.


Also binary packages don't require you do have compilers installed.

I'm slightly biased because I have known Mr Perkin for some time, but I could not be more delighted that there is a fresh attempt to get a binary package manager running on OSX, to sweep away the madness of MacPorts and Homebrew.

I rather suspect though that it will hinge on how easily people can get new software they want, included in the main repositories. That is the key advantage of homebrew, it's quick and easy to get software you want, being managed by it.


Can anyone summarize how this differs from MacPorts or Homebrew?


Hi!

Briefly, pkgsrc is quite similar to both, in that it allows you to build software easily from source.

This repository is a bulk build of all available packages in pkgsrc, so it gives you the option to install from binary packages instead of having to compile them from source. However, you still have the option to build from source if you prefer, or want to select different compile options from the defaults.

It also comes with 'pkgin' which is very similar to 'apt-get' and allows you to quickly search, install, upgrade and remove binary packages.

This is the same framework we use for SmartOS, so if you provision a SmartMachine from Joyent you get the same interface. pkgsrc is cross-platform, so you can use it on Linux, OSX, Solaris, *BSD .. or even more exotic systems such as Cygwin or Haiku.

If you have any comments/complaints I'd love to hear them, we want to provide excellent packages.


Hey Sketch :)

Could you maybe talk about how easy it is (or isn't) for J Random Developer to get Awesomesauce New Webscale Database packaged and into your repository? (cf Homebrew which is some git forkery, creating a worryingly simple config file, and a pull request)


Hi Chris!

So yeh, it's not quite as simple as Homebrew, which is definitely optimised for that use-case, but it's still relatively straight-forward.

Taking the 'tmux' package as an example:

https://github.com/jsonn/pkgsrc/tree/trunk/misc/tmux

The main guts are in Makefile. DESCR is a few lines of description about the package, and is used by package managers. distinfo contains SHA1 and sizes of the source tarballs and patches. PLIST is a list of files the package will install. And finally, the patches/ directory contains per-file patches which will be applied to the source prior to building.

Due to the cross-platform support, there is a huge range of functionality available for Makefiles, and so some of them can look pretty complicated.

However, it's pretty straight-forward to get started, and there are various tools (e.g. pkgtools/url2pkg) which can make things pretty simple to get started.

I'm planning an introductory blog post on this at some point which should hopefully cover all of the basics.


Thanks, that sounds great!

Out of interest, if someone has site-specific software they need to package, but is of no interest to the wider world, how easy is it to host their own repository with that software? (is it like apt where it offers the user a union of an arbitrary number of software repositories?) Would it be vastly easier in that case to revert to being source based, or is it relatively easy to build binaries and shove them into a repo?


I already have a blog post on that ;)

http://www.perkin.org.uk/posts/creating-local-smartos-packag...

You'll just need to tweak paths from /opt/local (SmartOS) to /usr/pkg (OSX).

The one caveat is that multiple repository support in pkgin is not great right now. It should be ok as long as your site-specific packages are separate from the rest, and have unique names etc. This is something we hope will be fixed during this year's GSOC.


These are built.


I'm not sure recently this came about, but Homebrew can do this via "bottles" (precompiled package binaries). Not all packages are bottled, but a lot of the popular ones are. [1]

They also did a Kickstarter a couple weeks back to finance the automation of the compilation process. [2]

[1]: https://github.com/mxcl/homebrew/wiki/Bottles

[2]: http://www.kickstarter.com/projects/homebrew/brew-test-bot


MacPorts also installs the most common packages from precompiled binaries. Fink also has the ability (--use-binary-dist).

The main difference here is that the entire pkgsrc universe is available as precompiled binaries, which can save you a whole lot of time/CPU cycles. It could also help circumvent the "compiles fine for the package maintainer but not for me" type of errors which are often the most time consuming.


Homebrew supports bottles, which are binary versions of forumlas.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: