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

FreeBSD Manual Pages

  
 
  

home | help
PKG(8)			    System Manager's Manual			PKG(8)

NAME
       pkg, pkg-static -- manipulate packages

SYNOPSIS
       pkg	[-v]	  [-d]	    [-l]      [-N]     [-o     <option=value>]
	   [-j <jail name or id> | -c  <chroot path>  |	 -r  <root directory>]
	   [-C <configuration file>] [-R <repository configuration directory>]
	   [-4 | -6] <command> <flags>

       pkg  [--version]	 [--debug]  [--list]  [-N]  [--option  <option=value>]
	   [--jail<jail	name or	id--chroot<chroot path--rootdir<root directory>]
	   [--config					 <configuration	file>]
	   [--repo-conf-dir <repository	configuration directory>]  [-4	|  -6]
	   <command> <flags>

DESCRIPTION
       pkg  provides  an  interface  for  manipulating	packages: registering,
       adding, removing	and upgrading packages.	 pkg-static  is	 a  statically
       linked  variant of pkg typically	only used for the initial installation
       of pkg.	There are some differences in functionality.  See  pkg.conf(5)
       for details.

OPTIONS
       The following options are supported by pkg:

       -v, --version
	       Display	the  current  version  of pkg.	Specify	twice (-vv) to
	       also show pkg.conf(5) configuration.

       -d, --debug
	       Show debug information.

       -l, --list
	       List all	the available command names, and exit without perform-
	       ing any other action.  The -v option takes precedence  over  -l
	       but -l will override any	other command line arguments.

       -o <option=value>, --option <option=value>
	       Set  configuration  option  for pkg from	the command line.  Op-
	       tions that are set from the environment are redefined.	It  is
	       permitted to specify this option	multiple times.

       -N      Activation  status  check mode.	Prevent	pkg from automatically
	       creating	  or   initializing    the    SQLite	database    in
	       /var/db/pkg/local.sqlite	if it does not already exist.

	       Prevent pkg from	performing any actions if no packages are cur-
	       rently  installed,  on  the  basis that a correctly initialised
	       system using pkg	will always have at least the pkg package  it-
	       self registered.

	       If used without any other arguments, pkg	-N will	run the	sanity
	       tests  and  if successful print out a short message showing how
	       many packages are currently installed.  The exit	status	should
	       be  a  reliable indication of whether a system is configured to
	       use pkg as its package management system	or not.

	       Example usage:

		       if pkg -N >/dev/null 2>&1; then
			 # pkgng-specifics
		       else
			 # pkg_install-specifics
		       fi

	       The -N flag was first released in the /usr/sbin/pkg  bootstrap-
	       per  in	FreeBSD	8.4, but was missing from FreeBSD 9.1.	It may
	       not be enough to	just call pkg -N, as the bootstrapper  may  be
	       invoked,	 or  an	error returned from pkg.  The following	script
	       is the safest way to detect if pkg is installed and activated:

		       if TMPDIR=/dev/null ASSUME_ALWAYS_YES=yes \
			    PACKAGESITE=file:///nonexistent \
			    pkg	info -x	'pkg(-devel)?$'	>/dev/null 2>&1; then
			 # pkgng-specifics
		       else
			 # pkg_install-specifics
		       fi

       -j <jail	name or	id>, --jail <jail name or id>
	       pkg will	execute	in the given <jail name	 or  id>,  where  name
	       matches	"jls  name" and	id matches "jls	jid".  See jail(8) and
	       jls(8).

       -c <chroot path>, --chroot <chroot path>
	       pkg will	chroot in the <chroot path> environment.

       -r <root	directory>, --rootdir <root directory>
	       pkg will	 install  all  packages	 within	 the  specified	 <root
	       directory>.

       -C <configuration file>,	--config <configuration	file>
	       pkg will	use the	specified file as a configuration file.

       -R <repo	conf dir>, --repo-conf-dir <repo conf dir>
	       pkg  will search	the directory for per-repository configuration
	       files.  This overrides any value	of REPOS_DIR specified in  the
	       main configuration file.

       -4      pkg will	use IPv4 for fetching repository and packages.

       -6      pkg will	use IPv6 for fetching repository and packages.

