Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PKG(7)			 Miscellaneous Information Manual		  PKG(7)

NAME
     pkg -- a utility for manipulating packages

SYNOPSIS
     pkg [-d] command ...
     pkg [-d] add [-fy] [-r reponame] pkg.pkg
     pkg -N
     pkg [-46d] bootstrap [-fy] [-r reponame]

DESCRIPTION
     pkg  is  the  package management tool.  It is used to manage local packages
     installed from ports(7) and install/upgrade packages from remote  reposito-
     ries.

     To  avoid	backwards  incompatibility issues, the actual pkg(8) tool is not
     installed in the base system.  The first time invoked, pkg  will  bootstrap
     the real pkg(8) from a remote repository.

     pkg command ...
	     If pkg(8) is not installed yet, it will be fetched, have its signa-
	     ture  verified,  installed, and then have the original command for-
	     warded to it.  If already installed, the command requested will  be
	     forwarded to the real pkg(8).

     pkg add [-fy] [-r reponame] pkg.pkg
	     Install  pkg(8)  from  a local package instead of fetching from re-
	     mote.  If signature checking is enabled, then the correct signature
	     file must exist and the signature valid before the package will  be
	     installed.   If  the  -f flag is specified, then pkg(8) will be in-
	     stalled regardless if it is already installed.  If the -y	flag  is
	     specified, no confirmation will be asked when bootstrapping pkg(8).

	     If  a reponame has been specified, then the signature configuration
	     for that repository will be used.

     pkg -N  Do not bootstrap, just determine if pkg(8) is actually installed or
	     not.  Returns 0 and the number of packages installed if it is, oth-
	     erwise 1.

     pkg [-46] bootstrap [-fy] [-r reponame]
	     Attempt to bootstrap and do not forward anything to pkg(8) after it
	     is installed.  With -4 and -6, pkg will force IPv4 or IPv6  respec-
	     tively  to  fetch	pkg(8)	and its signatures as needed.  If the -f
	     flag is specified, then pkg(8) will be fetched  and  installed  re-
	     gardless  if it is already installed.  If the -y flag is specified,
	     no confirmation will be asked when bootstrapping pkg(8).

	     If a reponame has been specified, then the configuration  for  that
	     repository will be used.

OPTIONS
     The following options are supported by pkg:

     -d, --debug
	     Show  debug  information.	 May  be specified more than once to in-
	     crease the level of detail.  When specified twice,  fetch(3)  debug
	     output is enabled.

CONFIGURATION
     Configuration varies in whether it is in a repository configuration file or
     the  global  configuration  file.	The default repository configuration for
     FreeBSD is stored in /etc/pkg/FreeBSD.conf, and additional repository  con-
     figuration    files    will    be	  searched    for   in	 REPOS_DIR,   or
     /usr/local/etc/pkg/repos if it is unset.

     For bootstrapping, pkg will process all repositories that it finds and  use
     the last enabled repository by default.

     Repository configuration is stored in the following format:

	   FreeBSD: {
	     url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
	     mirror_type: "srv",
	     signature_type: "none",
	     fingerprints: "/usr/share/keys/pkg",
	     enabled: yes
	   }

     url	     Refer to PACKAGESITE in "ENVIRONMENT"
     mirror_type     Refer to MIRROR_TYPE in "ENVIRONMENT"
     signature_type  Refer to SIGNATURE_TYPE in "ENVIRONMENT"
     fingerprints    Refer to FINGERPRINTS in "ENVIRONMENT"
     enabled	     Defines  whether  this  repository  should  be used or not.
		     Valid values are yes, true, 1, no, false, 0.

     Global configuration can be stored in /usr/local/etc/pkg.conf in  the  fol-
     lowing format:

	   PACKAGESITE: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
	   MIRROR_TYPE: "srv",
	   SIGNATURE_TYPE: "none",
	   FINGERPRINTS: "/usr/share/keys/pkg",
	   ASSUME_ALWAYS_YES: "yes"
	   REPOS_DIR: ["/etc/pkg", "/usr/local/etc/pkg/repos"]

     Reference "ENVIRONMENT" for each variable.

ENVIRONMENT
     The  following  environment  variables  can be set to override the settings
     from the pkg.conf file used.

     MIRROR_TYPE	This defines which mirror type should  be  used.   Valid
			values are SRV, HTTP, NONE.

     ABI		This  defines  the  ABI for the package to be installed.
			Default ABI is determined from /bin/sh.

     ASSUME_ALWAYS_YES	If set, no confirmation will be asked when bootstrapping
			pkg(8).

     SIGNATURE_TYPE	If set to FINGERPRINTS then a signature will be required
			and validated  against	known  certificate  fingerprints
			when bootstrapping pkg(8).

     FINGERPRINTS	If  SIGNATURE_TYPE  is	set  to  FINGERPRINTS this value
			should be set to the directory path where known  finger-
			prints are located.

     PACKAGESITE	The  URL  that pkg(8) and other packages will be fetched
			from.

     REPOS_DIR		Comma-separated  list  of  directories	that  should  be
			searched for repository configuration files.

FILES
     Configuration is read from the files in the listed order.	This path can be
     changed  by setting REPOS_DIR.  The last enabled repository is the one used
     for bootstrapping pkg(8).

     /usr/local/etc/pkg.conf

     /etc/pkg/FreeBSD.conf

     /usr/local/etc/pkg/repos/*.conf

EXAMPLES
     Some examples are listed here.  The full list  of	available  commands  are
     available in pkg(8) once it is bootstrapped.

     Search for a package:
	   $ pkg search perl

     Install a package:
	   % pkg install perl

     List installed packages:
	   $ pkg info

     Upgrade from remote repository:
	   % pkg upgrade

     List non-automatic packages:
	   $ pkg query -e '%a = 0' %o

     List automatic packages:
	   $ pkg query -e '%a = 1' %o

     Delete an installed package:
	   % pkg delete perl

     Remove unneeded dependencies:
	   % pkg autoremove

     Change  a	package from automatic to non-automatic, which will prevent pkg-
     autoremove(8) from removing it:
	   % pkg set -A 0 perl

     Change a package from non-automatic to automatic, which will  make  pkg-au-
     toremove(8) allow it be removed once nothing depends on it:
	   % pkg set -A 1 perl

     Create package file from an installed package:
	   % pkg create -o /usr/ports/packages/All perl

     Determine which package installed a file:
	   $ pkg which /usr/local/bin/perl

     Audit installed packages for security advisories:
	   $ pkg audit

     Check installed packages for checksum mismatches:
	   # pkg check -s -a

     Check for missing dependencies:
	   # pkg check -d -a

     Fetch  a package for a different FreeBSD version, along with all its depen-
     dencies:
	   #  pkg  -o  ABI=FreeBSD:15:amd64  -o  IGNORE_OSVERSION=yes  fetch  -o
	   destdir -d perl

SEE ALSO
     ports(7), pkg(8)

HISTORY
     The pkg command first appeared in FreeBSD 9.1.  It became the default pack-
     age  tool	in  FreeBSD  10.0,  replacing  the  pkg_install  suite	of tools
     pkg_add(1), pkg_info(1)and pkg_create(1).

FreeBSD ports 15.1		 April 29, 2025 			  PKG(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pkg&sektion=7&manpath=FreeBSD+15.1-RELEASE+and+Ports>

home | help