# Installation / Portability

KeePass 2.x installation, uninstallation, portability and updates.

- General information
- Installer program (KeePass-2.xx-Setup.exe file)
- Portable version (KeePass-2.xx.zip file)
- Running KeePass under Mono (Linux, MacOS, BSD, ...)
- Running KeePass under Wine (Linux, MacOS, BSD, ...)
- Migrating from KeePass 1.x to 2.x

## General information

When downloading KeePass, you have the choice between 3 different packages:

- KeePass-2.xx-Setup.exe: An installer program for Windows.
- KeePass-2.xx.zip: A KeePass ZIP package (portable version).
- KeePass-2.xx-Source.zip: The source code.

The installer and the portable version are described in detail below.

The source code package contains everything you need to compile KeePass. It includes the C#/C++ source code and header files, resource files, sources for building the installer, etc.

Updating KeePass:
When a new KeePass version has been released, you can update your existing KeePass installation, without losing any configuration settings. The steps are depending on which package you are using (installer or portable), see below.

Translations should also be updated when you install a new KeePass version. You can find the latest translation files here: KeePass Translations.

## Installer program (KeePass-2.xx-Setup.exe file)

The KeePass development team provides an installer, which copies KeePass to your hard disk, creates shortcuts in the start menu and associates KDBX files with KeePass, if desired.

Additionally, KeePass is automatically configured to store its settings in the application data directory of the current user. This way multiple users can use one KeePass installation without overwriting each other's settings (each user has his own configuration file). The setup program must run with administrative rights, however KeePass runs fine without administrative rights once it is installed.

Installation:
To install KeePass, run the `KeePass-2.xx-Setup.exe` file and follow the wizard.

Updating:
Run the `KeePass-2.xx-Setup.exe` file. You do not need to uninstall the old version first. Your configuration options will not be lost.

Uninstallation:
In order to uninstall KeePass, run the uninstallation program, which is accessible by a shortcut in the start menu folder of KeePass, or in the program section of the system control panel. If you also want to remove your configuration settings, you need to delete the configuration file in the application data directory of your user profile, see Configuration.

Silent Installation:
The KeePass installer `KeePass-2.xx-Setup.exe` supports command line switches for silent installation, i.e. the program gets installed without asking the user for target directory or association options. The default settings of the installer are used.

The `/SILENT` command line switch performs a silent installation and shows a status dialog during the setup process. No questions will be asked though.

The `/VERYSILENT` command line switch performs a silent installation and does not show a status dialog during the setup process.

Destination Path:
The installer allows to choose the destination path to which KeePass is installed. However, when the installer detects an existing KeePass installation, it assumes that the user wants to perform an upgrade and thus doesn't display the destination path selection page; the old version will be overwritten by the new version. If you want to move an existing KeePass installation to a different path, first uninstall the old version; the installer of the new version will then display the destination path selection page again.

Options/Components:
The installation options/components are explained in detail here: What do the 2.x installation options/components mean in detail?.

## Portable version (KeePass-2.xx.zip file)

The portable version can be carried around on portable devices (like USB sticks) and runs on any computer directly from the device, without any installation. It doesn't store anything on your system (in contrast to the setup package, see above). KeePass doesn't create any new registry keys and it doesn't create any configuration files in your Windows or application data directory of your user profile.

Make sure that KeePass has write access to its application directory. Otherwise, if it doesn't have, it'll attempt to store the configuration options (nothing security-relevant though) into the application data directory of the currently logged on user. For more about that, see this page: Configuration.

Installation:
KeePass does not need to be installed. Just download the ZIP package, unpack it with your favorite ZIP program and KeePass is ready to be used. Copy it to a location of your choice (for example onto your USB stick); no additional configuration or installation is needed.

Updating:
Download the latest portable package of KeePass, unpack it and copy all new files over the old ones. Your configuration settings will not be lost (the settings are stored in the KeePass.config.xml file, which won't be overwritten, because KeePass ZIP packages don't include a KeePass.config.xml file).

Uninstallation:
Simply delete the KeePass folder.

## Running KeePass under Mono (Linux, MacOS, BSD, ...)

In addition to Windows, KeePass 2.x runs under Mono, i.e. Linux, MacOS, BSD, etc.

Links to all supported packages can be found on the Downloads page.

- Debian/Ubuntu Linux:
  Install the keepass2 / KeePass 2.x for Debian/Ubuntu Linux package (e.g. using APT). A link to a page with more information about this package can be found on the downloads page.
- Fedora Linux:
  Install the keepass package (from the Fedora repository; link on the downloads page).
- OpenSUSE Linux:
  Install the keepass package (from the OpenSUSE Mono repository; link on the downloads page).
- Gentoo Linux:
  Install the keepass package (from the Gentoo Linux repository; link on the downloads page).
- Arch Linux:
  Install the keepass package (from the Arch Linux repository; link on the downloads page).
- MacOS:
  Install the KeePass 2.x for MacOS package (link on the downloads page).
- FreeBSD:
  Install the keepass package (from the FreeBSD ports tree or binary pkg repository; link on the downloads page).
