Fedora 22中的DNF软件包管理工具
Introduction
DNF is the The Fedora Project package manager that is able to query for information about packages, fetch packages from repositories, install and uninstall packages using automatic dependency resolution, and update an entire system to the latest available packages. DNF performs automatic dependency resolution on packages you are updating, installing or removing, and thus is able to automatically determine, fetch and install all available dependent packages. DNF can be configured with new, additional repositories, or package sources, and also provides many plug-ins which enhance and extend its capabilities. DNF is able to perform many of the same tasks that RPM can; additionally, many of the command line options are similar. DNF enables easy and simple package management on a single machine or on groups of them.
DNF provides secure package management by enabling GPG (Gnu Privacy Guard; also known as GnuPG) signature verification on GPG-signed packages to be turned on for all package repositories (package sources), or for individual repositories. When signature verification is enabled, DNF will refuse to install any packages not GPG-signed with the correct key for that repository. This means that you can trust that the RPM packages you download and install on your system are from a trusted source, such as The Fedora Project, and were not modified during transfer. See Section 3, “Configuring DNF and DNF Repositories” for details on enabling signature-checking with DNF, or RPM介绍 for information on working with and verifying GPG-signed RPM packages in general.
DNF also enables you to easily set up your own repositories of RPM packages for download and installation on other machines.
Learning DNF is a worthwhile investment because it is often the fastest way to perform system administration tasks, and it provides capabilities beyond those provided by the PackageKit graphical package management tools.
You must have superuser privileges in order to use the dnf command to install, update or remove packages on your system. All examples in this chapter assume that you have already obtained superuser privileges by using either the su or sudo command.
1. Checking For and Updating Packages
1.1. Checking For Updates
The quickest way to check for updates is to attempt to install any available updates by using the dnf upgrade command as follows:
~]# dnf upgrade
Last metadata expiration check performed 1:24:32 ago on Thu May 14 23:23:51 2015.
Dependencies resolved.
Nothing to do.
Complete!
Note that dnf upgrade installs only those updates that can be installed. If a package cannot be updated, because of dependency problems for example, it is skipped.
The dnf check-update command can be used see which installed packages on your system have new versions available, however it does not mean that they can be successfully installed. This command is therefore mostly useful in scripts and for checking for updated packages that were not installed after running dnf upgrade.
For example:
~]# dnf check-update
Using metadata from Mon Apr 20 16:34:10 2015 (2:42:10 hours old)
python.x86_64 2.7.9-6.fc22 updates
python-cryptography.x86_64 0.8.2-1.fc22 updates
python-libs.x86_64 2.7.9-6.fc22 updates
The packages in the above output are listed as having updated versions. The line in the example output tells us:
- python — the name of the package,
- x86_64 — the CPU architecture the package was built for,
- 2.7.9 — the version of the updated package,
- 6.fc22 — the release of the updated package,
- updates-testing — the repository in which the updated package is located.
1.2. Updating Packages
You can choose to update a single package, multiple packages, or all packages at once. If any dependencies of the package, or packages, you update have updates available themselves, then they are updated too.
To update a single package, run the following command as root:
dnf upgrade package_name
For example, to update the python package, type:
~]# dnf upgrade python
Using metadata from Mon Apr 20 16:38:16 2015 (2:42:14 hours old)
Dependencies resolved.
==================================================================
Package Arch Version Repository Size
==================================================================
Upgrading:
python x86_64 2.7.9-6.fc22 updates 92 k
python-libs x86_64 2.7.9-6.fc22 updates 5.8 M
Transaction Summary
==================================================================
Upgrade 2 Packages
Total download size: 5.9 M
Is this ok [y/N]:
This output contains:
- python.x86_64 — you can download and install new python package.
- python-libs.x86_64 — DNF has resolved that the python-libs-2.7.9-6.fc22.x86_64 package is a required dependency of the python package.
- DNF presents the update information and then prompts you as to whether you want it to perform the update; DNF runs interactively by default. If you already know which transactions DNF plans to perform, you can use the -y option to automatically answer yes to any questions DNF may ask (in which case it runs non-interactively). However, you should always examine which changes DNF plans to make to the system so that you can easily troubleshoot any problems that might arise.
If a transaction does go awry, you can view DNF's transaction history by using the dnf history command as described in Section 2.6, “Working with Transaction History”.
DNF always installs a new kernel in the same sense that RPM installs a new kernel when you use the command rpm -i kernel. Therefore, you do not need to worry about the distinction between installing and upgrading a kernel package when you use the dnf command: it will do the right thing, regardless of whether you are using the dnf upgrade or dnf install command.
When using RPM, on the other hand, it is important to use the rpm -i kernel command (which installs a new kernel) instead of rpm -u kernel (which replaces the current kernel). See RPM介绍 for more information on installing and updating kernels with RPM.
To update all packages and their dependencies, enter dnf upgrade without any arguments:
dnf upgrade
1.3. Preserving Configuration File Changes
You will inevitably make changes to the configuration files installed by packages as you use your Fedora system. RPM, which DNF uses to perform changes to the system, provides a mechanism for ensuring their integrity. See RPM介绍 for details on how to manage changes to configuration files across package upgrades.
2. Packages and Package Groups
2.1. Searching Packages
You can search all RPM package names and summaries by using the following command:
dnf search term…
Add the all to match against descriptions and URLs.
dnf search all term…
This command displays the list of matches for each term. For example, to list all packages that match “meld” or “kompare”, type:
~]# dnf search meld kompare
Loaded plugins: langpacks, presto, refresh-packagekit
============================== N/S Matched: meld ===============================
meld.noarch : Visual diff and merge tool
python-meld3.x86_64 : HTML/XML templating system for Python
============================= N/S Matched: kompare =============================
komparator.x86_64 : Kompare and merge two folders
Name and summary matches only, use "search all" for everything.
2.2. Listing Packages
DNF list and related commands provide information about packages, package groups, and repositories.
All of DNF's list commands allow you to filter the results by appending one or more glob expressions as arguments. Glob expressions are normal strings of characters which contain one or more of the wildcard characters * (which expands to match any character multiple times) and ? (which expands to match any one character).
Be careful to escape the glob expressions when passing them as arguments to a dnf command, otherwise the Bash shell will interpret these expressions as pathname expansions, and potentially pass all files in the current directory that match the globs to DNF. To make sure the glob expressions are passed to DNF as intended, either:
- escape the wildcard characters by preceding them with a backslash character; or,
- double-quote or single-quote the entire glob expression.
DNF searches only package names when using glob expressions. To search for a version of a package, include a dash and part of the version number as follows:
~]# dnf search kernel*-4*
Last metadata expiration check performed 2:46:09 ago on Thu May 14 23:23:51 2015.
Installed Packages
kernel.x86_64 4.0.0-1.fc22 @System
kernel.x86_64 4.0.2-300.fc22 @System
kernel-core.x86_64 4.0.0-1.fc22 @System
kernel-core.x86_64 4.0.2-300.fc22 @System
[output truncated]
dnf list glob_expression…
Lists information on installed and available packages matching all glob expressions.
Example 1. Listing all ABRT addons and plug-ins using glob expressions
Packages with various ABRT addons and plug-ins either begin with “abrt-addon-”, or “abrt-plugin-”. To list these packages, type the following at a shell prompt:
~]# dnf list abrt-addon\* abrt-plugin\*
Last metadata expiration check performed 0:14:36 ago on Mon May 25 23:38:13 2015.
Installed Packages
abrt-addon-ccpp.x86_64 2.5.1-2.fc22 @System
abrt-addon-coredump-helper.x86_64 2.5.1-2.fc22 @System
abrt-addon-kerneloops.x86_64 2.5.1-2.fc22 @System
abrt-addon-pstoreoops.x86_64 2.5.1-2.fc22 @System
abrt-addon-python.x86_64 2.5.1-2.fc22 @System
abrt-addon-python3.x86_64 2.5.1-2.fc22 @System
abrt-addon-vmcore.x86_64 2.5.1-2.fc22 @System
abrt-addon-xorg.x86_64 2.5.1-2.fc22 @System
abrt-plugin-bodhi.x86_64 2.5.1-2.fc22 @System
Available Packages
abrt-addon-upload-watch.x86_64 2.5.1-2.fc22 fedora
dnf list all
Lists all installed and available packages.
Example 2. Listing all installed and available packages
~]# dnf list all
Last metadata expiration check performed 0:21:11 ago on Mon May 25 23:38:13 2015.
Installed Packages
NetworkManager.x86_64 1:1.0.2-1.fc22 @System
NetworkManager-libnm.x86_64 1:1.0.2-1.fc22 @System
PackageKit.x86_64 1.0.6-4.fc22 @System
PackageKit-glib.x86_64 1.0.6-4.fc22 @System
aajohan-comfortaa-fonts.noarch 2.004-4.fc22 @System
abrt.x86_64 2.5.1-2.fc22 @System
[output truncated]
dnf list installed
Lists all packages installed on your system. The rightmost column in the output lists the repository from which the package was retrieved.
Example 3. Listing installed packages using a double-quoted glob expression
To list all installed packages that begin with “krb” followed by exactly one character and a hyphen, type:
~]# dnf list installed "krb?-*"
Last metadata expiration check performed 0:34:45 ago on Mon May 25 23:38:13 2015.
Installed Packages
krb5-libs.x86_64 1.13.1-3.fc22 @System
krb5-workstation.x86_64 1.13.1-3.fc22 @System
dnf list available
Lists all available packages in all enabled repositories.
Example 4. Listing available packages using a single glob expression with escaped wildcard characters
To list all available packages with names that contain “gstreamer” and then “plugin”, run the following command:
~]# dnf list available gstreamer\*plugin\*
Last metadata expiration check performed 0:42:15 ago on Mon May 25 23:38:13 2015.
Available Packages
gstreamer-plugin-crystalhd.i686 3.10.0-8.fc22 fedora
gstreamer-plugin-crystalhd.x86_64 3.10.0-8.fc22 fedora
gstreamer-plugins-bad-free.i686 0.10.23-24.fc22 fedora
gstreamer-plugins-bad-free.x86_64 0.10.23-24.fc22 fedora
gstreamer-plugins-bad-free-devel.i686 0.10.23-24.fc22 fedora
gstreamer-plugins-bad-free-devel.x86_64 0.10.23-24.fc22 fedora
[output truncated]
dnf group list
Lists all package groups.
Example 5. Listing all package groups
~]# dnf group list
Loaded plugins: langpacks, presto, refresh-packagekit
Setting up Group Process
Installed Groups:
Administration Tools
Design Suite
Dial-up Networking Support
Fonts
GNOME Desktop Environment
[output truncated]
dnf repolist
Lists the repository ID, name, and number of packages it provides for each enabled repository.
Example 6. Listing enabled repositories
~]# dnf repolist
Last metadata expiration check performed 0:48:29 ago on Mon May 25 23:38:13 2015.
repo id repo name status
*fedora Fedora 22 - x86_64 44,762
*updates Fedora 22 - x86_64 - Updates 0
dnf repository-packages repo_id list
Lists the packages from the specified repository.
Example 7. Listing packages from a single repository
~]# dnf repository-packages fedora list [option]
Last metadata expiration check performed 1:38:25 ago on Wed May 20 22:16:16 2015.
Installed Packages
PackageKit.x86_64 1.0.6-3.fc22 @System
PackageKit-glib.x86_64 1.0.6-3.fc22 @System
aajohan-comfortaa-fonts.noarch 2.004-4.fc22 @System
[output truncated]
The default action is to list all packages available and installed from the repository specified. Add the available or installed option to list only those packages available or installed from the specified repository.
2.3. Displaying Package Information
To display information about one or more packages, use a command as follows:
dnf info package_name…
For example, to display information about the abrt package, type:
~]# dnf info abrt
Last metadata expiration check performed 5 days, 1:12:55 ago on Wed May 20 22:16:16 2015.
Installed Packages
Name : abrt
Arch : x86_64
Epoch : 0
Version : 2.5.1
Release : 2.fc22
Size : 2.1 M
Repo : @System
From repo : updates-testing
Summary : Automatic bug detection and reporting tool
URL : https://github.com/abrt/abrt/wiki/ABRT-Project
License : GPLv2+
Description : abrt is a tool to help users to detect defects in applications and
: to create a bug report with all information needed by maintainer to fix it.
: It uses plugin system to extend its functionality.
The dnf info package_name command is similar to the rpm -q --info package_name command, but provides as additional information the name of the DNF repository the RPM package was installed from (look for the From repo: line in the output).
2.4. Installing Packages
DNF allows you to install both a single package and multiple packages, as well as a package group of your choice.
To install a single package and all of its non-installed dependencies, enter a command in the following form:
dnf install package_name
You can also install multiple packages simultaneously by appending their names as arguments:
dnf install package_name package_name…
If you are installing packages on a multilib system, such as an AMD64 or Intel64 machine, you can specify the architecture of the package, as long as it is available in an enabled repository, by appending .arch to the package name. For example, to install the sqlite2 package for i586, type:
~]# dnf install sqlite2.i586
You can use glob expressions to quickly install multiple similarly-named packages:
~]# dnf install audacious-plugins-\*
In addition to package names and glob expressions, you can also provide file names to dnf install. If you know the name of the binary you want to install, but not its package name, you can give dnf install the path name:
~]# dnf install /usr/sbin/named
DNF then searches through its package lists, finds the package which provides /usr/sbin/named, if any, and prompts you as to whether you want to install it.
If you know you want to install the package that contains the named binary, but you do not know in which /usr/bin or /usr/sbin directory is the file installed, use the dnf provides command with a glob expression:
~]# dnf provides "*bin/named"
Using metadata from Thu Apr 16 13:41:45 2015 (4:23:50 hours old)
bind-32:9.10.2-1.fc22.x86_64 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server
Repo : @System
DNF provides "*/file_name" will find all the packages that contain file_name.
A package group is similar to a package: it is not useful by itself, but installing one pulls a group of dependent packages that serve a common purpose. A package group has a name and a groupid (GID). The dnf group list -v command lists the names of all package groups, and, next to each of them, their groupid in parentheses. The groupid is always the term in the last pair of parentheses, such as kde-desktop-environment in the following example:
~]# dnf -v group list kde\*
cachedir: /var/cache/dnf/x86_64/22
Loaded plugins: builddep, config-manager, copr, playground, debuginfo-install, download, generate_completion_cache, kickstart, needs-restarting, noroot, protected_packages, Query, reposync, langpacks
initialized Langpacks plugin
DNF version: 0.6.5
repo: using cache for: fedora
not found deltainfo for: Fedora 22 - x86_64
not found updateinfo for: Fedora 22 - x86_64
repo: using cache for: updates-testing
repo: using cache for: updates
not found updateinfo for: Fedora 22 - x86_64 - Updates
Using metadata from Thu Apr 16 13:41:45 2015 (4:37:51 hours old)
Available environment groups:
KDE Plasma Workspaces (kde-desktop-environment)
You can install a package group by passing its full group name (without the groupid part) to group install:
dnf group install group_name
Multi-word names must be quoted.
You can also install by groupid:
dnf group install groupid
You can even pass the groupid, or quoted name, to the install command if you prepend it with an @-symbol (which tells dnf that you want to perform a group install):
dnf install @group
For example, the following are alternative but equivalent ways of installing the KDE Plasma Workspaces group:
~]# dnf group install "KDE Plasma Workspaces"
~]# dnf group install kde-desktop-environment
~]# dnf install @kde-desktop-environment
2.5. Removing Packages
Similarly to package installation, DNF allows you to uninstall (remove in RPM and DNF terminology) both individual packages and a package group.
To uninstall a particular package, as well as any packages that depend on it, run the following command as root:
dnf remove package_name…
As when you install multiple packages, you can remove several at once by adding more package names to the command. For example, to remove totem, rhythmbox, and sound-juicer, type the following at a shell prompt:
~]# dnf remove totem rhythmbox sound-juicer
Similar to install, remove can take these arguments:
- package names
- glob expressions
- file lists
- package provides
DNF is not able to remove a package without also removing packages which depend on it. This type of operation can only be performed by RPM, is not advised, and can potentially leave your system in a non-functioning state or cause applications to misbehave and terminate unexpectedly. For further information, refer to RPM介绍.
You can remove a package group using syntax congruent with the install syntax:
dnf group remove group
dnf remove @group
The following are alternative but equivalent ways of removing the KDE Plasma Workspaces group:
~]# dnf group remove "KDE Plasma Workspaces"
~]# dnf group remove kde-desktop-environment
~]# dnf remove @kde-desktop-environment
2.6. Working with Transaction History
The dnf history command allows users to review information about a timeline of DNF transactions, the dates and times on when they occurred, the number of packages affected, whether transactions succeeded or were aborted, and if the RPM database was changed between transactions. Additionally, this command can be used to undo or redo certain transactions.
To display a list of all transactions, as root, either run dnf history with no additional arguments, or enter the following command:
dnf history list
To display only transactions in a given range, use the command in the following form:
dnf history list start_id..end_id
You can also list only transactions regarding a particular package or packages. To do so, use the command with a package name or a glob expression:
dnf history list glob_expression…
For example, the list of first five transactions may look as follows:
~]# dnf history list 1..4
Using metadata from Thu Apr 16 13:41:45 2015 (5:47:31 hours old)
ID | Login user | Date a | Action | Altere
-------------------------------------------------------------------------------
4 | root <root> | 2015-04-16 18:35 | Erase | 1
3 | root <root> | 2015-04-16 18:34 | Install | 1
2 | root <root> | 2015-04-16 17:53 | Install | 1
1 | System <unset> | 2015-04-16 14:14 | Install | 668 E
The dnf history list command produces tabular output with each row consisting of the following columns:
- ID — an integer value that identifies a particular transaction.
- Login user — the name of the user whose login session was used to initiate a transaction. This information is typically presented in the Full Name form, however sometimes the command used to perform the transaction is displayed. For transactions that were not issued by a user (such as an automatic system update), System is used instead.
- Date and time — the date and time when a transaction was issued.
- Action(s) — a list of actions that were performed during a transaction as described in Table 5.1, “Possible values of the Action(s) field”.
- Altered — the number of packages that were affected by a transaction, possibly followed by additional information.
Table 1. Possible values of the Action(s) field
Action | Abbreviation | Description |
---|---|---|
Downgrade | D | At least one package has been downgraded to an older version. |
Erase | E | At least one package has been removed. |
Install | I | At least one new package has been installed. |
Obsoleting | O | At least one package has been marked as obsolete. |
Reinstall | R | At least one package has been reinstalled. |
Update | U | At least one package has been updated to a newer version. |
Apart from reviewing the transaction history, the dnf history command provides means to revert or repeat a selected transaction. To revert a transaction, type the following at a shell prompt as root:
dnf history undo id
To repeat a particular transaction, as root, run the following command:
dnf history redo id
Both commands also accept the last keyword to undo or repeat the latest transaction.
Note that both dnf history undo and dnf history redo commands merely revert or repeat the steps that were performed during a transaction, and will fail if the required packages are not available. For example, if the transaction installed a new package, the dnf history undo command will uninstall it and also attempt to downgrade all updated packages to their previous version, but the command will fail if the required packages are not available.
3. Configuring DNF and DNF Repositories
The configuration file for DNF and related utilities is located at /etc/dnf/dnf.conf. This file contains one mandatory [main] section, which allows you to set DNF options that have global effect, and may also contain one or more [repository] sections, which allow you to set repository-specific options. However, it is recommended to define individual repositories in new or existing .repo files in the /etc/yum.repos.d/directory. The values you define in the [main] section of the /etc/dnf/dnf.conf file may override values set in individual [repository] sections.
This section shows you how to:
- set global DNF options by editing the [main] section of the /etc/dnf/dnf.conf configuration file;
- set options for individual repositories by editing the [repository] sections in /etc/dnf/dnf.conf and .repo files in the /etc/yum.repos.d/ directory;
- add, enable, and disable DNF repositories on the command line; and,
- set up your own custom DNF repository.
3.1. Setting [main] Options
The /etc/dnf/dnf.conf configuration file contains exactly one [main] section, and while some of the key-value pairs in this section affect how dnf operates, others affect how DNF treats repositories. You can add many additional options under the [main] section heading in /etc/dnf/dnf.conf.
A sample /etc/dnf/dnf.conf configuration file can look like this:
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=true
The following are the most commonly-used options in the [main] section:
debuglevel=value
…where value is an integer between 0 and 10. Setting a higher debuglevel value causes dnf to display more detailed debugging output. debuglevel=0 disables debugging output, and debuglevel=2 is the default.
exclude=package_name [more_package_names]
This option allows you to exclude packages by keyword during installation/updates. Listing multiple packages for exclusion can be accomplished by quoting a space-delimited list of packages. Shell globs using wildcards (for example, * and ?) are allowed.
gpgcheck=value
…where value is one of:
0 — Disable GPG signature-checking on packages in all repositories, including local package installation.
1 — Enable GPG signature-checking on all packages in all repositories, including local package installation. gpgcheck=1 is the default, and thus all packages' signatures are checked.
If this option is set in the [main] section of the /etc/dnf/dnf.conf file, it sets the GPG-checking rule for all repositories. However, you can also set gpgcheck=value for individual repositories instead; you can enable GPG-checking on one repository while disabling it on another. Setting gpgcheck=value for an individual repository in its corresponding .repo file overrides the default if it is present in /etc/dnf/dnf.conf.
For more information on GPG signature-checking, refer to RPM介绍.
installonlypkgs=space separated list of packages
Here you can provide a space-separated list of packages which dnf can install, but will never update. See the dnf.conf(5) manual page for the list of packages which are install-only by default.
If you add the installonlypkgs directive to /etc/dnf/dnf.conf, you should ensure that you list all of the packages that should be install-only, including any of those listed under the installonlypkgs section of dnf.conf(5). In particular, kernel packages should always be listed in installonlypkgs (as they are by default), and installonly_limit should always be set to a value greater than 2 so that a backup kernel is always available in case the default one fails to boot.
installonly_limit=value
…where value is an integer representing the maximum number of versions that can be installed simultaneously for any single package listed in the installonlypkgs directive.
The defaults for the installonlypkgs directive include several different kernel packages, so be aware that changing the value of installonly_limit will also affect the maximum number of installed versions of any single kernel package. The default value listed in /etc/dnf/dnf.conf is installonly_limit=3, and it is not recommended to decrease this value, particularly below 2.
keepcache=value
…where value is one of:
0 — Do not retain the cache of headers and packages after a successful installation. This is the default.
1 — Retain the cache after a successful installation.
For a complete list of available [main] options, refer to the [MAIN] OPTIONS section of the dnf.conf(5) manual page.
3.2. Setting [repository] Options
The [repository] sections, where repository is a unique repository ID such as my_personal_repo (spaces are not permitted), allow you to define individual DNF repositories.
The following is a bare-minimum example of the form a [repository] section takes:
[repository]
name=repository_name
baseurl=repository_url
Every [repository] section must contain the following directives:
name=repository_name
…where repository_name is a human-readable string describing the repository.
parameter=repository_url
…where parameter is one of the following: baseurl, metalink, or mirrorlist;
…where repository_url is a URL to a directory containing a repodata directory of a repository, a metalink file, or a mirror list file.
- If the repository is available over HTTP, use:
http://path/to/repo
- If the repository is available over FTP, use:
ftp://path/to/repo
- If the repository is local to the machine, use:
file:///path/to/local/repo
- If a specific online repository requires basic HTTP authentication, you can specify your user name and password by prepending it to the URL as
username:password@link
. For example, if a repository onhttp://www.example.com/repo/
requires a username of “user” and a password of “password”, then the baseurl link could be specified ashttp://user:password@www.example.com/repo/
.
Usually this URL is an HTTP link, such as:
baseurl=http://path/to/repo/releases/$releasever/server/$basearch/os/
Note that DNF always expands the $releasever, $arch, and $basearch variables in URLs. For more information about DNF variables, refer to Section 3.3, “Using DNF Variables”.
To configure the default set of repositories, use the enabled option as follows:
enabled=value
…where value is one of:
0 — Do not include this repository as a package source when performing updates and installs.
1 — Include this repository as a package source.
Turning repositories on and off can also be performed by passing either the --set-enabled repo_name or --set-disabled repo_name option to the dnf command, or through the Add/Remove Software window of the PackageKit utility.
Many more [repository] options exist. For a complete list, refer to the [repository] OPTIONS section of the dnf.conf(5) manual page.
3.3. Using DNF Variables
You can use and reference the following built-in variables in dnf commands:
$releasever
You can use this variable to reference the release version of Fedora. DNF obtains the value of $releasever from the redhat-release package.
$arch
You can use this variable to refer to the system's CPU architecture. It is initialized with a value provided by the hawkey library. Valid values for $arch include: i586, i686 and x86_64.
$basearch
You can use $basearch to reference the base architecture of the system. For example, i686 and i586 machines both have a base architecture of i386, and AMD64 and Intel64 machines have a base architecture of x86_64.
4. Viewing the Current Configuration
To list all configuration options and their corresponding values, and the repositories, execute the dnf config-manager command with the --dump option:
~]$ dnf config-manager --dump
=============================== main ======================================
[main]
alwaysprompt = True
assumeno = False
assumeyes = False
bandwidth = 0
best = False
bugtracker_url = https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=dnf
cachedir = /var/cache/dnf/x86_64/22
[output truncated]
5. Adding, Enabling, and Disabling a DNF Repository
Section 3.2, “Setting [repository] Options” describes various options you can use to define a yum repository. This section explains how to add, enable, and disable a repository by using the dnf config-manager command.
To define a new repository, you can either add a [repository] section to the /etc/dnf/dnf.conf file, or to a .repo file in the /etc/yum.repos.d/ directory. All files with the .repo file extension in this directory are read by yum, and it is recommended to define your repositories here instead of in /etc/dnf/dnf.conf.
DNF repositories commonly provide their own .repo file. To add such a repository to your system and enable it, run the following command as root:
dnf config-manager --add-repo repository_url
…where repository_url is a link to the .repo file.
Example 8. Adding example.repo
To add a repository located at http://www.example.com/example.repo
, type the following at a shell prompt:
~]# dnf config-manager --add-repo http://www.example.com/example.repo
adding repo from: http://www.example.com/example.repo
To enable a particular repository or repositories, type the following at a shell prompt as root:
dnf config-manager --set-enabled repository…
…where repository is the unique repository ID. To display the current configuration, add the --dump option.
To disable a yum repository, run the following command as root:
dnf config-manager --set-disabled repository…
…where repository is the unique repository ID. To display the current configuration, add the --dump option.
6. Additional Resources
Installed Documentation
- dnf(8) — The DNF command reference manual page.
- dnf.conf(8) — DNF Configuration Reference manual page.
Online Documentation
The DNF wiki contains more documentation.
Fedora 22中的DNF软件包管理工具的更多相关文章
- Fedora 22中的RPM软件包管理工具
Introduction The RPM Package Manager (RPM) is an open packaging system that runs on Fedora as well a ...
- Fedora 22中的用户和用户组管理
The control of users and groups is a core element of Fedora system administration. This chapter expl ...
- RPM是RedHat Package Manager(RedHat软件包管理工具)
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种 ...
- 【one day one linux】linux下的软件包管理工具
Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat ...
- Mac OSX上的软件包管理工具,brew 即 Homebrew
brew 即 Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便. brew类似ubuntu系统下的apt-get的功能. 安装 ...
- Mac Pro 安装 Homebrew 软件包管理工具
Linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有 yum,Ubuntu有 apt-get. Mac os 中没有类似的东东,不过有第三方库支持 ...
- ubuntu 软件包管理工具 dpkg,apt-get,aptitude 区别
ubuntu 软件包管理工具 dpkg,apt-get,aptitude 区别 一:dpkg dpkg 是一种比较低层的软件包安装管理工具,在安装时,不会安装软件包的依赖关系:只能安装所要求的软件包: ...
- 利用chocolatey软件包管理工具安装yarn,比npm更快更稳定
Chocolatey 是一个 Windows 专用的软件包管理工具. Yarn 对你的代码来说是一个包管理器, 你可以通过它使用全世界开发者的代码, 或者分享自己的代码.Yarn 做这些快捷.安全.可 ...
- mac pro下安装brew软件包管理工具
Homebrew简称brew,OSX上的软件包管理工具,在Mac终端可以通过brew安装.更新.卸载软件. 1.打开终端直接输入下面指令回车: ruby -e "$(curl -fsSL h ...
随机推荐
- 使用技术手段限制DBA的危险操作—Oracle Database Vault
概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...
- 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~
一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...
- 如何用Java类配置Spring MVC(不通过web.xml和XML方式)
DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...
- java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
A 调用摄像头拍照,自定义裁剪编辑头像 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单; 技术:313596790freemaker模版技术 ,0个代码不用写 ...
- Block解析(iOS)
1. 操作系统中的栈和堆 我们先来看看一个由C/C++/OBJC编译的程序占用内存分布的结构: 栈区(stack):由系统自动分配,一般存放函数参数值.局部变量的值等.由编译器自动创建与释放.其操作方 ...
- vim安装中文帮助手册
安装方法: 在下面的网站下载中文帮助的文件包:$wget http://nchc.dl.sourceforge.net/sourceforge/vimcdoc/vimcdoc-1.5.0.tar. ...
- 鱼眼模式(Fisheye projection)的软件实现
简单实现 鱼眼模式(Fisheye)和普通的透视投影(Perspective projection),一个很大的区别就是鱼眼的投影算法是非线性的(non-linear),实际照相机的情况是在镜头外面包 ...
- CentOS7 + mono +Jexus 环境的搭建
CentOS7的安装和配置 1,从http://www.centos.org/下载CentOS7的镜像,并在VMWare中创建该镜像的虚拟机,为方便操作,把虚拟机的网络连接设置为桥接模式:在安装过程中 ...
- 【腾讯Bugly干货分享】基于RxJava的一种MVP实现
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57bfef673c1174283d60bac0 Dev Club 是一个交流移动 ...
- Nova PhoneGap框架 总结
Nova PhoneGap Framework 是完全针对PhoneGap应用程序量身定做的,在这个框架下开发的应用程序很容易实现高质量的代码,很容易让程序拥有很好的性能和用户体验. 在经历了多个项目 ...