Create your own OpenSolaris IPS repository in a Weekend!

Finally all 6 parts of the presentation "Create your own OpenSolaris IPS repository in a Weekend" is out.

This covers the whole process from building packages using Common Build Environment to sending those packages to the IPS repository.

Enjoy watching:
Part 1: Common Build Environment
Part 2: Building Packages Using CBE
Part 3: Building pkg(5) (from sources)
Part 4: Setting up IPS repository
Part 5: Sending Solaris packages to the IPS repository #1
Part 6: Sending Solaris packages to the IPS repository #2

Glynn Foster wrote some instructions for happy Indiana users, that explains how to build spec-files on the Indiana. It is worth trying and sharing experiences. Please let me know if you successfully build spec-files on Indiana :-)

Also Damien Carbery pointed that CBE shouldn't be installed as root user, but I found this a little simpler than explaining how to install CBE using extended user attributes (man -s 4 user_attr).

Once again thanks for all the e-mails and comments and I hope that soon I will be able to download OpenSource software from your IPS repositories!


Greetings -

I have followed your demo on an x86 NV 76 machine, mostly with success. I have a few comments/questions. In Part 1, on my system there was already an /etc/user_attr file with my user name in it. So, it was only necessary to add Software Installation in the profiles list with a comma before it. A brand new user may or may not figure this out immediately.

In Part 3, the SUNWipkg package seems to build, but does not contain any /usr/share files including the .png icon and logo. The server does start up and seems to work. Also, the SUNWipkg package installs in gate/packages, but not in a i386 subdirectory.

In Part 4, using the port 10000 on my machine did not work because webmin apparently uses this port.

I was able to create an ips server and put packages there using Part 5.

I am going to redo all of this on a completely clean machine to see if some of these issues go away.

Thanks very much for the useful blog post.

Posted by Steve Christensen on February 05, 2008 at 01:26 AM UTC #

After creating my own IPs repository using your presentation, I was able to add packages to it and install those packages on to my system.

Now there is one problem I am not able to access the packages on I am not able to do a image-create and pkg refresh command shows following error:
pkg: 0/1 catalogs successfully updated: node name or service name not known.

How to get back the access to

Posted by Gayatri on February 21, 2008 at 07:38 PM UTC #

Hi Gayatri,

The command:
pkg image-create [-FPUz] [--full|--partial|--user] [--zone] [--authority prefix=url] dir

Installed your new image to some dir, where you have pointed it?

If you are in that directory than all pkg commands will use image from that directory, so basically you can try to cd to other one.

One other possibility is that you have created image in the "/" or full image, than you will need to do the following steps (as root):

1. If you are behind proxy:
export http_proxy=

2. Edit file:

#Make sure that you have section:

origin =
prefix =
mirrors = None

#You can also add here another repository (experimental usage!)

origin =
prefix = some.authority
mirrors = None

3. Refresh:
pkg refresh --full

This should return to default one, if you have changed it.

Posted by Michal Pryc on February 22, 2008 at 02:11 AM UTC #

How to do mirroring from existing repository. Let say, I want to create local mirror of How can I do that?


Posted by Adhari C Mahendra on March 26, 2008 at 05:50 AM UTC #

Hi Adhari,
I don't know much about mirroring in the IPS. The proper place to ask is the pkg-discuss mailing list:

There was already discussion like this:

Posted by Michal Pryc on March 26, 2008 at 07:42 AM UTC #

Awesome post. Very useful to get to speed with IPS.

Posted by Shiv on May 12, 2008 at 05:32 PM UTC #

Hi Michal Pryc!
There are some discutions but not any resolution for mirroring a IPS, What we(Adhari and me)do to do it? How tell to run rsync server? Thanks!

Posted by Raul Ortega on May 22, 2008 at 06:20 PM UTC #

Those links to the videos are not working.


The movie does not load. After a few minutes the status bar (of Firefox) says timed out.

You can host the videos on youtube (and many other places) without this problem.

Posted by Ron Jeremy on August 17, 2008 at 10:10 PM UTC #

Hi Ron,
You are right that I should move those videos to some other place (

Anyway this information is a little bit out of date, since installing Sun Studio in the newest OpenSolaris changed and I will post a blog soon describing those new easier steps.


Posted by Michal Pryc on August 18, 2008 at 08:34 AM UTC #

Thanks Michal - greate info!

One note - port 10000 is a default for webmin.

Posted by Mike La Spina on November 20, 2008 at 09:34 AM UTC #

I could setup a IPS mirror at my end and saw some advantage and disadvantages which I have jotted down below.

Mirror has the following advantages.

1) Always in SYNC with main
2) Speeds up DC build process.

Mirror has the following Disadvantages
1) pkg (client) have to go to origin server for metadata and remote search
Which happens in a mirror.
2) You cannot choose the packages you want and compile those only and put
them into IPS repo.
3) You do not have control over the opensolaris code.
4) Dependency on
5) When Mirror is true, publishing and metadata operations are disabled
and only a limited browser user interface is provided for depotd server.

After that I read your blog and saw all parts and in part 6 you explain about how you could put the SXCE CD packages into IPS sever with help of
Now this method will remove all the disadvantages of mirror.
but I have a question here are this SXCE packages same packages which
we get on ??
or in short is this a method to create a subset of .
Only difference is hosts all packages coded and
tested till now and our local IPS server will only host the packages
in the build we got the packages from. In my case I used SXCE build

Happy new year,
Omkar Lagu

Posted by omkar lagu on January 01, 2009 at 10:00 AM UTC #

On nevada B109 you need to do:
cd gate/packages/i386
pkgadd -d. SUNWipkg SUNWpython-cherrypy SUNWpython-ply SUNWpython-mako

You missed:
svcadm enable svc:/application/pkg/server:default

Thanks for great work.

Posted by Gilles Dauphin on March 24, 2009 at 08:42 AM UTC #

why one cannot take one package directory, run one line, and all this is done including the dependencies?

Posted by no-way on June 28, 2009 at 01:17 PM UTC #

I am in the process of building my own IPS repository. On both my OpenSolaris and Windows systems, I am having trouble viewing your tutorial. Can you please repost the video?

Posted by Matt on January 10, 2011 at 06:29 PM UTC #

Post a Comment:
Comments are closed for this entry.



« April 2014