OpenSolaris: Package Management and Joyent

Linux has really, really good package management. You'll realize this the second you try to use another operating system. Ubuntu (thanks to Debian) makes life so easy. It's easy to install all the software I want, and it's easy to make sure it stays updated. Even the kernel, etc. stay updated with practically no effort on my part.

In contrast, managing packages on OpenSolaris is painful. There are multiple package systems, and none of them seems to do everything I want. (In Linux, there are multiple distros, each with their own fully functioning package system.) Reading Joyent's wiki, it seems to be commonplace to fall back to patching and compiling the source by hand. Painful.

Theoretically, Nexenta might fix this situation one of these days, but in the meantime, I have a deadline ;)

Since POSIX is a commodity, the OSs work hard to differentiate themselves. OpenSolaris sets itself apart by being very scalable. Furthermore, DTrace and zfs are supposed to be crazy awesome. Perhaps that's true, but man, I wish I could just get Python 2.5 installed! What's worse is that once I do have it installed, I have no idea how to keep the system updated. Ubuntu sets itself apart by being easy to install and administrate by novice sysadmins like myself, and boy do I feel the difference!

By the way, as I mentioned, I'm using Joyent. I'm not feeling the love today. So much of the documentation on their wiki is stale and misleading. I spent all day trying to figure out how to use Blastwave because that's what the wiki said they used. I finally gave up and submitted a trouble ticket. Support replied (in a timely manner) that Joyent was no longer using Blastwave, but had switched to pkgsrc. Unfortunately, I can't find the pkgsrc directory on the system either. After reading the docs for several hours, I've realized two things: My chances of getting Python 2.5 working and talking to MySQL without immense pain are slim to none, and don't trust Joyent's wiki.

Comments

Last December, when I was writing the "Python on Unix" document for my GHOP task, I had to write a section on getting Python 2.5 installed on Opensolaris and when I checked blastwave, the stable version was 2.3 and when I asked on IRC, the former maintainer of Python on OpenSolaris was stunned to hear that maintenance had stalled since 2.3. Getting Python 2.5 to run on Opensolaris is a real headache.
Danek said…
OpenSolaris is still a work in progress. The old packaging system (from SVr4, with "pkgadd", "pkgrm", etc) is there only for non-OS packages that aren't yet available in IPS format. There are still plenty of bugs in the new system, and we're working them out. We started from scratch a little over a year ago, so the comparison to systems which have been solidly in place for a minimum of several years is a bit of a stretch.

If there are specific problems you have, please file bugs at defect.opensolaris.org. If not, then please come back and try it again. We are trying to make updates available every two weeks, but we expect to have larger releases roughly every six months, and are currently targeting November for the next one. Hopefully we'll have upgraded Python to 2.5 or 2.6 by then, too!
Thanks for your comment Danek.
> We started from scratch a little over a year ago, so the comparison to systems which have been solidly in place for a minimum of several years is a bit of a stretch.

You know, I've though about it a bit more, and I disagree. Solaris has been around since '92. It's had the same amount of time as Linux has. I think my point still stands.

(That being said, I appreciate all the other things that OpenSolaris is good at, and I appreciate all the hard work on it.)
Danek said…
I get your point, but I think we'll just have to agree to disagree. The new packaging system has absolutely zilch to do with the old one -- no code is shared and none of the people who worked on the old system (never mind any who designed it!) are working on the new. It'd be like saying that the Linux kernel in '93 should have been as advanced and robust as the ones coming from the big Unix shops. It was good enough for a lot of people (including myself) and was getting better rapidly, but at that point it wasn't something a sane person would have built a business on. Obviously, that rapid development changed the situation pretty quickly, but it was still quite a few years before it was significantly more than a niche OS.

Give us time, we'll get there. :)

As for the entirety of OpenSolaris, I think your point holds better, since the vast majority of it is incremental development over what's already in the "production" Solaris, and product-wide, these are changes we could have (and likely should have) made years ago. Oh, well. At least we've woken up. :)

At any rate, it's great to be catching people's interest, so thanks for that.
Noah Gift said…
Shannon,

I will have to slap you down a bit :) OpenSolaris is good stuff. The package management system is written in Python and has a lot of work to do. It has to deal with the legacy of Unix Big Iron packaging, and newer open source projects.

Also, the LDOM stuff on the Enterprise Solaris is killer. I think a Solaris T-2000 with an ALOM Card and 32 LDOM instances is a slice of heaven boi. Get with the program slacker...
> I will have to slap you down a bit :)

Why? Where did I say anything negative except about the packaging system?

The only other thing I don't like about OpenSolaris is that it isn't fully open source. There are a lot of parts that are open source, but it's not a completely open source system. I know there are legacy reasons for this, but it's still rather unfortunate.
bimone said…
Current python on Blastwave is 2.5.1

http://www.blastwave.org/packages.php/python

Setting up blastwave is easy. Follow:

http://www.blastwave.org/howto.html
> Current python on Blastwave is 2.5.1

Hmm, I wonder why Joyent moved from Blastwave to pkgsrc.
> Current python on Blastwave is 2.5.1

BTW, thanks!
Noah Gift said…
"Why? Where did I say anything negative except about the packaging system?"

Actually, I am half way joking. There are a lot of Solaris people that are not happy with the package management plan at the meeting I attended. It does seem like it could be a cool process for some Python developers to help with, as it is still a work in progress.

"The only other thing I don't like about OpenSolaris is that it isn't fully open source. There are a lot of parts that are open source, but it's not a completely open source system. I know there are legacy reasons for this, but it's still rather unfortunate."

It was explained to me that this is not Sun's fault. They have all of these people they are working deals with to get the software released. I believe the current Open Solaris has mostly got this solved. In some cases the tools are so old they can't get the original authors to sign the release :)

Solaris isn't perfect, but I do think it is a lot of fun when you use their hardware
One of my friends is using Nexenta because he needs zfs. Unfortunately, there are still a lot of kinks to be worked out. He said he plans to try out zfs under fuse on Linux.
Alex Yeh said…
fyi, pkgsrc is a portable package management system developed and maintained by the netbsd team. giyf.
Thanks, Alex. At the time I wrote this post, pkgsrc on OpenSolaris didn't yet support Python 2.5 which is what I needed. I'm still glad it exists, though.