Greetings,

With the putback of changeset 1895 to the pkg(5) gate, pkg(1) now supports filesystem-based repository access.

What changed?
=============
There are no user-visible changes to command syntax or client operation. The only noticeable change is that any command that accepted a repository URI such as 'http://localhost:10000' now accepts URIs for filesystem locations such as 'file:/path/to/my/repository'.

For example, if you were creating a new image and had a repository located at '/export/myrepo', you could do this:

  pkg image-create -p file:/export/myrepo /path/to/image

See the pkg(1) man page for more examples.

What does this mean?
====================
This change means that a pkg.depotd server is no longer required for serving package data if a client can access the package repository via the filesystem (e.g. NFS mounts, etc.).

What are the related bug entries?
=================================
The following RFEs/Bugs were resolved by changeset 1895:

  15762 client support for filesystem-based repository access
10244 caching dictionaries as a class variable prevents multi-image and repo search
  14802 ability to have separate read / write download caches
  15763 test suite should not start depot server unless necessary
  15764 file_manager insert needs to stat() less and return more

What are the potential issues?
==============================
Currently, the client will not cache data from a repository that is accessed via the filesystem in the image's download cache (e.g. /var/pkg/download), with the assumption that access to the repository via filesystem is reliable and/or reasonably fast.

In some use case scenarios (such as NFS, SMB, etc.) filesystem-based access may be slow, unreliable, or otherwise unsuitable for client transport. In those cases, it is advised that http-based access to the repository via pkg.depotd(1m) is used instead. It is hoped that the client can account for the performance of available filesystem-based resources automatically in the future when retrieving package content.

Search operations performed using a file-based repository can use substantially more memory when a repository contains a large number of packages (such as /dev). This is because the client is essentially acting as the search server in addition to the client.

To avoid this overhead, the related publisher can be configured with both an http(s) origin and the file-based origin. When performing search operations, the client will use the http(s) based origin(s) first to perform searches, but check the file-based origin first for all package file retrieval operations. For example:

  pkg set-publisher -g file:/export/myrepo \
    -g http://localhost:10000 example.com

Thanks
======
Many thanks to the individuals who collaborated on, reviewed, or contributed to this project.

Cheers,
-Shawn
_______________________________________________
install-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/install-discuss

Reply via email to