- Other Unix-like systems:
  In order to run KeePass, follow these steps:
  1. Install Mono ≥ 2.6 (older versions will not work and are not supported). Depending on your platform, the packages to install are called `mono-stable`, `MonoFramework`, `mono-devel` or `mono-2.0-devel`; see the Mono project page, if you are unsure which packages to install.
  2. On some platforms, the Windows Forms implementation (System.Windows.Forms) is offered as a separate package. KeePass requires this package; so if you see one, install it, too.
  3. On some platforms, the Runtime namespace (System.Runtime) is offered as a separate package. KeePass requires this package; so if you see one, install it, too.
  4. If you want to use auto-type on Linux/MacOS/BSD/etc., you additionally need the `xdotool` package.
  5. Download the portable version of KeePass (ZIP package) and unpack it to a location of your choice.
  6. When being in the KeePass directory, run the command line "`mono KeePass.exe`". Alternatively, right-click onto the `KeePass.exe` file, choose "Open with Other Application" and type in `mono` as custom command.

  For the last step you might want to create a shortcut or shell script file with this command line (use an absolute path to `KeePass.exe`, if the shortcut / shell script file is in a different location).

  Global Auto-Type:
  In order to use global auto-type, you need to create an appropriate system-wide hot key. This only needs to be done manually once. KeePass performs global auto-type when it's invoked with the `--auto-type` command line option.

  Some examples how to create a system-wide hot key for global auto-type, for different operating systems:

  - KDE. On Linux systems with KDE, the hot key can be created in Computer → System Settings → Shortcuts and Gestures: in this dialog, go Edit → New → Global Shortcut → Command/URL, specify the shortcut on the Trigger tab and enter
    `mono /YourPathToKeePass/KeePass.exe --auto-type`
    into the Command/URL field on the Action tab.
  - Ubuntu Linux ≥ 11.04 (Unity/GNOME). Open the dialog Keyboard Shortcuts in the system preferences, click the Add button, enter `KeePass Auto-Type` as name and
    `mono /YourPathToKeePass/KeePass.exe --auto-type`
    as command, then click [Apply]. Click on Disabled of the newly created item (such that the text 'New shortcut...' appears), press ``Ctrl`+`Alt`+`A``, and close the dialog.
  - Ubuntu Linux ≤ 10.10 (GNOME).
    1. Press ``Alt`+`F2``, enter `gconf-editor` and click [OK].
    2. Navigate to `apps` → `metacity` → `keybinding_commands`.
    3. Double-click one of the `command_i` items, enter
       `mono /YourPathToKeePass/KeePass.exe --auto-type`
       and click [OK].
    4. Click the `global_keybindings` node on the left.
    5. Double-click the appropriate `run_command_i` item (for example, when you've used `command_5` in the previous steps, double-click `run_command_5` now) and specify the hot key of your choice. For example, to use ``Ctrl`+`Alt`+`A`` as hot key, you'd enter `<Control><Alt>a`.

  Important: for global auto-type, the version of the `xdotool` package must be 2.20100818.3004 or higher! If your distribution only offers an older version, you can download and install the latest version of the package manually, see the `xdotool` website.

  Auto-Type on Wayland:
  If you want to use auto-type on a system with a Wayland compositor, see the Auto-Type on Wayland page.

  AES-KDF:
  For fast key transformations using AES-KDF, make sure that the `libgcrypt` library is installed.

  Argon2:
  For fast key transformations using Argon2, make sure that the `libargon2` library is installed.

  Plugins:
  On some Linux systems, the `mono-complete` package may be required for plugins to work properly.

  TLS 1.2:
  For TLS 1.2 support, Mono 4.8.0 or higher (or .NET Framework 4.5 or higher) is required.

  Fonts:
  On some Linux systems, the `ttf-mscorefonts-installer` package may be required.

## Running KeePass under Wine (Linux, MacOS, BSD, ...)

Although you can run KeePass 2.x more or less natively on Unix-like systems using Mono (see above), the user interface does not always look pretty. Some users therefore prefer running KeePass 2.x under Wine.

In order to run KeePass 2.x under Wine, follow these steps:

1. Make sure that Wine is installed. Typically the package to install is called `wine`.
2. Make sure that .NET Framework 4.5 or higher is installed in Wine, see WineHQ AppDB: .NET Framework.
   For installing .NET Framework 4.5, `winetricks` can be used, see WineHQ AppDB: .NET Framework 4.5.
3. Download the latest portable package of KeePass 2.x (ZIP file) and unpack it into some directory of your choice.
4. Run `wine KeePass.exe`.

Theme. By default, Wine uses the classic Windows theme. If you prefer some other theme, you can install it in 'Applications' → 'Wine' → 'Configure Wine' → tab 'Desktop Integration'. Links to themes can for instance be found on Wikipedia: Windows XP visual styles.

Auto-Type. Wine currently does not implement all Windows API functions required for auto-type, i.e. auto-type does not work when running KeePass under Wine.

## Migrating from KeePass 1.x to 2.x

In order to migrate from KeePass 1.x to 2.x, follow these steps:

1. Install KeePass 2.x.
   If you're using the installer, make sure that the component 'Native Support Library' is being installed (by default this component is enabled).
2. Run KeePass 2.x and create a new KDBX database file (via 'File' → 'New').
3. Import your old KDB database file into your new KDBX database file (via 'File' → 'Import', file format 'KeePass KDB (1.x)').

If everything works fine, you can delete your old KeePass 1.x installation. The old KDB database file also isn't required anymore, but you may want to keep it as a backup.