The s6-rc-repo-init program
s6-rc-repo-init initializes a repository on a system, linking it to a list of stores and ensuring that the set of all services defined in all the stores is consistent.
Interface
s6-rc-repo-init [ -v verbosity ] [ -r repo ] [ -h fdhuser ] [ -f ] [ -U ] [ -B ] stores...
- s6-rc-repo-init creates an s6-rc repository at location repo.
- It makes stores... (which must be a list of several locations in the filesystem) the current list of stores for this repository.
- It synchronizes with the list of stores, as if s6-rc-repo-sync had been called. That means that it imports all the services in the stores and builds the reference database.
- It exits 0.
Options
- -v verbosity, --verbosity=verbosity
- Be more or less verbose. The default is 1, which means that error messages and warnings will be written to stderr. 0 means that only error messages will be written, and 2 or more adds informational messages. The option is also passed to commands that s6-rc-repo-init may call, such as s6-rc-compile, so their verbosity will be similarly adjusted.
- -r repo, --repository=repo
- Create the repository in repo. Default is /var/lib/s6-rc/repository. Unless the -U option is given, repo must not previously exist in the filesystem.
- -h fdhuser, --fdholder-user=fdhuser
- You can safely ignore this option and forget about it. What it does is ensure that if a supervision tree is started as root on a compiled database produced by this command (this will never happen to the reference database, so it is only ever useful together with the -U option when there are sets to update), the fd-holder daemon in that supervision tree runs as fdhuser rather than root. Told you: you can safely forget about that option.
- -f, --force
- Make a new repository at repo even if one already exists. This is dangerous, use of this option is not recommended.
- -U, --update-stores
- Rather than create a new repository, change the list of stores in an existing one. This is useful, for instance, when a distribution's policies change and local stores are added, moved, or removed. It is not an operation that should be done frequently, however.
- -B, --bare
- Do not synchronize the repository with the stores. This is useful if you are going to call s6-rc-repo-sync afterwards anyway.
Exit codes
- 0
- Success.
- 1
- Failure. The services in the listed stores do not make a consistent reference database. With a nonzero verbosity, the error messages from s6-rc-compile will be displayed and detail exactly what went wrong.
- 100
- Incorrect usage.
- 111
- System call failed. This usually signals an issue with the underlying operating system.
Notes
- s6-rc-repo-init is the first command to invoke when creating a repository, or when a change occurs within the stores.
- There is generally only one repository per system, but non-root users who would want to run their own tree of s6-rc services can do so by specifying an alternative repo.
