Create the repository in a shared location. Set atime to off when you create the repository file system. Consider setting the compression property. See Best Practices for Creating and Using Local IPS Package Repositories.
$ zfs create -o atime=off rpool/VARSHARE/pkgrepos $ zfs create rpool/VARSHARE/pkgrepos/solaris $ zfs get atime rpool/VARSHARE/pkgrepos/solaris NAME PROPERTY VALUE SOURCE rpool/VARSHARE/pkgrepos/solaris atime off inherited from rpool/VARSHARE/pkgrepos
Create an .iso file from the repository .zip files using the -I option as described in Example 1, Creating a New Repository From a zip File.
Mount the repository .iso file to access the content.
$ mount -F hsfs /path/sol-11_3-repo.iso /mnt
To avoid the need to remount the .iso image each time the repository server system restarts, copy the repository file content as described in the next step.
To increase the performance of repository accesses and to avoid the need to remount the .iso image each time the system restarts, copy the repository files from /mnt/repo/ to a ZFS file system. You can do this copy with the rsync command or with the tar command.
If you use the rsync command, be sure to specify /mnt/repo/ (including the trailing slash character) and not /mnt/repo to copy the files and subdirectories in the repo directory. See the rsync(1) man page.
$ rsync -aP /mnt/repo/ /var/share/pkgrepos/solaris
Using the tar command as shown in the following example can be a faster way to copy the repository from the mounted file system to the repository ZFS file system.
$ cd /mnt/repo; tar cf - . | (cd /var/share/pkgrepos/solaris; tar xfp -)
Make sure you are not still in the /mnt directory.
$ umount /mnt
Use the info, list, and verify subcommands of the pkgrepo command to check that the repository has been copied correctly. If the pkgrepo verify command reports errors, try using the pkgrepo fix command to fix the errors. See the pkgrepo(1) man page for more information.
$ zfs snapshot rpool/VARSHARE/pkgrepos/solaris@sol-11_3_0