COMMANDS
       The  following  commands	 (or their unambiguous abbreviations) are sup-
       ported by pkg:

       help command
	       Display usage information of the	specified command.

       add     Install a package from either a local source or a remote	one.

	       When installing from remote source you need to specify the pro-
	       tocol to	use when fetching the package.

	       Currently supported protocols are FTP, HTTP and HTTPS.

       annotate
	       Add, modify or delete tag-value style annotations on packages.

       alias   List the	command	line aliases.

       audit   Audit installed packages	against	known vulnerabilities.

       autoremove
	       Delete packages which were automatically	installed as dependen-
	       cies and	are not	required any more.

       bootstrap
	       This is for compatibility with the pkg(7) bootstrapper.	If pkg
	       is already installed, nothing is	done.

	       If invoked with the -f flag an attempt will be  made  to	 rein-
	       stall pkg from remote repository.

       check   Sanity checks installed packages.

       clean   Clean the local cache of	fetched	remote packages.

       create  Create a	package.

       delete  Delete a	package	from the database and the system.

       fetch   Fetch packages from a remote repository.

       info    Display information about installed packages and	package	files.

       install
	       Install a package from a	package	repository or a	local archive.
	       If  a  package  is  found in more than one repository, then the
	       first one is used.  If not local, then  download	 is  attempted
	       from   each  repository,	 until	the  package  is  successfully
	       fetched.

       lock    Prevent modification or deletion	of a package.

       plugins
	       List the	available plugins.

       query   Query information about installed packages and package files.

       register
	       Register	a package in the database.

       repo    Create a	local package repository for remote usage.

       rquery  Query information for remote repositories.

       search  Search for the given pattern in the  remote  package  reposito-
	       ries.

       set     Modify information in the installed database.

       shell   Open  a	SQLite shell to	the local or remote database.  Extreme
	       care should be taken when using this command.

       shlib   Displays	which packages link to a specific shared library.

       stats   Display package database	statistics.

       unlock  Unlocks packages, allowing them to be modified or deleted.

       update  Update  the  available  remote  repositories   as   listed   in
	       pkg.conf(5).

       updating
	       Display UPDATING	entries	of installed packages.

       upgrade
	       Upgrade a package to a newer version.

       version
	       Summarize installed versions of packages.

       which   Query  the  database  for  package(s) that installed a specific
	       file.

ENVIRONMENT
       All configuration options from pkg.conf(5) can be passed	as environment
       variables.

       Extra environment variables are:

       INSTALL_AS_USER	Allow all manipulation to be done as  a	 regular  user
			instead	 of  checking for root credentials when	appro-
			priate.
			It is expected that the	user will  ensure  that	 every
			file and directory manipulated by pkg are readable (or
			writable where appropriate) by the user.

FILES
       See pkg.conf(5).

EXAMPLES
       Search for a package:
	     $ pkg search perl

       Install a package:
	     Installing	 must  specify a unique	origin or version otherwise it
	     will try installing all matches.

	     % pkg install perl-5.14

       List installed packages:
	     $ pkg info

       Upgrade from remote repository:
	     % pkg upgrade

       Change the origin for an	installed package:
	     % pkg set -o lang/perl5.12:lang/perl5.14
	     % pkg install -Rf lang/perl5.14

       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-5.14

       Remove unneeded dependencies:
	     % pkg autoremove

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

       Change  a  package  from	 non-automatic	to  automatic, which will make
       autoremove allow	it be removed once nothing depends on it:
	     % pkg set -A 1 perl-5.14

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

       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

       Show the	pkg-message of a package:
	     # pkg info	-D perl-5.14

       Restore a backup	database:
	     % rm /var/db/pkg/local.sqlite
	     % xzcat /var/backups/pkg.sql.xz | pkg shell

SEE ALSO
       pkg_create(3),	pkg_printf(3),	  pkg_repo_create(3),	 pkg_repos(3),
       pkg-keywords(5),	 pkg-lua-script(5),  pkg-repository(5),	pkg-script(5),
       pkg-triggers(5),	     pkg.conf(5),      pkg-add(8),	 pkg-alias(8),
       pkg-annotate(8),	   pkg-audit(8),    pkg-autoremove(8),	 pkg-check(8),
       pkg-clean(8),	 pkg-config(8),	    pkg-create(8),	pkg-delete(8),
       pkg-fetch(8),  pkg-info(8),  pkg-install(8),  pkg-key(8),  pkg-lock(8),
       pkg-query(8),   pkg-register(8),	  pkg-repo(8),	  pkg-repositories(8),
       pkg-rquery(8),  pkg-search(8),  pkg-set(8), pkg-shell(8), pkg-shlib(8),
       pkg-ssh(8),     pkg-stats(8),	  pkg-triggers(8),	pkg-update(8),
       pkg-updating(8),	pkg-upgrade(8),	pkg-version(8),	pkg-which(8)

       To build	your own package set for one or	multiple servers see

       FreeBSD pkg mirror: https://pkg.freebsd.org
	 Your closest pkg mirror based on MaxMind GeoLite geo-DNS.

HISTORY
       The pkg command first appeared in FreeBSD 9.1.

AUTHORS	AND CONTRIBUTORS
       Baptiste	     Daroussin	    <bapt@FreeBSD.org>,	    Julien     Laffaye
       <jlaffaye@FreeBSD.org>,	Philippe   Pepiot   <phil@philpep.org>,	  Will
       Andrews	<will@FreeBSD.org>, Marin Atanasov Nikolov <dnaeon@gmail.com>,
       Yuri	 Pankov	     <yuri.pankov@gmail.com>,	   Alberto	 Villa
       <avilla@FreeBSD.org>,  Brad  Davis  <brd@FreeBSD.org>,  Matthew	Seaman
       <matthew@FreeBSD.org>, Bryan Drewery  <bryan@shatow.net>,  Eitan	 Adler
       <eadler@FreeBSD.org>,  Romain  Tartiere	<romain@FreeBSD.org>, Vsevolod
       Stakhov <vsevolod@FreeBSD.org>, Alexandre Perrin	<alex@kaworu.ch>

BUGS
       See the issue tracker at	https://github.com/freebsd/pkg/issues.

       Please direct questions and issues to the pkg@FreeBSD.org mailing list.

FreeBSD	15.0			October	6, 2023				PKG(8)

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

home | help