xref: /freebsd/usr.sbin/pkg/pkg.7 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
15eb90b9aSBryan Drewery.\" Copyright (c) 2013 Bryan Drewery <bdrewery@FreeBSD.org>
25eb90b9aSBryan Drewery.\" All rights reserved.
35eb90b9aSBryan Drewery.\"
45eb90b9aSBryan Drewery.\" Redistribution and use in source and binary forms, with or without
55eb90b9aSBryan Drewery.\" modification, are permitted provided that the following conditions
65eb90b9aSBryan Drewery.\" are met:
75eb90b9aSBryan Drewery.\" 1. Redistributions of source code must retain the above copyright
85eb90b9aSBryan Drewery.\"    notice, this list of conditions and the following disclaimer.
95eb90b9aSBryan Drewery.\" 2. Redistributions in binary form must reproduce the above copyright
105eb90b9aSBryan Drewery.\"    notice, this list of conditions and the following disclaimer in the
115eb90b9aSBryan Drewery.\"    documentation and/or other materials provided with the distribution.
125eb90b9aSBryan Drewery.\"
135eb90b9aSBryan Drewery.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
145eb90b9aSBryan Drewery.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
155eb90b9aSBryan Drewery.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
165eb90b9aSBryan Drewery.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
175eb90b9aSBryan Drewery.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
185eb90b9aSBryan Drewery.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
195eb90b9aSBryan Drewery.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
205eb90b9aSBryan Drewery.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
215eb90b9aSBryan Drewery.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
225eb90b9aSBryan Drewery.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
235eb90b9aSBryan Drewery.\" SUCH DAMAGE.
245eb90b9aSBryan Drewery.\"
25*e9ad2964SBrooks Davis.Dd August 24, 2022
265eb90b9aSBryan Drewery.Dt PKG 7
275eb90b9aSBryan Drewery.Os
285eb90b9aSBryan Drewery.Sh NAME
295eb90b9aSBryan Drewery.Nm pkg
3076609326SJoel Dahl.Nd a utility for manipulating packages
315eb90b9aSBryan Drewery.Sh SYNOPSIS
325eb90b9aSBryan Drewery.Nm
33*e9ad2964SBrooks Davis.Op Fl d
343beedc38SMateusz Piotrowski.Ar command ...
355eb90b9aSBryan Drewery.Nm
363beedc38SMateusz Piotrowski.Cm add
37*e9ad2964SBrooks Davis.Op Fl dfy
3818418e19SKyle Evans.Op Fl r Ar reponame
393beedc38SMateusz Piotrowski.Ar pkg.txz
405eb90b9aSBryan Drewery.Nm
415eb90b9aSBryan Drewery.Fl N
425eb90b9aSBryan Drewery.Nm
43*e9ad2964SBrooks Davis.Op Fl 46d
443beedc38SMateusz Piotrowski.Cm bootstrap
453beedc38SMateusz Piotrowski.Op Fl fy
4618418e19SKyle Evans.Op Fl r Ar reponame
475eb90b9aSBryan Drewery.Sh DESCRIPTION
485eb90b9aSBryan Drewery.Nm
495eb90b9aSBryan Dreweryis the package management tool.
505eb90b9aSBryan DreweryIt is used to manage local packages installed from
515eb90b9aSBryan Drewery.Xr ports 7
525eb90b9aSBryan Dreweryand install/upgrade packages from remote repositories.
535eb90b9aSBryan Drewery.Pp
545eb90b9aSBryan DreweryTo avoid backwards incompatibility issues, the actual
555eb90b9aSBryan Drewery.Xr pkg 8
565eb90b9aSBryan Drewerytool is not installed in the base system.
575eb90b9aSBryan DreweryThe first time invoked,
585eb90b9aSBryan Drewery.Nm
595eb90b9aSBryan Drewerywill bootstrap the real
605eb90b9aSBryan Drewery.Xr pkg 8
615eb90b9aSBryan Dreweryfrom a remote repository.
623beedc38SMateusz Piotrowski.Bl -tag
633beedc38SMateusz Piotrowski.It Nm Ar command ...
645eb90b9aSBryan DreweryIf
655eb90b9aSBryan Drewery.Xr pkg 8
665eb90b9aSBryan Dreweryis not installed yet, it will be fetched, have its signature verified,
675eb90b9aSBryan Dreweryinstalled, and then have the original command forwarded to it.
685eb90b9aSBryan DreweryIf already installed, the command requested will be forwarded to the real
695eb90b9aSBryan Drewery.Xr pkg 8 .
703beedc38SMateusz Piotrowski.It Nm Cm add Oo Fl fy Oc Oo Fl r Ar reponame Oc Ar pkg.txz
715eb90b9aSBryan DreweryInstall
725eb90b9aSBryan Drewery.Xr pkg 8
735eb90b9aSBryan Dreweryfrom a local package instead of fetching from remote.
74e771d590SJohn-Mark GurneyIf signature checking is enabled, then the correct signature file
75e771d590SJohn-Mark Gurneymust exist and the signature valid before the package will be installed.
765212e8baSBryan DreweryIf the
775212e8baSBryan Drewery.Fl f
785212e8baSBryan Dreweryflag is specified, then
795212e8baSBryan Drewery.Xr pkg 8
805212e8baSBryan Drewerywill be installed regardless if it is already installed.
81ae994fdcSBaptiste DaroussinIf the
82ae994fdcSBaptiste Daroussin.Fl y
83ae994fdcSBaptiste Daroussinflag is specified, no confirmation will be asked when bootstrapping
84ae994fdcSBaptiste Daroussin.Xr pkg 8 .
8518418e19SKyle Evans.Pp
8618418e19SKyle EvansIf a
8718418e19SKyle Evans.Ar reponame
8818418e19SKyle Evanshas been specified, then the signature configuration for that repository will be
8918418e19SKyle Evansused.
905eb90b9aSBryan Drewery.It Nm Fl N
915eb90b9aSBryan DreweryDo not bootstrap, just determine if
925eb90b9aSBryan Drewery.Xr pkg 8
935eb90b9aSBryan Dreweryis actually installed or not.
945eb90b9aSBryan DreweryReturns 0 and the number of packages installed
955eb90b9aSBryan Dreweryif it is, otherwise 1.
963beedc38SMateusz Piotrowski.It Nm Oo Fl 46 Oc Cm bootstrap Oo Fl fy Oc \
973beedc38SMateusz PiotrowskiOo Fl r Ar reponame Oc
985eb90b9aSBryan DreweryAttempt to bootstrap and do not forward anything to
995eb90b9aSBryan Drewery.Xr pkg 8
1005eb90b9aSBryan Dreweryafter it is installed.
101ae994fdcSBaptiste DaroussinWith
102ae994fdcSBaptiste Daroussin.Fl 4
103ae994fdcSBaptiste Daroussinand
104ae994fdcSBaptiste Daroussin.Fl 6 ,
105ae994fdcSBaptiste Daroussin.Nm
106ae994fdcSBaptiste Daroussinwill force IPv4 or IPv6 respectively to fetch
107ae994fdcSBaptiste Daroussin.Xr pkg 8
108ae994fdcSBaptiste Daroussinand its signatures as needed.
1095212e8baSBryan DreweryIf the
1105212e8baSBryan Drewery.Fl f
1115212e8baSBryan Dreweryflag is specified, then
1125212e8baSBryan Drewery.Xr pkg 8
1135212e8baSBryan Drewerywill be fetched and installed regardless if it is already installed.
114ae994fdcSBaptiste DaroussinIf the
115ae994fdcSBaptiste Daroussin.Fl y
116ae994fdcSBaptiste Daroussinflag is specified, no confirmation will be asked when bootstrapping
117ae994fdcSBaptiste Daroussin.Xr pkg 8 .
11818418e19SKyle Evans.Pp
11918418e19SKyle EvansIf a
12018418e19SKyle Evans.Ar reponame
12118418e19SKyle Evanshas been specified, then the configuration for that repository will be used.
1225eb90b9aSBryan Drewery.El
123*e9ad2964SBrooks Davis.Sh OPTIONS
124*e9ad2964SBrooks DavisThe following options are supported by
125*e9ad2964SBrooks Davis.Nm :
126*e9ad2964SBrooks Davis.Bl -tag -width indent
127*e9ad2964SBrooks Davis.It Fl d, Fl -debug
128*e9ad2964SBrooks DavisShow debug information.
129*e9ad2964SBrooks DavisMay be specified more than once to increase the level of detail.
130*e9ad2964SBrooks DavisWhen specified twice,
131*e9ad2964SBrooks Davis.Xr fetch 3
132*e9ad2964SBrooks Davisdebug output is enabled.
133*e9ad2964SBrooks Davis.El
1345eb90b9aSBryan Drewery.Sh CONFIGURATION
1355eb90b9aSBryan DreweryConfiguration varies in whether it is in a repository configuration file
1365eb90b9aSBryan Dreweryor the global configuration file.
13718418e19SKyle EvansThe default repository configuration for
13818418e19SKyle Evans.Fx
13918418e19SKyle Evansis stored in
14018418e19SKyle Evans.Pa /etc/pkg/FreeBSD.conf ,
14118418e19SKyle Evansand additional repository configuration files will be searched for in
14218418e19SKyle Evans.Ev REPOS_DIR ,
14318418e19SKyle Evansor
14418418e19SKyle Evans.Pa /usr/local/etc/pkg/repos
14518418e19SKyle Evansif it is unset.
1465eb90b9aSBryan Drewery.Pp
14718418e19SKyle EvansFor bootstrapping,
14818418e19SKyle Evans.Nm
14918418e19SKyle Evanswill process all repositories that it finds and use the last enabled repository
15018418e19SKyle Evansby default.
15118418e19SKyle Evans.Pp
15218418e19SKyle EvansRepository configuration is stored in the following format:
1535eb90b9aSBryan Drewery.Bd -literal -offset indent
1545eb90b9aSBryan DreweryFreeBSD: {
1555eb90b9aSBryan Drewery  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
1565eb90b9aSBryan Drewery  mirror_type: "srv",
1575eb90b9aSBryan Drewery  signature_type: "none",
1585eb90b9aSBryan Drewery  fingerprints: "/usr/share/keys/pkg",
159d6ea2739SBryan Drewery  enabled: yes
1605eb90b9aSBryan Drewery}
1615eb90b9aSBryan Drewery.Ed
16218418e19SKyle Evans.Pp
1635eb90b9aSBryan Drewery.Bl -tag -width signature_type -compact
1645eb90b9aSBryan Drewery.It url
1655eb90b9aSBryan DreweryRefer to
1665eb90b9aSBryan Drewery.Dv PACKAGESITE
1675eb90b9aSBryan Dreweryin
1685eb90b9aSBryan Drewery.Sx ENVIRONMENT
1695eb90b9aSBryan Drewery.It mirror_type
1705eb90b9aSBryan DreweryRefer to
1715eb90b9aSBryan Drewery.Dv MIRROR_TYPE
1725eb90b9aSBryan Dreweryin
1735eb90b9aSBryan Drewery.Sx ENVIRONMENT
1745eb90b9aSBryan Drewery.It signature_type
1755eb90b9aSBryan DreweryRefer to
1765eb90b9aSBryan Drewery.Dv SIGNATURE_TYPE
1775eb90b9aSBryan Dreweryin
1785eb90b9aSBryan Drewery.Sx ENVIRONMENT
1795eb90b9aSBryan Drewery.It fingerprints
1805eb90b9aSBryan DreweryRefer to
1815eb90b9aSBryan Drewery.Dv FINGERPRINTS
1825eb90b9aSBryan Dreweryin
1835eb90b9aSBryan Drewery.Sx ENVIRONMENT
1845eb90b9aSBryan Drewery.It enabled
1855eb90b9aSBryan DreweryDefines whether this repository should be used or not.
1865eb90b9aSBryan DreweryValid values are
1875eb90b9aSBryan Drewery.Dv yes ,
1885eb90b9aSBryan Drewery.Dv true ,
1895eb90b9aSBryan Drewery.Dv 1 ,
1905eb90b9aSBryan Drewery.Dv no ,
1915eb90b9aSBryan Drewery.Dv false ,
1925eb90b9aSBryan Drewery.Dv 0 .
1935eb90b9aSBryan Drewery.El
1945eb90b9aSBryan Drewery.Pp
1955eb90b9aSBryan DreweryGlobal configuration can be stored in
1965eb90b9aSBryan Drewery.Pa /usr/local/etc/pkg.conf
1975eb90b9aSBryan Dreweryin the following format:
1985eb90b9aSBryan Drewery.Bd -literal -offset indent
199cecc0167SBryan DreweryPACKAGESITE: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
2005eb90b9aSBryan DreweryMIRROR_TYPE: "srv",
2015eb90b9aSBryan DrewerySIGNATURE_TYPE: "none",
2025eb90b9aSBryan DreweryFINGERPRINTS: "/usr/share/keys/pkg",
2035eb90b9aSBryan DreweryASSUME_ALWAYS_YES: "yes"
204eb31a574SBryan DreweryREPOS_DIR: ["/etc/pkg", "/usr/local/etc/pkg/repos"]
2055eb90b9aSBryan Drewery.Ed
20676609326SJoel Dahl.Pp
2075eb90b9aSBryan DreweryReference
2085eb90b9aSBryan Drewery.Sx ENVIRONMENT
2095eb90b9aSBryan Dreweryfor each variable.
2105eb90b9aSBryan Drewery.Sh ENVIRONMENT
2115eb90b9aSBryan DreweryThe following environment variables can be set to override the settings
2125eb90b9aSBryan Dreweryfrom the
2135eb90b9aSBryan Drewery.Pa pkg.conf
2145eb90b9aSBryan Dreweryfile used.
2155eb90b9aSBryan Drewery.Bl -tag -width "ASSUME_ALWAYS_YES"
2165eb90b9aSBryan Drewery.It Ev MIRROR_TYPE
2175eb90b9aSBryan DreweryThis defines which mirror type should be used.
2185eb90b9aSBryan DreweryValid values are
2195eb90b9aSBryan Drewery.Dv SRV ,
2205eb90b9aSBryan Drewery.Dv HTTP ,
2215eb90b9aSBryan Drewery.Dv NONE .
2225eb90b9aSBryan Drewery.It Ev ABI
2235eb90b9aSBryan DreweryThis defines the ABI for the package to be installed.
2245eb90b9aSBryan DreweryDefault ABI is determined from
2255eb90b9aSBryan Drewery.Pa /bin/sh .
2265eb90b9aSBryan Drewery.It Ev ASSUME_ALWAYS_YES
2275eb90b9aSBryan DreweryIf set, no confirmation will be asked when bootstrapping
2285eb90b9aSBryan Drewery.Xr pkg 8 .
2295eb90b9aSBryan Drewery.It Ev SIGNATURE_TYPE
2305eb90b9aSBryan DreweryIf set to
2315eb90b9aSBryan Drewery.Dv FINGERPRINTS
2325eb90b9aSBryan Drewerythen a signature will be required and validated against known
2335eb90b9aSBryan Drewerycertificate fingerprints when bootstrapping
2345eb90b9aSBryan Drewery.Xr pkg 8 .
2355eb90b9aSBryan Drewery.It Ev FINGERPRINTS
2365eb90b9aSBryan DreweryIf
2375eb90b9aSBryan Drewery.Sy SIGNATURE_TYPE
2385eb90b9aSBryan Dreweryis set to
2395eb90b9aSBryan Drewery.Dv FINGERPRINTS
2405eb90b9aSBryan Drewerythis value should be set to the directory path where known fingerprints are
2415eb90b9aSBryan Drewerylocated.
2425eb90b9aSBryan Drewery.It Ev PACKAGESITE
2435eb90b9aSBryan DreweryThe URL that
2445eb90b9aSBryan Drewery.Xr pkg 8
2455eb90b9aSBryan Dreweryand other packages
2465eb90b9aSBryan Drewerywill be fetched from.
247eb31a574SBryan Drewery.It Ev REPOS_DIR
248eb31a574SBryan DreweryComma-separated list of directories that should be searched for repository
249eb31a574SBryan Dreweryconfiguration files.
2505eb90b9aSBryan Drewery.El
2515eb90b9aSBryan Drewery.Sh FILES
2525eb90b9aSBryan DreweryConfiguration is read from the files in the listed order.
253eb31a574SBryan DreweryThis path can be changed by setting
2543beedc38SMateusz Piotrowski.Ev REPOS_DIR .
255eb31a574SBryan DreweryThe last enabled repository is the one used for bootstrapping
2565eb90b9aSBryan Drewery.Xr pkg 8 .
2575eb90b9aSBryan Drewery.Bl -tag -width "/usr/local/etc/pkg/repos/*.conf"
2585eb90b9aSBryan Drewery.It Pa /usr/local/etc/pkg.conf
2595eb90b9aSBryan Drewery.It Pa /etc/pkg/FreeBSD.conf
260eb31a574SBryan Drewery.It Pa /usr/local/etc/pkg/repos/*.conf
2615eb90b9aSBryan Drewery.El
2625eb90b9aSBryan Drewery.Sh EXAMPLES
2635eb90b9aSBryan DrewerySome examples are listed here.
2645eb90b9aSBryan DreweryThe full list of available commands are available in
2655eb90b9aSBryan Drewery.Xr pkg 8
2665eb90b9aSBryan Dreweryonce it is bootstrapped.
2675eb90b9aSBryan Drewery.Pp
2685eb90b9aSBryan DrewerySearch for a package:
2695eb90b9aSBryan Drewery.Dl $ pkg search perl
2705eb90b9aSBryan Drewery.Pp
2715eb90b9aSBryan DreweryInstall a package:
2725eb90b9aSBryan Drewery.Dl % pkg install perl
2735eb90b9aSBryan Drewery.Pp
2745eb90b9aSBryan DreweryList installed packages:
2755eb90b9aSBryan Drewery.Dl $ pkg info
2765eb90b9aSBryan Drewery.Pp
2775eb90b9aSBryan DreweryUpgrade from remote repository:
2785eb90b9aSBryan Drewery.Dl % pkg upgrade
2795eb90b9aSBryan Drewery.Pp
2805eb90b9aSBryan DreweryList non-automatic packages:
2815eb90b9aSBryan Drewery.Dl $ pkg query -e '%a = 0' %o
2825eb90b9aSBryan Drewery.Pp
2835eb90b9aSBryan DreweryList automatic packages:
2845eb90b9aSBryan Drewery.Dl $ pkg query -e '%a = 1' %o
2855eb90b9aSBryan Drewery.Pp
2865eb90b9aSBryan DreweryDelete an installed package:
2875eb90b9aSBryan Drewery.Dl % pkg delete perl
2885eb90b9aSBryan Drewery.Pp
2895eb90b9aSBryan DreweryRemove unneeded dependencies:
2905eb90b9aSBryan Drewery.Dl % pkg autoremove
2915eb90b9aSBryan Drewery.Pp
2925eb90b9aSBryan DreweryChange a package from automatic to non-automatic, which will prevent
2933beedc38SMateusz Piotrowski.Xr pkg-autoremove 8
2945eb90b9aSBryan Dreweryfrom removing it:
2955eb90b9aSBryan Drewery.Dl % pkg set -A 0 perl
2965eb90b9aSBryan Drewery.Pp
2975eb90b9aSBryan DreweryChange a package from non-automatic to automatic, which will make
2983beedc38SMateusz Piotrowski.Xr pkg-autoremove 8
2995eb90b9aSBryan Dreweryallow it be removed once nothing depends on it:
3005eb90b9aSBryan Drewery.Dl % pkg set -A 1 perl
3015eb90b9aSBryan Drewery.Pp
3025eb90b9aSBryan DreweryCreate package file from an installed package:
3035eb90b9aSBryan Drewery.Dl % pkg create -o /usr/ports/packages/All perl
3045eb90b9aSBryan Drewery.Pp
3055eb90b9aSBryan DreweryDetermine which package installed a file:
3065eb90b9aSBryan Drewery.Dl $ pkg which /usr/local/bin/perl
3075eb90b9aSBryan Drewery.Pp
3085eb90b9aSBryan DreweryAudit installed packages for security advisories:
3095eb90b9aSBryan Drewery.Dl $ pkg audit
3105eb90b9aSBryan Drewery.Pp
3115eb90b9aSBryan DreweryCheck installed packages for checksum mismatches:
3125eb90b9aSBryan Drewery.Dl # pkg check -s -a
3135eb90b9aSBryan Drewery.Pp
3145eb90b9aSBryan DreweryCheck for missing dependencies:
3155eb90b9aSBryan Drewery.Dl # pkg check -d -a
3165eb90b9aSBryan Drewery.Sh SEE ALSO
31776609326SJoel Dahl.Xr ports 7 ,
31876609326SJoel Dahl.Xr pkg 8
3195eb90b9aSBryan Drewery.Sh HISTORY
3205eb90b9aSBryan DreweryThe
3215eb90b9aSBryan Drewery.Nm
3225eb90b9aSBryan Drewerycommand first appeared in
3235eb90b9aSBryan Drewery.Fx 9.1 .
3245eb90b9aSBryan DreweryIt became the default package tool in
3255eb90b9aSBryan Drewery.Fx 10.0 ,
3265eb90b9aSBryan Dreweryreplacing the
3275eb90b9aSBryan Drewerypkg_install suite of tools
3285eb90b9aSBryan Drewery.Xr pkg_add 1 ,
3295eb90b9aSBryan Drewery.Xr pkg_info 1 and
3305eb90b9aSBryan Drewery.Xr pkg_create 1 .
331