mpm

## Name

mpm — MiKTeX package manager

## Synopsis

`mpm` [`option`...]

## Description

MPM (MiKTeX Package Manager) is used to install packages from a MiKTeX package repository.

MPM starts in windowed mode, if you do not specify any command-line options.

## User mode vs. administrator mode

This utility can be run in two modes:

User mode (default)

  MPM operates on the user installation directory (usually `%LOCALAPPDATA%\Programs\MiKTeX 2.9`).

Administrator mode

  MPM operates on the system-wide installation directory (usually `C:\Program Files\MiKTeX 2.9`), assuming that the MiKTeX setup is shared by all users. MPM must be run with administrator privileges.

By default, MPM runs in user mode. You can turn on administrator mode with the `--admin` option. For example, if you want to install a package for all users, you invoke MPM as follows:

    > mpm --admin --install=a0poster

## Options

`--admin`

  Run in administrator mode:

  - Operate on the system-wide MiKTeX configuration data store.

  - Install packages for all users.

  Using this option requires a shared MiKTeX setup, i.e., MiKTeX must have been set up for all users. The program must be run with administrator privileges.

`--find-updates`

  Check the package repository for updates, then print the list of updateable packages.

`--find-upgrades`

  Search for packages that must be installed in order to complete the MiKTeX setup (can be used in conjunction with `--package-level`). Then print the package list.

`--help`

  Give help and exit.

`--hhelp`

  This option is only available on Windows systems: show the manual page in an HTML Help window and exit when the window is closed.

`--import=`package``

  Import the specified package from another MiKTeX installation. The root directory must be specified via `--repository=`dir``.

`--import-all`

  Import all packages from another MiKTeX installation. The root directory must be specified via `--repository=`dir``.

`--install=`packagelist``

  Install the specified packages.

`--install=@`listfile``

  Install packages. Package names are read from `listfile`.

`--list`

  List the contents of the package database: for each package, print the installation status, the number of files, the size, and the name.

`--list-package-names`

  List the package names.

`--list-repositories`

  Download the list of known package repository URLs, then print the list.

`--max-count=`num``

  Stop after `num` packages.

`--package-level=`level``

  Use the specified package level (to be used in conjunction with `--find-upgrades` and `--upgrade`).

  `level` must be one of:

  `essential`

    Includes mandatory packages.

  `basic`

    Includes popular packages.

  `complete`

    Includes all available packages.

`--pick-repository-url`

  Pick up a suitable URL from the package repository list and print it.

`--print-package-info=`package``

  Print detailed information about the specified package.

`--quiet`

  Suppress all output, except errors.

`--require=`packagelist``

  Install packages which are not already installed.

`--require=@`listfile``

  Install packages which are not already installed. Package names are read from `listfile`.

`--repository=`location``

  Use the specified location as the package repository. The location can be either a fully qualified path name (a local package repository) or an URL (a remote package repository). You can use the `--list-repositories` to retrieve a list of working package repository URLs.

`--repository-release-state=`state``

  Select the release state of the remote package repository. The release state is relevant for finding appropriate package repositories (`--list-repositories`, `--pick-repository-url`). The release state must be one of `stable` or `next`.

`--reverse`

  Reverse the result of comparisons (when listing packages).

`--set-repository=`location``

  Store the location of the default package repository in the MiKTeX configuration data store. The location can be either a fully qualified path name (a local package repository) or an URL (a remote package repository).

`--trace[=`tracestreams`]`

  Enable trace messages. The `tracestreams` argument, if specified, is a comma-separated list of trace stream names (Chapter 9, Trace Streams).

`--uninstall=`package``

  Uninstall the specified package.

`--update`

  Update all installed packages.

`--update=`packagelist``

  Update the specified packages.

`--update=@`listfile``

  Update packages. Package names are read from `listfile`.

`--update-db`

  Synchronize the local package database with the package repository.

`--upgrade`

  Upgrade the MiKTeX setup to a package level (can be used in conjunction with `--package-level`). This will install all the missing packages.

`--verify`

  Verify the integrity of all installed packages.

`--verify=`packagelist``

  Verify the integrity of the specified packages.

`--verify=@`listfile``

  Verify the integrity packages. Package names are read from `listfile`.

`--verbose`

  Turn on verbose output mode.

`--version`

  Show version information and exit.

## Package Database

All package information is retrieved from the package database, which must have been properly installed by running MPM with the `--update-db` option.

## Examples

Print the list of known package repository URLs:

    > mpm --list-repositories

Retrieve the package database files from the server `some.server` (assuming this a registered URL):

    > mpm --repository=ftp://some.server/miktex/packages/ \
      --verbose --update-db

Print information about package a0poster:

    > mpm --print-package-info a0poster

Install package a0poster:

    > mpm --verbose --install a0poster

Update all installed packages:

    > mpm --verbose --update

Print the list of installed packages:

    > mpm --list | grep ^i

Upgrade the MiKTeX setup to the highest level:

    > mpm --verbose --package-level=complete --upgrade

## Environment

`MIKTEX_REPOSITORY`

  Location of the default package repository. This can be either a fully qualified path name (a local package repository) or an URL (a remote package repository).

`MIKTEX_TRACE`

  Comma-separated list of trace stream names (see Chapter 9, Trace Streams). If this variable is set, then MiKTeX programs will write trace messages into the configured log sink.

`http_proxy`

  The proxy server to be used for HTTP.

`FTP_PROXY`

  The proxy server to be used for .

`ALL_PROXY`

  The proxy server to be used, if no protocol-specific proxy is set.

`NO_PROXY`

  Comma-separated list of host names that should not go through any proxy.