<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<refentry id="flatpak-install">

    <refentryinfo>
        <title>flatpak install</title>
        <productname>flatpak</productname>

        <authorgroup>
            <author>
                <contrib>Developer</contrib>
                <firstname>Alexander</firstname>
                <surname>Larsson</surname>
                <email>alexl@redhat.com</email>
            </author>
        </authorgroup>
    </refentryinfo>

    <refmeta>
        <refentrytitle>flatpak install</refentrytitle>
        <manvolnum>1</manvolnum>
    </refmeta>

    <refnamediv>
        <refname>flatpak-install</refname>
        <refpurpose>Install an application or runtime</refpurpose>
    </refnamediv>

    <refsynopsisdiv>
            <cmdsynopsis>
                <command>flatpak install</command>
                <arg choice="opt" rep="repeat">OPTION</arg>
                <arg choice="opt">REMOTE</arg>
                <arg choice="plain" rep="repeat">REF</arg>
            </cmdsynopsis>
            <cmdsynopsis>
                <command>flatpak install</command>
                <arg choice="opt" rep="repeat">OPTION</arg>
                <arg choice="opt">--from|--bundle</arg>
                <arg choice="plain">LOCATION</arg>
            </cmdsynopsis>
    </refsynopsisdiv>

    <refsect1>
        <title>Description</title>

        <para>
          Installs an application or runtime. The primary way to
          install is to specify a <arg choice="plain">REMOTE</arg>
          name as the source and one ore more <arg choice="plain">REF</arg>s to specify the
          application or runtime to install. If <arg choice="plain">REMOTE</arg> is omitted,
          the configured remotes are searched for the first <arg choice="plain">REF</arg>
          and the user is asked to confirm the resulting choice.
        </para>
        <para>
          Each <arg choice="plain">REF</arg> argument is a full or partial identifier in the
          flatpak ref format, which looks like "(app|runtime)/ID/ARCH/BRANCH".
          All elements except ID are optional and can be left out, including the slashes,
          so most of the time you need only specify ID. Any part left out will be matched
          against what is in the remote, and if there are multiple matches you will be
          prompted to choose one of them. You will also be prompted with choices if
          <arg choice="plain">REF</arg> doesn't match anything in the remote exactly but is
          similar to one or more refs in the remote (e.g. "devhelp" is similar to
          "org.gnome.Devhelp").
        </para>
        <para>
          By default this looks for both apps and runtimes with the given
          <arg choice="plain">REF</arg> in the specified <arg choice="plain">REMOTE</arg>,
          but you can limit this by using the <option>--app</option> or <option>--runtime</option>
          option, or by supplying the initial element in the <arg choice="plain">REF</arg>.
        </para>
        <para>
          If <arg choice="plain">REMOTE</arg> is a uri or a path (absolute or relative starting
          with ./) to a local repository, then that repository will be used as the source, and
          a temporary remote will be created for the lifetime of the <arg choice="plain">REF</arg>.
        </para>
        <para>
          If the specified <arg choice="plain">REMOTE</arg> has a collection ID configured on it,
          flatpak will search mounted filesystems such as USB drives as well as Avahi services
          advertised on the local network for the needed refs, in order to support
          offline updates. See <citerefentry><refentrytitle>ostree-find-remotes</refentrytitle><manvolnum>1</manvolnum></citerefentry>
          for more information.
        </para>
        <para>
          The alternative form of the command (with <option>--from</option> or
          <option>--bundle</option>) allows to install directly from a source such as a
          <filename>.flatpak</filename> single-file bundle or a <filename>.flatpakref</filename>
          application description. The options are optional if the first argument has the expected
          filename extension.
        </para>
        <para>
          Note that flatpak allows to have multiple branches of an application and runtimes
          installed and used at the same time. However, only one version of an application
          can be current, meaning its exported files (for instance desktop files and icons)
          are visible to the host. The last installed version is made current by default, but
          this can manually changed with flatpak make-current.
        </para>
        <para>
          Unless overridden with the <option>--user</option> or the <option>--installation</option>
          option, this command installs the application or runtime in the default system-wide
          installation.
        </para>

    </refsect1>

    <refsect1>
        <title>Options</title>

        <para>The following options are understood:</para>

        <variablelist>
            <varlistentry>
                <term><option>-h</option></term>
                <term><option>--help</option></term>

                <listitem><para>
                    Show help options and exit.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--bundle</option></term>

                <listitem><para>
                  Treat <arg choice="plain">LOCATION</arg> as a single-bundle file.
                  This is assumed if the argument ends with <filename>.flatpak</filename>.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--from</option></term>

                <listitem><para>
                  Treat <arg choice="plain">LOCATION</arg> as an application description file.
                  This is assumed if the argument ends with <filename>.flatpakref</filename>.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--reinstall</option></term>

                <listitem><para>
                  Uninstall first if already installed.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--user</option></term>

                <listitem><para>
                    Install the application or runtime in a per-user installation.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--system</option></term>

                <listitem><para>
                    Install the application or runtime in the default system-wide installation.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--installation=NAME</option></term>

                <listitem><para>
                    Install the application or runtime in a system-wide installation
                    specified by <arg choice="plain">NAME</arg> among those defined in
                    <filename>/etc/flatpak/installations.d/</filename>. Using
                    <option>--installation=default</option> is equivalent to using
                    <option>--system</option>.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--arch=ARCH</option></term>

                <listitem><para>
                    The default architecture to install for, if not given explicitly in
                    the <arg choice="plain">REF</arg>. See <command>flatpak --supported-arches</command>
                    for architectures supported by the host.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--subpath=PATH</option></term>

                <listitem><para>
                  Install only a subpath of <arg choice="plain">REF</arg>. This is mainly used to
                  install a subset of locales. This can be added multiple times to install multiple
                  subpaths.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--gpg-file=FILE</option></term>

                <listitem><para>
                  Check bundle signatures with GPG key from <arg choice="plain">FILE</arg> (- for stdin).
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--no-deploy</option></term>

                <listitem><para>
                    Download the latest version, but don't deploy it.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--no-pull</option></term>

                <listitem><para>
                    Don't download the latest version, deploy whatever is locally available.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--no-related</option></term>

                <listitem><para>
                    Don't download related extensions, such as the locale data.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--no-deps</option></term>

                <listitem><para>
                    Don't verify runtime dependencies when installing.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--or-update</option></term>
                <listitem><para>
                  Normally install just ignores things that are already installed (printing a warning), but if
                  --or-update is specified it silently turns it into an update operation instead.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--app</option></term>

                <listitem><para>
                    Assume that all <arg choice="plain">REF</arg>s are apps if not explicitly specified.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--runtime</option></term>
                <listitem><para>
                    Assume that all <arg choice="plain">REF</arg>s are runtimes if not explicitly specified.
                </para></listitem>
            </varlistentry>
 
            <varlistentry>
                <term><option>--sideload-repo=PATH</option></term>

                <listitem><para>
                  Adds an extra local ostree repo as source for installation. This is equivalent
                  to using the sideload-repos directories (see flatpak(1)), but can be done on a
                  per-command basis. Any path added here is used in addition to ones in those
                  directories.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>-y</option></term>
                <term><option>--assumeyes</option></term>
                <listitem><para>
                    Automatically answer yes to all questions (or pick the most prioritized answer). This is useful for automation.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--noninteractive</option></term>
                <listitem><para>
                    Produce minimal output and avoid most questions. This is suitable for use in
                    non-interactive situations, e.g. in a build script.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>-v</option></term>
                <term><option>--verbose</option></term>

                <listitem><para>
                    Print debug information during command processing.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--ostree-verbose</option></term>

                <listitem><para>
                    Print OSTree debug information during command processing.
                </para></listitem>
            </varlistentry>
        </variablelist>
    </refsect1>

    <refsect1>
        <title>Examples</title>

        <para>
            <command>$ flatpak install gedit</command>
        </para>
        <para>
            <command>$ flatpak install flathub org.gnome.gedit</command>
        </para>
        <para>
            <command>$ flatpak --installation=default install flathub org.gnome.gedit</command>
        </para>
        <para>
            <command>$ flatpak --user install flathub org.gnome.gedit//3.30</command>
        </para>
        <para>
            <command>$ flatpak --user install https://flathub.org/repo/appstream/org.gnome.gedit.flatpakref</command>
        </para>
        <para>
            <command>$ flatpak --system install org.gnome.gedit.flatpakref</command>
        </para>

    </refsect1>

    <refsect1>
        <title>See also</title>

        <para>
            <citerefentry><refentrytitle>flatpak</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>flatpak-update</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>flatpak-list</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>flatpak-build-bundle</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>flatpak-flatpakref</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>flatpak-make-current</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>ostree-find-remotes</refentrytitle><manvolnum>1</manvolnum></citerefentry>
        </para>

    </refsect1>

</refentry>
