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
32 .Nd a utility for manipulating packages
47 is the package management tool.
48 It is used to manage local packages installed from
50 and install/upgrade packages from remote repositories.
52 To avoid backwards incompatibility issues, the actual
54 tool is not installed in the base system.
55 The first time invoked,
57 will bootstrap the real
59 from a remote repository.
60 .Bl -tag -width "pkg bootstrap"
61 .It Nm Ao Ar command Ac
64 is not installed yet, it will be fetched, have its signature verified,
65 installed, and then have the original command forwarded to it.
66 If already installed, the command requested will be forwarded to the real
68 .It Nm Li add Oo Fl f Oc Ao Pa pkg.txz Ac
71 from a local package instead of fetching from remote.
72 If signature checking is enabled, then the correct signature file
73 must exist and the signature valid before the package will be installed.
76 flag is specified, then
78 will be installed regardless if it is already installed.
80 Do not bootstrap, just determine if
82 is actually installed or not.
83 Returns 0 and the number of packages installed
84 if it is, otherwise 1.
85 .It Nm Li bootstrap Op Fl f
86 Attempt to bootstrap and do not forward anything to
88 after it is installed.
91 flag is specified, then
93 will be fetched and installed regardless if it is already installed.
96 Configuration varies in whether it is in a repository configuration file
97 or the global configuration file.
99 Repository configuration can be stored in
100 .Pa /etc/pkg/FreeBSD.conf
101 in the following format:
102 .Bd -literal -offset indent
104 url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
106 signature_type: "none",
107 fingerprints: "/usr/share/keys/pkg",
111 .Bl -tag -width signature_type -compact
133 Defines whether this repository should be used or not.
143 Global configuration can be stored in
144 .Pa /usr/local/etc/pkg.conf
145 in the following format:
146 .Bd -literal -offset indent
147 PACKAGESITE: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
149 SIGNATURE_TYPE: "none",
150 FINGERPRINTS: "/usr/share/keys/pkg",
151 ASSUME_ALWAYS_YES: "yes"
152 REPOS_DIR: ["/etc/pkg", "/usr/local/etc/pkg/repos"]
159 The following environment variables can be set to override the settings
163 .Bl -tag -width "ASSUME_ALWAYS_YES"
165 This defines which mirror type should be used.
171 This defines the ABI for the package to be installed.
172 Default ABI is determined from
174 .It Ev ASSUME_ALWAYS_YES
175 If set, no confirmation will be asked when bootstrapping
177 .It Ev SIGNATURE_TYPE
180 then a signature will be required and validated against known
181 certificate fingerprints when bootstrapping
188 this value should be set to the directory path where known fingerprints are
194 will be fetched from.
196 Comma-separated list of directories that should be searched for repository
200 Configuration is read from the files in the listed order.
201 This path can be changed by setting
203 The last enabled repository is the one used for bootstrapping
205 .Bl -tag -width "/usr/local/etc/pkg/repos/*.conf"
206 .It Pa /usr/local/etc/pkg.conf
207 .It Pa /etc/pkg/FreeBSD.conf
208 .It Pa /usr/local/etc/pkg/repos/*.conf
211 Some examples are listed here.
212 The full list of available commands are available in
214 once it is bootstrapped.
216 Search for a package:
217 .Dl $ pkg search perl
220 .Dl % pkg install perl
222 List installed packages:
225 Upgrade from remote repository:
228 List non-automatic packages:
229 .Dl $ pkg query -e '%a = 0' %o
231 List automatic packages:
232 .Dl $ pkg query -e '%a = 1' %o
234 Delete an installed package:
235 .Dl % pkg delete perl
237 Remove unneeded dependencies:
240 Change a package from automatic to non-automatic, which will prevent
243 .Dl % pkg set -A 0 perl
245 Change a package from non-automatic to automatic, which will make
247 allow it be removed once nothing depends on it:
248 .Dl % pkg set -A 1 perl
250 Create package file from an installed package:
251 .Dl % pkg create -o /usr/ports/packages/All perl
253 Determine which package installed a file:
254 .Dl $ pkg which /usr/local/bin/perl
256 Audit installed packages for security advisories:
259 Check installed packages for checksum mismatches:
260 .Dl # pkg check -s -a
262 Check for missing dependencies:
263 .Dl # pkg check -d -a
270 command first appeared in
272 It became the default package tool in
275 pkg_install suite of tools