1.\" Copyright (c) 2013 Bryan Drewery <bdrewery@FreeBSD.org> 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 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. 12.\" 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 23.\" SUCH DAMAGE. 24.\" 25.\" $FreeBSD$ 26.\" 27.Dd December 12, 2013 28.Dt PKG 7 29.Os 30.Sh NAME 31.Nm pkg 32.Nd a utility for manipulating packages 33.Sh SYNOPSIS 34.Nm 35.Ao Ar command Ac 36.Nm 37add 38.Op Fl f 39.Ao Pa pkg.txz Ac 40.Nm 41.Fl N 42.Nm 43bootstrap 44.Op Fl f 45.Sh DESCRIPTION 46.Nm 47is the package management tool. 48It is used to manage local packages installed from 49.Xr ports 7 50and install/upgrade packages from remote repositories. 51.Pp 52To avoid backwards incompatibility issues, the actual 53.Xr pkg 8 54tool is not installed in the base system. 55The first time invoked, 56.Nm 57will bootstrap the real 58.Xr pkg 8 59from a remote repository. 60.Bl -tag -width "pkg bootstrap" 61.It Nm Ao Ar command Ac 62If 63.Xr pkg 8 64is not installed yet, it will be fetched, have its signature verified, 65installed, and then have the original command forwarded to it. 66If already installed, the command requested will be forwarded to the real 67.Xr pkg 8 . 68.It Nm Li add Oo Fl f Oc Ao Pa pkg.txz Ac 69Install 70.Xr pkg 8 71from a local package instead of fetching from remote. 72If a 73.Pa pkg.txz.sig 74file exists and 75signature checking is enabled, then the signature will be verified 76before installing the package. 77If the 78.Fl f 79flag is specified, then 80.Xr pkg 8 81will be installed regardless if it is already installed. 82.It Nm Fl N 83Do not bootstrap, just determine if 84.Xr pkg 8 85is actually installed or not. 86Returns 0 and the number of packages installed 87if it is, otherwise 1. 88.It Nm Li bootstrap Op Fl f 89Attempt to bootstrap and do not forward anything to 90.Xr pkg 8 91after it is installed. 92If the 93.Fl f 94flag is specified, then 95.Xr pkg 8 96will be fetched and installed regardless if it is already installed. 97.El 98.Sh CONFIGURATION 99Configuration varies in whether it is in a repository configuration file 100or the global configuration file. 101.Pp 102Repository configuration can be stored in 103.Pa /etc/pkg/FreeBSD.conf 104in the following format: 105.Bd -literal -offset indent 106FreeBSD: { 107 url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", 108 mirror_type: "srv", 109 signature_type: "none", 110 fingerprints: "/usr/share/keys/pkg", 111 enabled: yes 112} 113.Ed 114.Bl -tag -width signature_type -compact 115.It url 116Refer to 117.Dv PACKAGESITE 118in 119.Sx ENVIRONMENT 120.It mirror_type 121Refer to 122.Dv MIRROR_TYPE 123in 124.Sx ENVIRONMENT 125.It signature_type 126Refer to 127.Dv SIGNATURE_TYPE 128in 129.Sx ENVIRONMENT 130.It fingerprints 131Refer to 132.Dv FINGERPRINTS 133in 134.Sx ENVIRONMENT 135.It enabled 136Defines whether this repository should be used or not. 137Valid values are 138.Dv yes , 139.Dv true , 140.Dv 1 , 141.Dv no , 142.Dv false , 143.Dv 0 . 144.El 145.Pp 146Global configuration can be stored in 147.Pa /usr/local/etc/pkg.conf 148in the following format: 149.Bd -literal -offset indent 150PACKAGESITE: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", 151MIRROR_TYPE: "srv", 152SIGNATURE_TYPE: "none", 153FINGERPRINTS: "/usr/share/keys/pkg", 154ASSUME_ALWAYS_YES: "yes" 155REPOS_DIR: ["/etc/pkg", "/usr/local/etc/pkg/repos"] 156.Ed 157.Pp 158Reference 159.Sx ENVIRONMENT 160for each variable. 161.Sh ENVIRONMENT 162The following environment variables can be set to override the settings 163from the 164.Pa pkg.conf 165file used. 166.Bl -tag -width "ASSUME_ALWAYS_YES" 167.It Ev MIRROR_TYPE 168This defines which mirror type should be used. 169Valid values are 170.Dv SRV , 171.Dv HTTP , 172.Dv NONE . 173.It Ev ABI 174This defines the ABI for the package to be installed. 175Default ABI is determined from 176.Pa /bin/sh . 177.It Ev ASSUME_ALWAYS_YES 178If set, no confirmation will be asked when bootstrapping 179.Xr pkg 8 . 180.It Ev SIGNATURE_TYPE 181If set to 182.Dv FINGERPRINTS 183then a signature will be required and validated against known 184certificate fingerprints when bootstrapping 185.Xr pkg 8 . 186.It Ev FINGERPRINTS 187If 188.Sy SIGNATURE_TYPE 189is set to 190.Dv FINGERPRINTS 191this value should be set to the directory path where known fingerprints are 192located. 193.It Ev PACKAGESITE 194The URL that 195.Xr pkg 8 196and other packages 197will be fetched from. 198.It Ev REPOS_DIR 199Comma-separated list of directories that should be searched for repository 200configuration files. 201.El 202.Sh FILES 203Configuration is read from the files in the listed order. 204This path can be changed by setting 205.Sy REPOS_DIR . 206The last enabled repository is the one used for bootstrapping 207.Xr pkg 8 . 208.Bl -tag -width "/usr/local/etc/pkg/repos/*.conf" 209.It Pa /usr/local/etc/pkg.conf 210.It Pa /etc/pkg/FreeBSD.conf 211.It Pa /usr/local/etc/pkg/repos/*.conf 212.El 213.Sh EXAMPLES 214Some examples are listed here. 215The full list of available commands are available in 216.Xr pkg 8 217once it is bootstrapped. 218.Pp 219Search for a package: 220.Dl $ pkg search perl 221.Pp 222Install a package: 223.Dl % pkg install perl 224.Pp 225List installed packages: 226.Dl $ pkg info 227.Pp 228Upgrade from remote repository: 229.Dl % pkg upgrade 230.Pp 231List non-automatic packages: 232.Dl $ pkg query -e '%a = 0' %o 233.Pp 234List automatic packages: 235.Dl $ pkg query -e '%a = 1' %o 236.Pp 237Delete an installed package: 238.Dl % pkg delete perl 239.Pp 240Remove unneeded dependencies: 241.Dl % pkg autoremove 242.Pp 243Change a package from automatic to non-automatic, which will prevent 244.Ic autoremove 245from removing it: 246.Dl % pkg set -A 0 perl 247.Pp 248Change a package from non-automatic to automatic, which will make 249.Ic autoremove 250allow it be removed once nothing depends on it: 251.Dl % pkg set -A 1 perl 252.Pp 253Create package file from an installed package: 254.Dl % pkg create -o /usr/ports/packages/All perl 255.Pp 256Determine which package installed a file: 257.Dl $ pkg which /usr/local/bin/perl 258.Pp 259Audit installed packages for security advisories: 260.Dl $ pkg audit 261.Pp 262Check installed packages for checksum mismatches: 263.Dl # pkg check -s -a 264.Pp 265Check for missing dependencies: 266.Dl # pkg check -d -a 267.Sh SEE ALSO 268.Xr ports 7 , 269.Xr pkg 8 270.Sh HISTORY 271The 272.Nm 273command first appeared in 274.Fx 9.1 . 275It became the default package tool in 276.Fx 10.0 , 277replacing the 278pkg_install suite of tools 279.Xr pkg_add 1 , 280.Xr pkg_info 1 and 281.Xr pkg_create 1 . 282