Skip to main content

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.


Anonymous said…
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.
Unknown 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 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!
jjinux said…
Thanks for your comment Danek.
jjinux said…
> 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.)
Unknown 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…

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...
jjinux said…
> 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.
bsergean said…
Current python on Blastwave is 2.5.1

Setting up blastwave is easy. Follow:
jjinux said…
> Current python on Blastwave is 2.5.1

Hmm, I wonder why Joyent moved from Blastwave to pkgsrc.
jjinux said…
> 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
jjinux said…
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.
jjinux said…
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.

Popular posts from this blog

Ubuntu 20.04 on a 2015 15" MacBook Pro

I decided to give Ubuntu 20.04 a try on my 2015 15" MacBook Pro. I didn't actually install it; I just live booted from a USB thumb drive which was enough to try out everything I wanted. In summary, it's not perfect, and issues with my camera would prevent me from switching, but given the right hardware, I think it's a really viable option. The first thing I wanted to try was what would happen if I plugged in a non-HiDPI screen given that my laptop has a HiDPI screen. Without sub-pixel scaling, whatever scale rate I picked for one screen would apply to the other. However, once I turned on sub-pixel scaling, I was able to pick different scale rates for the internal and external displays. That looked ok. I tried plugging in and unplugging multiple times, and it didn't crash. I doubt it'd work with my Thunderbolt display at work, but it worked fine for my HDMI displays at home. I even plugged it into my TV, and it stuck to the 100% scaling I picked for the othe

ERNOS: Erlang Networked Operating System

I've been reading Dreaming in Code lately, and I really like it. If you're not a dreamer, you may safely skip the rest of this post ;) In Chapter 10, "Engineers and Artists", Alan Kay, John Backus, and Jaron Lanier really got me thinking. I've also been thinking a lot about Minix 3 , Erlang , and the original Lisp machine . The ideas are beginning to synthesize into something cohesive--more than just the sum of their parts. Now, I'm sure that many of these ideas have already been envisioned within , LLVM , Microsoft's Singularity project, or in some other place that I haven't managed to discover or fully read, but I'm going to blog them anyway. Rather than wax philosophical, let me just dump out some ideas: Start with Minix 3. It's a new microkernel, and it's meant for real use, unlike the original Minix. "This new OS is extremely small, with the part that runs in kernel mode under 4000 lines of executable code.&quo

Haskell or Erlang?

I've coded in both Erlang and Haskell. Erlang is practical, efficient, and useful. It's got a wonderful niche in the distributed world, and it has some real success stories such as CouchDB and Haskell is elegant and beautiful. It's been successful in various programming language competitions. I have some experience in both, but I'm thinking it's time to really commit to learning one of them on a professional level. They both have good books out now, and it's probably time I read one of those books cover to cover. My question is which? Back in 2000, Perl had established a real niche for systems administration, CGI, and text processing. The syntax wasn't exactly beautiful (unless you're into that sort of thing), but it was popular and mature. Python hadn't really become popular, nor did it really have a strong niche (at least as far as I could see). I went with Python because of its elegance, but since then, I've coded both p