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.\" 255eb90b9aSBryan Drewery.\" $FreeBSD$ 265eb90b9aSBryan Drewery.\" 27*18418e19SKyle Evans.Dd February 7, 2021 285eb90b9aSBryan Drewery.Dt PKG 7 295eb90b9aSBryan Drewery.Os 305eb90b9aSBryan Drewery.Sh NAME 315eb90b9aSBryan Drewery.Nm pkg 3276609326SJoel Dahl.Nd a utility for manipulating packages 335eb90b9aSBryan Drewery.Sh SYNOPSIS 345eb90b9aSBryan Drewery.Nm 355eb90b9aSBryan Drewery.Ao Ar command Ac 365eb90b9aSBryan Drewery.Nm 375eb90b9aSBryan Dreweryadd 385212e8baSBryan Drewery.Op Fl f 39*18418e19SKyle Evans.Op Fl r Ar reponame 40ae994fdcSBaptiste Daroussin.Op Fl y 415eb90b9aSBryan Drewery.Ao Pa pkg.txz Ac 425eb90b9aSBryan Drewery.Nm 435eb90b9aSBryan Drewery.Fl N 445eb90b9aSBryan Drewery.Nm 45ae994fdcSBaptiste Daroussin.Op Fl 4 | Fl 6 465eb90b9aSBryan Drewerybootstrap 475212e8baSBryan Drewery.Op Fl f 48*18418e19SKyle Evans.Op Fl r Ar reponame 49ae994fdcSBaptiste Daroussin.Op Fl y 505eb90b9aSBryan Drewery.Sh DESCRIPTION 515eb90b9aSBryan Drewery.Nm 525eb90b9aSBryan Dreweryis the package management tool. 535eb90b9aSBryan DreweryIt is used to manage local packages installed from 545eb90b9aSBryan Drewery.Xr ports 7 555eb90b9aSBryan Dreweryand install/upgrade packages from remote repositories. 565eb90b9aSBryan Drewery.Pp 575eb90b9aSBryan DreweryTo avoid backwards incompatibility issues, the actual 585eb90b9aSBryan Drewery.Xr pkg 8 595eb90b9aSBryan Drewerytool is not installed in the base system. 605eb90b9aSBryan DreweryThe first time invoked, 615eb90b9aSBryan Drewery.Nm 625eb90b9aSBryan Drewerywill bootstrap the real 635eb90b9aSBryan Drewery.Xr pkg 8 645eb90b9aSBryan Dreweryfrom a remote repository. 655212e8baSBryan Drewery.Bl -tag -width "pkg bootstrap" 665eb90b9aSBryan Drewery.It Nm Ao Ar command Ac 675eb90b9aSBryan DreweryIf 685eb90b9aSBryan Drewery.Xr pkg 8 695eb90b9aSBryan Dreweryis not installed yet, it will be fetched, have its signature verified, 705eb90b9aSBryan Dreweryinstalled, and then have the original command forwarded to it. 715eb90b9aSBryan DreweryIf already installed, the command requested will be forwarded to the real 725eb90b9aSBryan Drewery.Xr pkg 8 . 73*18418e19SKyle Evans.It Nm Li add Oo Fl f Oc Oo Fl r Ar reponame Oc Oo Fl y Oc Ao Pa pkg.txz Ac 745eb90b9aSBryan DreweryInstall 755eb90b9aSBryan Drewery.Xr pkg 8 765eb90b9aSBryan Dreweryfrom a local package instead of fetching from remote. 77e771d590SJohn-Mark GurneyIf signature checking is enabled, then the correct signature file 78e771d590SJohn-Mark Gurneymust exist and the signature valid before the package will be installed. 795212e8baSBryan DreweryIf the 805212e8baSBryan Drewery.Fl f 815212e8baSBryan Dreweryflag is specified, then 825212e8baSBryan Drewery.Xr pkg 8 835212e8baSBryan Drewerywill be installed regardless if it is already installed. 84ae994fdcSBaptiste DaroussinIf the 85ae994fdcSBaptiste Daroussin.Fl y 86ae994fdcSBaptiste Daroussinflag is specified, no confirmation will be asked when bootstrapping 87ae994fdcSBaptiste Daroussin.Xr pkg 8 . 88*18418e19SKyle Evans.Pp 89*18418e19SKyle EvansIf a 90*18418e19SKyle Evans.Ar reponame 91*18418e19SKyle Evanshas been specified, then the signature configuration for that repository will be 92*18418e19SKyle Evansused. 935eb90b9aSBryan Drewery.It Nm Fl N 945eb90b9aSBryan DreweryDo not bootstrap, just determine if 955eb90b9aSBryan Drewery.Xr pkg 8 965eb90b9aSBryan Dreweryis actually installed or not. 975eb90b9aSBryan DreweryReturns 0 and the number of packages installed 985eb90b9aSBryan Dreweryif it is, otherwise 1. 99*18418e19SKyle Evans.It Nm Oo Fl 4 | Fl 6 Oc Li bootstrap Oo Fl f Oc \ 100*18418e19SKyle EvansOo Fl r Ar reponame Oc Oo Fl y Oc 1015eb90b9aSBryan DreweryAttempt to bootstrap and do not forward anything to 1025eb90b9aSBryan Drewery.Xr pkg 8 1035eb90b9aSBryan Dreweryafter it is installed. 104ae994fdcSBaptiste DaroussinWith 105ae994fdcSBaptiste Daroussin.Fl 4 106ae994fdcSBaptiste Daroussinand 107ae994fdcSBaptiste Daroussin.Fl 6 , 108ae994fdcSBaptiste Daroussin.Nm 109ae994fdcSBaptiste Daroussinwill force IPv4 or IPv6 respectively to fetch 110ae994fdcSBaptiste Daroussin.Xr pkg 8 111ae994fdcSBaptiste Daroussinand its signatures as needed. 1125212e8baSBryan DreweryIf the 1135212e8baSBryan Drewery.Fl f 1145212e8baSBryan Dreweryflag is specified, then 1155212e8baSBryan Drewery.Xr pkg 8 1165212e8baSBryan Drewerywill be fetched and installed regardless if it is already installed. 117ae994fdcSBaptiste DaroussinIf the 118ae994fdcSBaptiste Daroussin.Fl y 119ae994fdcSBaptiste Daroussinflag is specified, no confirmation will be asked when bootstrapping 120ae994fdcSBaptiste Daroussin.Xr pkg 8 . 121*18418e19SKyle Evans.Pp 122*18418e19SKyle EvansIf a 123*18418e19SKyle Evans.Ar reponame 124*18418e19SKyle Evanshas been specified, then the configuration for that repository will be used. 1255eb90b9aSBryan Drewery.El 1265eb90b9aSBryan Drewery.Sh CONFIGURATION 1275eb90b9aSBryan DreweryConfiguration varies in whether it is in a repository configuration file 1285eb90b9aSBryan Dreweryor the global configuration file. 129*18418e19SKyle EvansThe default repository configuration for 130*18418e19SKyle Evans.Fx 131*18418e19SKyle Evansis stored in 132*18418e19SKyle Evans.Pa /etc/pkg/FreeBSD.conf , 133*18418e19SKyle Evansand additional repository configuration files will be searched for in 134*18418e19SKyle Evans.Ev REPOS_DIR , 135*18418e19SKyle Evansor 136*18418e19SKyle Evans.Pa /usr/local/etc/pkg/repos 137*18418e19SKyle Evansif it is unset. 1385eb90b9aSBryan Drewery.Pp 139*18418e19SKyle EvansFor bootstrapping, 140*18418e19SKyle Evans.Nm 141*18418e19SKyle Evanswill process all repositories that it finds and use the last enabled repository 142*18418e19SKyle Evansby default. 143*18418e19SKyle Evans.Pp 144*18418e19SKyle EvansRepository configuration is stored in the following format: 1455eb90b9aSBryan Drewery.Bd -literal -offset indent 1465eb90b9aSBryan DreweryFreeBSD: { 1475eb90b9aSBryan Drewery url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", 1485eb90b9aSBryan Drewery mirror_type: "srv", 1495eb90b9aSBryan Drewery signature_type: "none", 1505eb90b9aSBryan Drewery fingerprints: "/usr/share/keys/pkg", 151d6ea2739SBryan Drewery enabled: yes 1525eb90b9aSBryan Drewery} 1535eb90b9aSBryan Drewery.Ed 154*18418e19SKyle Evans.Pp 1555eb90b9aSBryan Drewery.Bl -tag -width signature_type -compact 1565eb90b9aSBryan Drewery.It url 1575eb90b9aSBryan DreweryRefer to 1585eb90b9aSBryan Drewery.Dv PACKAGESITE 1595eb90b9aSBryan Dreweryin 1605eb90b9aSBryan Drewery.Sx ENVIRONMENT 1615eb90b9aSBryan Drewery.It mirror_type 1625eb90b9aSBryan DreweryRefer to 1635eb90b9aSBryan Drewery.Dv MIRROR_TYPE 1645eb90b9aSBryan Dreweryin 1655eb90b9aSBryan Drewery.Sx ENVIRONMENT 1665eb90b9aSBryan Drewery.It signature_type 1675eb90b9aSBryan DreweryRefer to 1685eb90b9aSBryan Drewery.Dv SIGNATURE_TYPE 1695eb90b9aSBryan Dreweryin 1705eb90b9aSBryan Drewery.Sx ENVIRONMENT 1715eb90b9aSBryan Drewery.It fingerprints 1725eb90b9aSBryan DreweryRefer to 1735eb90b9aSBryan Drewery.Dv FINGERPRINTS 1745eb90b9aSBryan Dreweryin 1755eb90b9aSBryan Drewery.Sx ENVIRONMENT 1765eb90b9aSBryan Drewery.It enabled 1775eb90b9aSBryan DreweryDefines whether this repository should be used or not. 1785eb90b9aSBryan DreweryValid values are 1795eb90b9aSBryan Drewery.Dv yes , 1805eb90b9aSBryan Drewery.Dv true , 1815eb90b9aSBryan Drewery.Dv 1 , 1825eb90b9aSBryan Drewery.Dv no , 1835eb90b9aSBryan Drewery.Dv false , 1845eb90b9aSBryan Drewery.Dv 0 . 1855eb90b9aSBryan Drewery.El 1865eb90b9aSBryan Drewery.Pp 1875eb90b9aSBryan DreweryGlobal configuration can be stored in 1885eb90b9aSBryan Drewery.Pa /usr/local/etc/pkg.conf 1895eb90b9aSBryan Dreweryin the following format: 1905eb90b9aSBryan Drewery.Bd -literal -offset indent 191cecc0167SBryan DreweryPACKAGESITE: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", 1925eb90b9aSBryan DreweryMIRROR_TYPE: "srv", 1935eb90b9aSBryan DrewerySIGNATURE_TYPE: "none", 1945eb90b9aSBryan DreweryFINGERPRINTS: "/usr/share/keys/pkg", 1955eb90b9aSBryan DreweryASSUME_ALWAYS_YES: "yes" 196eb31a574SBryan DreweryREPOS_DIR: ["/etc/pkg", "/usr/local/etc/pkg/repos"] 1975eb90b9aSBryan Drewery.Ed 19876609326SJoel Dahl.Pp 1995eb90b9aSBryan DreweryReference 2005eb90b9aSBryan Drewery.Sx ENVIRONMENT 2015eb90b9aSBryan Dreweryfor each variable. 2025eb90b9aSBryan Drewery.Sh ENVIRONMENT 2035eb90b9aSBryan DreweryThe following environment variables can be set to override the settings 2045eb90b9aSBryan Dreweryfrom the 2055eb90b9aSBryan Drewery.Pa pkg.conf 2065eb90b9aSBryan Dreweryfile used. 2075eb90b9aSBryan Drewery.Bl -tag -width "ASSUME_ALWAYS_YES" 2085eb90b9aSBryan Drewery.It Ev MIRROR_TYPE 2095eb90b9aSBryan DreweryThis defines which mirror type should be used. 2105eb90b9aSBryan DreweryValid values are 2115eb90b9aSBryan Drewery.Dv SRV , 2125eb90b9aSBryan Drewery.Dv HTTP , 2135eb90b9aSBryan Drewery.Dv NONE . 2145eb90b9aSBryan Drewery.It Ev ABI 2155eb90b9aSBryan DreweryThis defines the ABI for the package to be installed. 2165eb90b9aSBryan DreweryDefault ABI is determined from 2175eb90b9aSBryan Drewery.Pa /bin/sh . 2185eb90b9aSBryan Drewery.It Ev ASSUME_ALWAYS_YES 2195eb90b9aSBryan DreweryIf set, no confirmation will be asked when bootstrapping 2205eb90b9aSBryan Drewery.Xr pkg 8 . 2215eb90b9aSBryan Drewery.It Ev SIGNATURE_TYPE 2225eb90b9aSBryan DreweryIf set to 2235eb90b9aSBryan Drewery.Dv FINGERPRINTS 2245eb90b9aSBryan Drewerythen a signature will be required and validated against known 2255eb90b9aSBryan Drewerycertificate fingerprints when bootstrapping 2265eb90b9aSBryan Drewery.Xr pkg 8 . 2275eb90b9aSBryan Drewery.It Ev FINGERPRINTS 2285eb90b9aSBryan DreweryIf 2295eb90b9aSBryan Drewery.Sy SIGNATURE_TYPE 2305eb90b9aSBryan Dreweryis set to 2315eb90b9aSBryan Drewery.Dv FINGERPRINTS 2325eb90b9aSBryan Drewerythis value should be set to the directory path where known fingerprints are 2335eb90b9aSBryan Drewerylocated. 2345eb90b9aSBryan Drewery.It Ev PACKAGESITE 2355eb90b9aSBryan DreweryThe URL that 2365eb90b9aSBryan Drewery.Xr pkg 8 2375eb90b9aSBryan Dreweryand other packages 2385eb90b9aSBryan Drewerywill be fetched from. 239eb31a574SBryan Drewery.It Ev REPOS_DIR 240eb31a574SBryan DreweryComma-separated list of directories that should be searched for repository 241eb31a574SBryan Dreweryconfiguration files. 2425eb90b9aSBryan Drewery.El 2435eb90b9aSBryan Drewery.Sh FILES 2445eb90b9aSBryan DreweryConfiguration is read from the files in the listed order. 245eb31a574SBryan DreweryThis path can be changed by setting 246eb31a574SBryan Drewery.Sy REPOS_DIR . 247eb31a574SBryan DreweryThe last enabled repository is the one used for bootstrapping 2485eb90b9aSBryan Drewery.Xr pkg 8 . 2495eb90b9aSBryan Drewery.Bl -tag -width "/usr/local/etc/pkg/repos/*.conf" 2505eb90b9aSBryan Drewery.It Pa /usr/local/etc/pkg.conf 2515eb90b9aSBryan Drewery.It Pa /etc/pkg/FreeBSD.conf 252eb31a574SBryan Drewery.It Pa /usr/local/etc/pkg/repos/*.conf 2535eb90b9aSBryan Drewery.El 2545eb90b9aSBryan Drewery.Sh EXAMPLES 2555eb90b9aSBryan DrewerySome examples are listed here. 2565eb90b9aSBryan DreweryThe full list of available commands are available in 2575eb90b9aSBryan Drewery.Xr pkg 8 2585eb90b9aSBryan Dreweryonce it is bootstrapped. 2595eb90b9aSBryan Drewery.Pp 2605eb90b9aSBryan DrewerySearch for a package: 2615eb90b9aSBryan Drewery.Dl $ pkg search perl 2625eb90b9aSBryan Drewery.Pp 2635eb90b9aSBryan DreweryInstall a package: 2645eb90b9aSBryan Drewery.Dl % pkg install perl 2655eb90b9aSBryan Drewery.Pp 2665eb90b9aSBryan DreweryList installed packages: 2675eb90b9aSBryan Drewery.Dl $ pkg info 2685eb90b9aSBryan Drewery.Pp 2695eb90b9aSBryan DreweryUpgrade from remote repository: 2705eb90b9aSBryan Drewery.Dl % pkg upgrade 2715eb90b9aSBryan Drewery.Pp 2725eb90b9aSBryan DreweryList non-automatic packages: 2735eb90b9aSBryan Drewery.Dl $ pkg query -e '%a = 0' %o 2745eb90b9aSBryan Drewery.Pp 2755eb90b9aSBryan DreweryList automatic packages: 2765eb90b9aSBryan Drewery.Dl $ pkg query -e '%a = 1' %o 2775eb90b9aSBryan Drewery.Pp 2785eb90b9aSBryan DreweryDelete an installed package: 2795eb90b9aSBryan Drewery.Dl % pkg delete perl 2805eb90b9aSBryan Drewery.Pp 2815eb90b9aSBryan DreweryRemove unneeded dependencies: 2825eb90b9aSBryan Drewery.Dl % pkg autoremove 2835eb90b9aSBryan Drewery.Pp 2845eb90b9aSBryan DreweryChange a package from automatic to non-automatic, which will prevent 2855eb90b9aSBryan Drewery.Ic autoremove 2865eb90b9aSBryan Dreweryfrom removing it: 2875eb90b9aSBryan Drewery.Dl % pkg set -A 0 perl 2885eb90b9aSBryan Drewery.Pp 2895eb90b9aSBryan DreweryChange a package from non-automatic to automatic, which will make 2905eb90b9aSBryan Drewery.Ic autoremove 2915eb90b9aSBryan Dreweryallow it be removed once nothing depends on it: 2925eb90b9aSBryan Drewery.Dl % pkg set -A 1 perl 2935eb90b9aSBryan Drewery.Pp 2945eb90b9aSBryan DreweryCreate package file from an installed package: 2955eb90b9aSBryan Drewery.Dl % pkg create -o /usr/ports/packages/All perl 2965eb90b9aSBryan Drewery.Pp 2975eb90b9aSBryan DreweryDetermine which package installed a file: 2985eb90b9aSBryan Drewery.Dl $ pkg which /usr/local/bin/perl 2995eb90b9aSBryan Drewery.Pp 3005eb90b9aSBryan DreweryAudit installed packages for security advisories: 3015eb90b9aSBryan Drewery.Dl $ pkg audit 3025eb90b9aSBryan Drewery.Pp 3035eb90b9aSBryan DreweryCheck installed packages for checksum mismatches: 3045eb90b9aSBryan Drewery.Dl # pkg check -s -a 3055eb90b9aSBryan Drewery.Pp 3065eb90b9aSBryan DreweryCheck for missing dependencies: 3075eb90b9aSBryan Drewery.Dl # pkg check -d -a 3085eb90b9aSBryan Drewery.Sh SEE ALSO 30976609326SJoel Dahl.Xr ports 7 , 31076609326SJoel Dahl.Xr pkg 8 3115eb90b9aSBryan Drewery.Sh HISTORY 3125eb90b9aSBryan DreweryThe 3135eb90b9aSBryan Drewery.Nm 3145eb90b9aSBryan Drewerycommand first appeared in 3155eb90b9aSBryan Drewery.Fx 9.1 . 3165eb90b9aSBryan DreweryIt became the default package tool in 3175eb90b9aSBryan Drewery.Fx 10.0 , 3185eb90b9aSBryan Dreweryreplacing the 3195eb90b9aSBryan Drewerypkg_install suite of tools 3205eb90b9aSBryan Drewery.Xr pkg_add 1 , 3215eb90b9aSBryan Drewery.Xr pkg_info 1 and 3225eb90b9aSBryan Drewery.Xr pkg_create 1 . 323