Building a Solaris 11 repository without network connection
- by user12611852
Solaris 11 has been released and is a fantastic new iteration of Oracle's rock solid, enterprise operating system. One of the great new features is the repository based Image Packaging system. IPS not only introduces new cloud based package installation services, it is also integrated with our zones, boot environment and ZFS file systems to provide a safe, easy and fast way to perform system updates.
My customers typically don't have network access and, in fact, can't connect to any network until they have "Authority to connect." It's useful, however, to build up a Solaris 11 system with additional software using the new Image Packaging System and locally stored repository. The Solaris 11 documentation describes how to create a locally stored repository with full explanations of what the commands do. I'm simply providing the quick and dirty steps.
The easiest way is to download the ISO image, burn to a DVD and insert into your DVD drive. Then as root:
pkg set-publisher -G '*' -g file:///cdrom/sol11repo_full/repo solaris
Now you can to install software using the GUI package manager or the pkg commands. If you would like something more permanent (or don't have a DVD drive), however, it takes a little more work.
After installing Solaris 11, download (on another system perhaps) the two files that make up the Solaris 11 repository from our download site
Sneaker-net the files to your Solaris 11 system
Unzip and cat the two files together to create one large ISO image. The file is about 6.9 GB in size
zfs create rpool/export/repoSolaris11
zfs set atime=off rpool/export/repoSolaris11
zfs set compression=on rpool/export/repoSolaris11 (save some space)
lofiadm -a sol-11-1111-repo-full.iso /dev/lofi/1
mount -F hsfs /dev/lofi/1 /mnt
You could stop here and set the publisher to point to the /mnt/repo location, however, this mount will not be persistent across reboots. Copy the repository from the mounted ISO image to a permanent, on disk location.
rsync -aP /mnt/repo /export/repoSolaris11
pkgrepo -s /export/repoSolaris11 refresh
pkg set-publisher -G '*' -g /export/repoSolaris11/repo solaris
You now have a locally installed repository for adding additional software packages for Solaris 11. The documentation also takes you through publishing your repository on the network so that others can access it.