# salt.modules.pkgin

Package support for pkgin based systems, inspired from freebsdpkg module

Important

If you feel that Salt should be using this module to manage packages on a minion, and it is using a different module (or gives an error similar to 'pkg.install' is not available), see here.

salt.modules.pkgin.available_version(*names, **kwargs)

  This function is an alias of `latest_version`.

  > Changed in version 2016.3.0.

  > Return the latest version of the named package available for upgrade or installation.

  > If the latest version of a given package is already installed, an empty string will be returned for that package.

  > CLI Example:

  >     salt '*' pkg.latest_version <package name>
  >     salt '*' pkg.latest_version <package1> <package2> ...

salt.modules.pkgin.file_dict(*packages, **kwargs)

  Changed in version 2016.3.0.

  List the files that belong to a package.

  CLI Examples:

      salt '*' pkg.file_dict nginx
      salt '*' pkg.file_dict nginx varnish

salt.modules.pkgin.file_list(package, **kwargs)

  List the files that belong to a package.

  CLI Examples:

      salt '*' pkg.file_list nginx

salt.modules.pkgin.install(name=None, refresh=False, fromrepo=None, pkgs=None, sources=None, **kwargs)

  Install the passed package

  name

    The name of the package to be installed.

  refresh

    Whether or not to refresh the package database before installing.

  fromrepo

    Specify a package repository to install from.

  Multiple Package Installation Options:

  pkgs

    A list of packages to install from a software repository. Must be passed as a python list.

    CLI Example:

        salt '*' pkg.install pkgs='["foo","bar"]'

  sources

    A list of packages to install. Must be passed as a list of dicts, with the keys being package names, and the values being the source URI or local path to the package.

    CLI Example:

        salt '*' pkg.install sources='[{"foo": "salt://foo.deb"},{"bar": "salt://bar.deb"}]'

  Return a dict containing the new package names and versions:

      {'<package>': {'old': '<old-version>',
                     'new': '<new-version>'}}

  CLI Example:

      salt '*' pkg.install <package name>

salt.modules.pkgin.latest_version(*names, **kwargs)

  Changed in version 2016.3.0.

  Return the latest version of the named package available for upgrade or installation.

  If the latest version of a given package is already installed, an empty string will be returned for that package.

  CLI Example:

      salt '*' pkg.latest_version <package name>
      salt '*' pkg.latest_version <package1> <package2> ...

salt.modules.pkgin.list_pkgs(versions_as_list=False, **kwargs)

  Changed in version 2016.3.0.

  List the packages currently installed as a dict:

      {'<package_name>': '<version>'}

  CLI Example:

      salt '*' pkg.list_pkgs

salt.modules.pkgin.list_upgrades(refresh=True, **kwargs)

  List all available package upgrades.

  New in version 2018.3.0.

  refresh

    Whether or not to refresh the package database before installing.

  CLI Example:

      salt '*' pkg.list_upgrades

salt.modules.pkgin.normalize_name(pkgs, **kwargs)

  Normalize package names

  Note

  Nothing special to do to normalize, just return the original. (We do need it to be compatible with the pkg_resource provider.)

salt.modules.pkgin.purge(name=None, pkgs=None, **kwargs)

  Package purges are not supported, this function is identical to `remove()`.

  name

    The name of the package to be deleted.

  Multiple Package Options:

  pkgs

    A list of packages to delete. Must be passed as a python list. The `name` parameter will be ignored if this option is passed.

  New in version 0.16.0.

  Returns a dict containing the changes.

  CLI Example:

      salt '*' pkg.purge <package name>
      salt '*' pkg.purge <package1>,<package2>,<package3>
      salt '*' pkg.purge pkgs='["foo", "bar"]'

salt.modules.pkgin.refresh_db(force=False, **kwargs)

  Use pkg update to get latest pkg_summary

  force

    Pass -f so that the cache is always refreshed.

    New in version 2018.3.0.

  CLI Example:

      salt '*' pkg.refresh_db

salt.modules.pkgin.remove(name=None, pkgs=None, **kwargs)
  name

    The name of the package to be deleted.

  Multiple Package Options:

  pkgs

    A list of packages to delete. Must be passed as a python list. The `name` parameter will be ignored if this option is passed.

  New in version 0.16.0.

  Returns a list containing the removed packages.

  CLI Example:

      salt '*' pkg.remove <package name>
      salt '*' pkg.remove <package1>,<package2>,<package3>
      salt '*' pkg.remove pkgs='["foo", "bar"]'

salt.modules.pkgin.search(pkg_name, **kwargs)

  Searches for an exact match using pkgin ^package$

  CLI Example:

      salt '*' pkg.search 'mysql-server'

salt.modules.pkgin.upgrade(refresh=True, pkgs=None, **kwargs)

  Run pkg upgrade, if pkgin used. Otherwise do nothing

  refresh

    Whether or not to refresh the package database before installing.

  Multiple Package Upgrade Options:

  pkgs

    A list of packages to upgrade from a software repository. Must be passed as a python list.

    CLI Example:

        salt '*' pkg.upgrade pkgs='["foo","bar"]'

  Returns a dictionary containing the changes:

      {'<package>':  {'old': '<old-version>',
                      'new': '<new-version>'}}

  CLI Example:

      salt '*' pkg.upgrade

salt.modules.pkgin.version(*names, **kwargs)

  Returns a string representing the package version or an empty string if not installed. If more than one package name is specified, a dict of name/version pairs is returned.

  CLI Example:

      salt '*' pkg.version <package name>
      salt '*' pkg.version <package1> <package2> <package3> ...