Go to main content

Creating Package Repositories in Oracle® Solaris 11.4

Exit Print View

Updated: May 2020

Troubleshooting Local Package Repositories

The following methods can prevent problems or help find the cause of problems you might encounter:

  • Verify repository source files. If you use .zip files to create your repository, confirm that the files on your system are correct by using the digests as described in How to Copy a Repository From a zip File.

  • Do not use multiple instances of the pkgrecv command simultaneously to republish packages to the same destination repository or archive.

    Be careful not to modify a repository that the svc:/application/pkg/mirror:default service is modifying. By default, the pkg/mirror service creates and updates repositories at /var/share/pkg/repositories. See How to Automatically Copy a Repository From the Internet for more information about the pkg/mirror service.

  • Verify the installed repository. Use the pkgrepo verify command to check your installed repository.

    The following permissions problems are reported by pkgrepo verify:

    • File permissions. To avoid problems with directory and file permissions for file system based repositories, ensure that the pkg5srv user has permission to read the repository.

    • Directory permissions. Ensure that all directories in the repository and the path to the repository have execute permission.

    These permissions problems prevent users from accessing these repositories.

    The pkgrepo verify command also checks file digests, package signatures, and manifest dependencies: The pkgrepo verify command verifies that every file referenced in each package manifest is in the repository. If the pkgrepo verify command reports errors other than permissions errors, try using the pkgrepo fix command to fix the errors. See the pkgrepo(1) man page for more information.

  • After updating the configuration or content of a repository, restart any pkg/server service instance that is managing that repository so that the changes will be reflected in the search responses and browser interface for that repository.

  • Check your publisher origin. Make sure you set the origin for each publisher appropriately in each image. To update installed packages, install packages that depend on installed packages, or install a non-global zone, the repository that you set as the publisher origin must contain at least the same software that is installed in the image where you are setting the publisher. See Step 3 in How to Enable Users to Retrieve Packages Using a File Interface. See Updating Systems and Adding Software in Oracle Solaris 11.4 for information about setting publishers and troubleshooting package installation problems.

  • Check web server configuration. If you configure an Apache web server to access your repository, configure the web server to not decode encoded forward slashes. See the instructions in Required Apache Configuration Setting. Decoding encoded forward slashes can result in “package not found” errors.

  • Do not create a repository that is only accessible from a non-global zone. All locations of publishers configured in non-global zones must be accessible from the global zone even if that publisher is not configured in the global zone.

If you are using Oracle Enterprise Manager Ops Center, the IPS package repository is called the Oracle Solaris Software Update Library. See the Oracle Solaris sections of the Software Library section of the Oracle Enterprise Manager Ops Center configuration reference manual for information about how to update the library. Use the Configure Parent Repos and Add Content actions in the Library > Oracle Solaris section of the Ops Center BUI (browser user interface) to associate new certificates with the solaris publisher. See the Firewall Rules section of the Oracle Enterprise Manager Ops Center Ports and Protocols guide for firewall rules to allow systems to access the external IPS repository. This list can also be useful if you are not using Ops Center.