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

Drawing Sierpinski's Triangle in Minecraft Using Python

In his keynote at PyCon, Eben Upton, the Executive Director of the Rasberry Pi Foundation, mentioned that not only has Minecraft been ported to the Rasberry Pi, but you can even control it with Python . Since four of my kids are avid Minecraft fans, I figured this might be a good time to teach them to program using Python. So I started yesterday with the goal of programming something cool for Minecraft and then showing it off at the San Francisco Python Meetup in the evening. The first problem that I faced was that I didn't have a Rasberry Pi. You can't hack Minecraft by just installing the Minecraft client. Speaking of which, I didn't have the Minecraft client installed either ;) My kids always play it on their Nexus 7s. I found an open source Minecraft server called Bukkit that "provides the means to extend the popular Minecraft multiplayer server." Then I found a plugin called RaspberryJuice that implements a subset of the Minecraft Pi modding API for B

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

Creating Windows 10 Boot Media for a Lenovo Thinkpad T410 Using Only a Mac and a Linux Machine

TL;DR: Giovanni and I struggled trying to get Windows 10 installed on the Lenovo Thinkpad T410. We struggled a lot trying to create the installation media because we only had a Mac and a Linux machine to work with. Everytime we tried to boot the USB thumb drive, it just showed us a blinking cursor. At the end, we finally realized that Windows 10 wasn't supported on this laptop :-/ I've heard that it took Thomas Edison 100 tries to figure out the right material to use as a lightbulb filament. Well, I'm no Thomas Edison, but I thought it might be noteworthy to document our attempts at getting it to boot off a USB thumb drive: Download the ISO. Attempt 1: Use Etcher. Etcher says it doesn't work for Windows. Attempt 2: Use Boot Camp Assistant. It doesn't have that feature anymore. Attempt 3: Use Disk Utility on a Mac. Erase a USB thumb drive: Format: ExFAT Scheme: GUID Partition Map Mount the ISO. Copy everything from