<?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-update">

    <refentryinfo>
        <title>flatpak update</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 update</refentrytitle>
        <manvolnum>1</manvolnum>
    </refmeta>

    <refnamediv>
        <refname>flatpak-update</refname>
        <refpurpose>Update an application or runtime</refpurpose>
    </refnamediv>

    <refsynopsisdiv>
            <cmdsynopsis>
                <command>flatpak update</command>
                <arg choice="opt" rep="repeat">OPTION</arg>
                <arg choice="opt" rep="repeat">REF</arg>
            </cmdsynopsis>
            <cmdsynopsis>
                <command>flatpak update</command>
                <arg choice="opt" rep="repeat">OPTION</arg>
                <arg choice="plain">--appstream</arg>
                <arg choice="opt">REMOTE</arg>
            </cmdsynopsis>
    </refsynopsisdiv>

    <refsect1>
        <title>Description</title>

        <para>
            Updates applications and runtimes. <arg choice="plain">REF</arg> is a reference to the
            application or runtime to update. If no <arg choice="plain">REF</arg> is given, everything
            is updated, as well as appstream info for all remotes.
        </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 installed, and if there are multiple matches an error message
            will list the alternatives.
        </para>
        <para>
            By default this looks for both apps and runtimes with the given <arg choice="plain">REF</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>
            Normally, this command updates the application to the tip
            of its branch. But it is possible to check out another commit,
            with the --commit option.
        </para>
        <para>
            If the configured remote for a ref being updated 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>
            Note that updating a runtime is different from installing
            a different branch, and runtime updates are expected to keep
            strict compatibility. If an application update does cause
            a problem, it is possible to go back to the previous
            version, with the <option>--commit</option> option.
        </para>
        <para>
            Unless overridden with the <option>--user</option>, <option>--system</option> or <option>--installation</option> option, this command updates
            any matching refs in the standard system-wide installation and the per-user one.
        </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>--user</option></term>

                <listitem><para>
                    Update a per-user installation.
                </para></listitem>
            </varlistentry>

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

                <listitem><para>
                    Update the default system-wide installation.
                </para></listitem>
            </varlistentry>

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

                <listitem><para>
                    Updates 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 architecture to update for. 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 the ref. This is mainly used to install a subset of locales.
                  This can be added multiple times to install multiple subpaths.
                  If this is not specified the subpaths specified at install time are reused.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--commit=COMMIT</option></term>

                <listitem><para>
                    Update to this commit, instead of the tip of the branch. You can find commits
                    using <command>flatpak remote-info --log REMOTE REF</command>.
                </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 update or install runtime dependencies when installing.
                </para></listitem>
            </varlistentry>

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

                <listitem><para>
                    Only look for an app with the given name.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--appstream</option></term>

                <listitem><para>
                    Update appstream for <arg choice="plain">REMOTE</arg>, or all remotes if no remote is specified.
                </para></listitem>
            </varlistentry>

            <varlistentry>
                <term><option>--runtime</option></term>

                <listitem><para>
                    Only look for a runtime with the given name.
                </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>--force-remove</option></term>
                <listitem><para>
                    Remove old files even if they're in use by a running application.
                </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 --user update org.gnome.gedit</command>
        </para>

    </refsect1>

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

        <para>
            <citerefentry><refentrytitle>flatpak</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>flatpak-install</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>flatpak-list</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
            <citerefentry><refentrytitle>ostree-find-remotes</refentrytitle><manvolnum>1</manvolnum></citerefentry>
        </para>

    </refsect1>

</refentry>
