[release-notes] dnf

Pete Travis immanetize at fedoraproject.org
Thu Apr 9 06:38:08 UTC 2015


commit 0c2a8675e650ff1c6affad9732e11a45c7bc240f
Author: Pete Travis <immanetize at fedoraproject.org>
Date:   Thu Apr 9 00:38:58 2015 -0600

    dnf

 en-US/Server_Configuration_Tools.xml |  104 +++++++++++++++++++++++++++++++++-
 1 files changed, 103 insertions(+), 1 deletions(-)
---
diff --git a/en-US/Server_Configuration_Tools.xml b/en-US/Server_Configuration_Tools.xml
index b623955..dfccb78 100644
--- a/en-US/Server_Configuration_Tools.xml
+++ b/en-US/Server_Configuration_Tools.xml
@@ -7,5 +7,107 @@
 <section>
   <title>Server Configuration Tools</title>
   <para />
-</section>
+  <section id="dnf" >
+    <title>Yum replaced by DNF</title>
+    <para>
+      The <package>yum</package> package manager has been replaced in Fedora 22 by its successor, <package>dnf</package>. The yum fork has been available in Fedora for testing since Fedora 18, and is now the default command line package manager.
+    </para>
+    <para>
+      Most dnf commands use directives that are familiar to yum users, and it uses the same RPM package repositories. Behind the scenes, dnf uses an improved dependency solver, <package>hawkey</package>, along with  <package>librepo</package> for repository operations and <package>libcomps</package> for package groups.
+    </para>
+    <para>
+      The <command>/usr/bin/yum</command> command will redirect to <command>/usr/bin/dnf</command> and print a warning about the redirection.  The legacy yum package manager can be manually installed; the legacy command line utility has been renamed to <command>yum-deprecated</command>.
+    </para>
+    <para>
+      Read more about using dnf!  Consult the upstream documentation at <ulink url="http://dnf.readthedocs.org/en/latest/index.html" />.  Extra plugins are documented at <ulink url="https://rpm-software-management.github.io/dnf-plugins-extras/index.htm" />
+    </para> 
+    <para>
+      The behavior of dnf differs from yum in some areas:
+    </para>
+    <section id="dnf_skip-broken_best">
+      <title>Updates that don't work are skipped</title>
+      <para>
+        If a portion of a transaction is not viable, dnf will automatically exclude it and transparently continue with the portions that will work. For example, if a package has unmet dependencies during a <command>dnf update</command> action, that package will not be updated, but others will. This is similar to yum's <option>--skip-broken</option> directive, but evaluates the impact of the problem against the entire transaction. Because this is the default behavior, there is no <option>--skip-broken</option> switch for dnf.
+      </para>
+      <para>
+        To reveal details about a problematic package direction, you can use the <option>--best</option> option. <command>dnf update --best</command> will force dnf to resolve the transaction using the latest versions of involved packages, and report any problems instead of skipping them.  This is equivalent to yum's behavior without <option>--skip-broken</option>.
+      </para>
+    </section>
 
+    <section id="dnf_repo-disable">
+      <title>Repos that don't work are skipped</title>
+      <para>
+        If a configured and enabled repository does not respond, <package>dnf</package> will skip it and continue the transaction with the available repos. This differs from yum, which would immediately stop if a repository was not available.
+      </para>
+    </section>
+    <section id="dnf_update-upgrade">
+      <title>Update and Upgrade are the same</title>
+      <para>
+        The commands <command>dnf update</command> and <command>dnf upgrade</command> are equivalent. This differs from yum, where <command>yum upgrade</command> would have the same effect as <command>yum update --obsoletes</command>, and take obsolete packages into account.
+        <!-- what does dnf do with obsoletes? -->
+      </para>
+    </section>
+    <section id="dnf_upgrade-requirements">
+      <title>Dependencies are not upgraded on package installation</title>
+      <para>
+        When installing a new package, previously installed dependencies will not be upgraded. Yum offered an option for this behavior, <option>upgrade_requirements_on_install</option>. To upgrade with dnf, use <command>dnf update</command>.
+      </para>
+      <para>
+        If dnf reports that dependencies on installed packages are unmet while installing a new package, update the dependent packages before trying again.
+      </para>
+    </section>
+    <section id='dnf_clean-on-remove'>
+      <title>Clean on remove</title>
+      <para>
+        When removing a package, dnf will automatically remove any dependent packages that were not explicitly installed by the user. If a package was independently installed, it won't be uninstalled this way.  Only packages installed as dependencies are removed.
+      </para>
+      <para>
+        This behavior is configured by the <option>clean_requirements_on_remove</option> option in <filename>/etc/dnf/dnf.conf</filename>
+      </para>
+    </section>
+    <section id="dnf_cache-refresh">
+      <title>Repo cache refresh schedule</title>
+      <para>
+        By default, dnf will check for updates in configured repositories hourly, starting ten minutes after the system boots. The action is controlled by a systemd timer unit, <filename>/usr/lib/systemd/system/dnf-makecache.timer</filename>.
+      </para>
+      <para>
+        To adjust this, copy the timer file to <filename>/etc/systemd/system/dnf-makecache.timer</filename> and edit it.
+      </para>
+      <para>
+        Alternatively, setting the <option>metadata_timer_sync</option> in <filename>/etc/dnf/dnf.conf</filename> to a number of seconds configures the minimum number of seconds between makecache operations.  If the timer has not expired, <command>dnf makecache</command> will exit immediately.
+      </para>
+      <para>
+        dnf will also honor the metadata_expire option set in individual repo configs, and refresh repo metadata at runtime if it is too old. This option is described in <command>man yum.conf</command>.
+      </para>
+    </section>
+    <section id="dnf_repository-packages" >
+      <title>Repository Actions</title>
+      <para>
+        The <literal>repository-packages</literal> directive can be used to search for or get info about packages in a specific repository, list installed packages from that repository, and more. This simplifies operations that would have required use of <option>--excluderepo</option> and <option>--includerepo</option> options with yum, and is especially useful for managing similar packages from different repositories.
+      </para>
+      <!-- example? -->
+    </section>
+    <section id="dnf_provies-requires">
+      <title>Listing dependencies</title>
+      <para>
+        To find out what package supplies a particular provide, use the <command>dnf provides <replaceable>foo</replaceable></command> command. This replaces <command>yum resolvedep <replaceable>foo</replaceable></command>.
+      </para>
+      <para>
+        To list the dependencies of a package, use <command>dnf repoquery --requires <replaceable>foo</replaceable></command>. This replaces <command>yum deplist foo</command>.
+      </para>
+    </section>
+    <section id="dnf_kernels">
+      <title>dnf will remove kernels</title>
+      <para>
+        <package>kernel</package> packages are not protected by dnf. Unlike with yum, you can remove all kernel packages, including the running package, if you direct it to. Be cautious with removing kernels, and specify the full version and release when removing them for best results.
+      </para>
+    </section>
+    <section id="dnf_replace-swap-shell">
+      <title>Replacing packages</title>
+      <para>
+        When a system requires the capabilities of a package you want to replace, use the <option>--allowerasing</option> option. For example, <command>dnf --allowerasing mariadb</command> will allow you to replace mysql with mariadb, without disrupting packages that require capabilities provided by both packages. This replaces <command>yum shell</command> and <command>yum swap</command> functionality.
+      </para>
+    </section>
+  </section>
+</section>
+  


More information about the docs-commits mailing list