diff options
author | Ludovic Courtès <ludo@gnu.org> | 2023-07-05 11:49:34 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2023-08-07 15:11:45 +0200 |
commit | b3a2b3e7238161ebd86c7609f68e8f1e9c1dd6b7 (patch) | |
tree | d95589f566956e3e26c787d3f5099da188aa57ba /doc | |
parent | e63c87020d10f90d5461cec2b7f83f5d20773603 (diff) | |
download | guix-b3a2b3e7238161ebd86c7609f68e8f1e9c1dd6b7.tar.gz guix-b3a2b3e7238161ebd86c7609f68e8f1e9c1dd6b7.zip |
services: Add 'package-database' service.
* gnu/services/admin.scm (%default-package-database-update-schedule):
New variable.
(<package-database-configuration>): New record type.
(package-database-mcron-jobs): New procedure.
(package-database-service-type): New variable.
* doc/guix.texi (File Search Services): Document it.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/guix.texi | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index cbec8b0708..65ca18a1be 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4481,7 +4481,9 @@ database, usually under @file{/var/cache/guix/locate}; if it does not exist or is too old, it falls back to the per-user database, by default under @file{~/.cache/guix/locate}. On a multi-user system, administrators may want to periodically update the system-wide database -so that all users can benefit from it. +so that all users can benefit from it, for instance by setting up +@code{package-database-service-type} (@pxref{File Search Services, +@code{package-database-service-type}}). The general syntax is: @@ -25000,6 +25002,51 @@ GNU@tie{}Findutils}). @end table @end deftp +The second service, @code{package-database-service-type}, builds the +database used by @command{guix locate}, which lets you search for +packages that contain a given file (@pxref{Invoking guix locate}). The +service periodically updates a system-wide database, which will be +readily available to anyone running @command{guix locate} on the system. +To use this service with its default settings, add this snippet to your +service list: + +@lisp +(service package-database-service-type) +@end lisp + +This will run @command{guix locate --update} once a week. + +@defvar package-database-service-type +This is the service type for periodic @command{guix locate} updates +(@pxref{Invoking guix locate}). Its value must be a +@code{package-database-configuration} record, as shown below. +@end defvar + +@deftp {Data Type} package-database-configuration +Data type to configure periodic package database updates. It has the +following fields: + +@table @asis +@item @code{package} (default: @code{guix}) +The Guix package to use. + +@item @code{schedule} (default: @code{%default-package-database-update-schedule}) +String or G-exp denoting an mcron schedule for the periodic +@command{guix locate --update} job (@pxref{Guile Syntax,,, mcron, +GNU@tie{}mcron}). + +@item @code{method} (default: @code{'store}) +Indexing method for @command{guix locate}. The default value, +@code{'store}, yields a more complete database but is relatively +expensive in terms of CPU and input/output. + +@item @code{channels} (default: @code{#~%default-channels}) +G-exp denoting the channels to use when updating the database +(@pxref{Channels}). +@end table +@end deftp + + @node Database Services @subsection Database Services |