1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="color-scheme" content="dark light" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="en" />
<title>s6-frontend: the s6 repository command</title>
<meta name="Description" content="s6-frontend: the s6 repository command" />
<meta name="Keywords" content="s6 ecosystem supervision service manager user interface init skarnet.org skarnet software repository repo s6-rc" />
<!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> -->
</head>
<body>
<p>
<a href="s6.html">The s6 command</a><br />
<a href="index.html">s6-frontend</a><br />
<a href="//skarnet.org/software/">Software</a><br />
<a href="//skarnet.org/">skarnet.org</a>
</p>
<h1> The <tt>s6 repository</tt> command </h1>
<p>
<tt>s6 repository</tt> groups actions that target the repository of <a href="//skarnet.org/software/s6-rc/">s6-rc</a>source
definition directories for services managed by the
<a href="//skarnet.org/software/s6-rc/repodefs.html">repo commands</a>. The
repository is hosted in the <a href="s6.conf.html">configured</a>
<em>repodir</em>.
</p>
<p>
This set of commands is not intended for day-to-day use since they involve
serious actions on the repository which is supposed to be stable. Rather,
they are likely to be a part of automated procedures written by the distribution
and triggered by specific events like package installation or updates.
</p>
<h2 id="interface"> Interface </h2>
<pre>
s6 repository <em>subcommand</em> [ <em>subcommand_options...</em> ] [ <em>args...</em> ]
</pre>
<ul>
<li> <tt>s6 repo</tt> and <tt>s6 r</tt> are accepted as aliases for <tt>s6 repository</tt>. </li>
</ul>
<h2 id="subcommands"> Subcommands </h2>
<h3 id="help"> help </h3>
<p>
<tt>s6 repository help</tt> prints a short help message summarizing the options
and usage of the <tt>s6 repository</tt> command. It is not as detailed as this page.
</p>
<h3 id="init"> init </h3>
<h4> Interface </h4>
<pre>
s6 repository init [ -f ] [ -U ] [ -h <em>fdhuser</em> ]
</pre>
<ul>
<li> <tt>s6 repository init</tt> creates the repository at the configured
location. </li>
<li> It links all the stores defined in the configured store list. </li>
<li> It syncs the repository with the stores, importing all the services
and making its reference database. </li>
<li> It creates a service set named <tt>current</tt>, which will be the
working set for all <a href="s6_set.html"><tt>s6 set</tt></a> commands. </li>
</ul>
<h4> Options </h4>
<dl>
<dt> -f, --force </dt>
<dd> If the repository already exists, overwrite it with a new one.
This is a dangerous option and should only be used as a last resort
if the repository seems hopelessly broken. </dd>
<dt> -U, --update-stores </dt>
<dd> Do not recreate the repository from scratch, instead update the list
of stores. This commands needs to be run when the storelist variable
has changed. </dd>
<dt> -h <em>fdhuser</em>, --fdholder-user=<em>fdhuser</em> </dt>
<dd> Specify the fdholder user for the reference database. This has
no impact whatsoever and this option can safely be ignored. </dd>
</dl>
<h3 id="list"> list </h3>
<h4> Interface </h4>
<pre>
s6 repository list
</pre>
<ul>
<li> <tt>s6 repository list</tt> lists all the saved sets in the repository,
printing their names on stdout, one per line. It does not list <tt>current</tt>,
the current working set, which always exists. </li>
<li> No options are defined. </li>
</ul>
<h3 id="check"> check </h3>
<h4> Interface </h4>
<pre>
s6 repository check [ -F ] [ -d | -u ] [ -E | -e ]
</pre>
<ul>
<li> <tt>s6 repository check</tt> checks all the sets in the repository for
inconsistencies, printing anything it finds to stdout. </li>
</ul>
<h4> Options </h4>
<dl>
<dt> -F, --fix </dt>
<dd> Also attempt to fix the inconsistencies. </dd>
<dt> -E, --no-force-essential </dt>
<dd> If fixing a set involves changing a service flagged as essential
to a prescription that is <em>not</em> <tt>always</tt>, or a service <em>not</em>
flagged as essential to the <tt>always</tt> prescription, print an error message
and exit. This is the default. </dd>
<dt> -e, --force-essential </dt>
<dd> If fixing a set involves changing a service flagged as essential
to a prescription that is <em>not</em> <tt>always</tt>, or a service <em>not</em>
flagged as essential to the <tt>always</tt> prescription, perform the change
and continue. This is normally not necessary with a list of stores
providing consistent services. </dd>
<dt> -d, --down </dt>
<dd> Fix sets by disabling or masking services. If service <tt>A</tt>
depends on service <tt>B</tt> and <tt>B</tt> is masked or disabled,
change <tt>A</tt> to be masked or disabled as well. This is the
default. </dd>
<dt> -u, --up </dt>
<dd> Fix sets by enabling or unmasking services. If service <tt>A</tt>
depends on service <tt>B</tt> and <tt>A</tt> is unmasked or enabled,
change <tt>B</tt> to be unmasked or enabled as well. </dd>
</dl>
<h3 id="sync"> sync </h3>
<h4> Interface </h4>
<pre>
s6 repository sync [ -h <em>fdhuser</em> ]
</pre>
<ul>
<li> <tt>s6 repository sync</tt> synchronizes the repository's view of services
with the contents of the stores. </li>
<li> This command must be run every time the stores change, typically
when the package manager of the distribution adds or removes a package
that defines a service. Ideally it should be added to a hook defined by
the package manager. </li>
</ul>
<h4> Options </h4>
<dl>
<dt> -h <em>fdhuser</em>, --fdholder-user=<em>fdhuser</em> </dt>
<dd> Specify the fdholder user for the reference database. This has
no impact whatsoever and this option can safely be ignored. </dd>
</dl>
</body>
</html>
|