1 .\" Copyright (c) 2013 Bryan Drewery <bdrewery@FreeBSD.org>
2 .\" All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
13 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .Nd a utility for manipulating packages
49 is the package management tool.
50 It is used to manage local packages installed from
52 and install/upgrade packages from remote repositories.
54 To avoid backwards incompatibility issues, the actual
56 tool is not installed in the base system.
57 The first time invoked,
59 will bootstrap the real
61 from a remote repository.
66 is not installed yet, it will be fetched, have its signature verified,
67 installed, and then have the original command forwarded to it.
68 If already installed, the command requested will be forwarded to the real
70 .It Nm Cm add Oo Fl fy Oc Oo Fl r Ar reponame Oc Ar pkg.txz
73 from a local package instead of fetching from remote.
74 If signature checking is enabled, then the correct signature file
75 must exist and the signature valid before the package will be installed.
78 flag is specified, then
80 will be installed regardless if it is already installed.
83 flag is specified, no confirmation will be asked when bootstrapping
88 has been specified, then the signature configuration for that repository will be
91 Do not bootstrap, just determine if
93 is actually installed or not.
94 Returns 0 and the number of packages installed
95 if it is, otherwise 1.
96 .It Nm Oo Fl 46 Oc Cm bootstrap Oo Fl fy Oc \
97 Oo Fl r Ar reponame Oc
98 Attempt to bootstrap and do not forward anything to
100 after it is installed.
106 will force IPv4 or IPv6 respectively to fetch
108 and its signatures as needed.
111 flag is specified, then
113 will be fetched and installed regardless if it is already installed.
116 flag is specified, no confirmation will be asked when bootstrapping
121 has been specified, then the configuration for that repository will be used.
124 The following options are supported by
126 .Bl -tag -width indent
128 Show debug information.
129 May be specified more than once to increase the level of detail.
130 When specified twice,
132 debug output is enabled.
135 Configuration varies in whether it is in a repository configuration file
136 or the global configuration file.
137 The default repository configuration for
140 .Pa /etc/pkg/FreeBSD.conf ,
141 and additional repository configuration files will be searched for in
144 .Pa /usr/local/etc/pkg/repos
149 will process all repositories that it finds and use the last enabled repository
152 Repository configuration is stored in the following format:
153 .Bd -literal -offset indent
155 url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
157 signature_type: "none",
158 fingerprints: "/usr/share/keys/pkg",
163 .Bl -tag -width signature_type -compact
185 Defines whether this repository should be used or not.
195 Global configuration can be stored in
196 .Pa /usr/local/etc/pkg.conf
197 in the following format:
198 .Bd -literal -offset indent
199 PACKAGESITE: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
201 SIGNATURE_TYPE: "none",
202 FINGERPRINTS: "/usr/share/keys/pkg",
203 ASSUME_ALWAYS_YES: "yes"
204 REPOS_DIR: ["/etc/pkg", "/usr/local/etc/pkg/repos"]
211 The following environment variables can be set to override the settings
215 .Bl -tag -width "ASSUME_ALWAYS_YES"
217 This defines which mirror type should be used.
223 This defines the ABI for the package to be installed.
224 Default ABI is determined from
226 .It Ev ASSUME_ALWAYS_YES
227 If set, no confirmation will be asked when bootstrapping
229 .It Ev SIGNATURE_TYPE
232 then a signature will be required and validated against known
233 certificate fingerprints when bootstrapping
240 this value should be set to the directory path where known fingerprints are
246 will be fetched from.
248 Comma-separated list of directories that should be searched for repository
252 Configuration is read from the files in the listed order.
253 This path can be changed by setting
255 The last enabled repository is the one used for bootstrapping
257 .Bl -tag -width "/usr/local/etc/pkg/repos/*.conf"
258 .It Pa /usr/local/etc/pkg.conf
259 .It Pa /etc/pkg/FreeBSD.conf
260 .It Pa /usr/local/etc/pkg/repos/*.conf
263 Some examples are listed here.
264 The full list of available commands are available in
266 once it is bootstrapped.
268 Search for a package:
269 .Dl $ pkg search perl
272 .Dl % pkg install perl
274 List installed packages:
277 Upgrade from remote repository:
280 List non-automatic packages:
281 .Dl $ pkg query -e '%a = 0' %o
283 List automatic packages:
284 .Dl $ pkg query -e '%a = 1' %o
286 Delete an installed package:
287 .Dl % pkg delete perl
289 Remove unneeded dependencies:
292 Change a package from automatic to non-automatic, which will prevent
295 .Dl % pkg set -A 0 perl
297 Change a package from non-automatic to automatic, which will make
299 allow it be removed once nothing depends on it:
300 .Dl % pkg set -A 1 perl
302 Create package file from an installed package:
303 .Dl % pkg create -o /usr/ports/packages/All perl
305 Determine which package installed a file:
306 .Dl $ pkg which /usr/local/bin/perl
308 Audit installed packages for security advisories:
311 Check installed packages for checksum mismatches:
312 .Dl # pkg check -s -a
314 Check for missing dependencies:
315 .Dl # pkg check -d -a
322 command first appeared in
324 It became the default package tool in
327 pkg_install suite of tools