Software-Management (#969)
This PR significantly overhauls the "Adding and managing software" section of Fedora Quick Docs, bringing it up to date for currently supported releases (Fedora 41 and newer, using DNF5) and restructuring the navigation for clarity. *Navigation restructure* The section is reorganised into three clear areas: core package management topics, a third-party software subsection, and a new "Installing popular applications" group. Topics covering specific applications (VLC, Spotify, Zoom, Chromium, Java, fonts, desktop environments) are grouped separately from package management mechanics. openh264.adoc is retired and its content is merged into the multimedia plugins page. Also, I separated out legal content and put that under the FAQ section and did away with the remaining content in packagekit-not-found.adoc because this was consolidated into some newer topics described below. *New topics* I added several new topics: - Third-party software: overview of the distinction between Fedora release software and third-party sources, why software may be absent (patents, licensing, unpackaged), and safe usage practices - Flatpak / Flathub: installing and managing Flatpak applications, covering both GNOME Software and KDE Discover - Snap Store: installing and managing Snap applications - AppImage: running portable AppImage applications - Language package managers: pip, npm, Cargo, gem, and go install, with emphasis on isolation (virtual environments) and the preference for Fedora-packaged versions - ~~Managing software on immutable Fedora editions: rpm-ostree layering, Flatpak as the preferred app delivery method, and Toolbox for development environments~~ - Creating a DNF repository mirror: using dnf reposync to set up a local mirror, serving it with Apache, configuring clients, and keeping it current with a systemd timer - Fedora and software patents: split out from the retired packagekit-not-found.adoc into its own FAQ topic *Updated topics* - autoupdates.adoc: restructured (decision first, setup second), dnf-automatic.timer updated for DNF5 (single timer replaces the old per-mode timers), machine → system throughout, auter section retained and updated - package-management.adoc: rewritten to be a concise intro rather than a stub with broken links - securing-the-system-by-keeping-it-up-to-date.adoc: recommends dnf offline-upgrade over updating a live system; redundant automatic updates section replaced with an xref to autoupdates.adoc - installing-java.adoc: Java version updated (LTS: 21, 25; latest: 26); JDK components list pruned of tools removed in JDK 9–14; modern tools added (jshell, jlink, jpackage, jdeps, jhsdb); dead links fixed (Freenode → Libera.Chat, Mailman → Fedora Discussion, openjdk.java.net → openjdk.org) - installing-plugins-for-playing-movies-and-music.adoc: updated for F41+; OpenH264 content merged in; RPM Fusion noted for extended codec support; immutable editions section added; Fedora Workstation multimedia group updated - installing-chromium-or-google-chrome-browsers.adoc: DNF4 old-syntax block removed; chromium-freeworld from RPM Fusion noted for users needing full codec support; screenshots updated for current GNOME Software and Plasma Discover UI - fonts.adoc: rewritten for current Fedora; GNOME Font Viewer bug note removed; KDE section updated for Plasma 6; RPM Fusion font source note corrected; code block formatting fixed - finding-and-installing-linux-applications.adoc: repository overview section removed (now links to dedicated topics); GNOME and KDE GUI walkthroughs updated with fresh screenshots on Fedora 42 with GNOME 50 and Plasma 6; category descriptions corrected to match actual UI - switching-desktop-environments.adoc : renamed "Installing and Switching Desktop Environments"; updated for Fedora 41+ (single dnf environment list command) --- worth noting that although I could install switchdesk it didn't really work properly in my test lab. - fedora-and-software-patents.adoc: dead links removed (Fluendo, 2007–2010 Red Hat press releases, old mailing list); MP3 no longer referenced as patent-encumbered (patents expired 2017) *Style and consistency pass* All topics in the section were run through the Red Hat Vale linter. Changes include: contractions expanded, passive voice reduced, heading capitalisation normalised (sentence case for H2+), code blocks annotated with [source,bash,console] and $/$ sudo prompts, e.g./i.e. replaced with for example/that is, and Fedora-specific vocabulary added to the Vale exceptions file. *Screenshots* All screenshots in finding-and-installing-linux-applications.adoc are retaken on Fedora 42 (GNOME 50 and Plasma 6), replacing images from the older Fedora releases. Reviewed-on: #969
|
Before Width: | Height: | Size: 465 KiB After Width: | Height: | Size: 271 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 220 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 214 KiB After Width: | Height: | Size: 264 KiB |
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 250 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 448 KiB |
|
|
@ -29,25 +29,34 @@
|
|||
** xref:pytorch.adoc[Play with tensors in pytorch]
|
||||
|
||||
* Adding and managing software
|
||||
** xref:autoupdates.adoc[AutoUpdates]
|
||||
** xref:adding-or-removing-software-repositories-in-fedora.adoc[Adding or removing software repositories in Fedora]
|
||||
** xref:fonts.adoc[Adding New Fonts in Fedora]
|
||||
** xref:dnf-vs-apt.adoc[APT command equivalents on Fedora with DNF]
|
||||
** xref:rpmfusion-setup.adoc[Enabling the RPM Fusion repositories]
|
||||
** xref:fedora-repositories.adoc[Fedora Repositories]
|
||||
** xref:finding-and-installing-linux-applications.adoc[Finding and installing Linux applications]
|
||||
** xref:installing-java.adoc[Installing Java]
|
||||
** xref:installing-plugins-for-playing-movies-and-music.adoc[Installing plugins for playing movies and music]
|
||||
** xref:installing-chromium-or-google-chrome-browsers.adoc[Installing Chromium or Google Chrome browsers]
|
||||
** xref:installing-from-source.adoc[Installing Software from Source]
|
||||
** xref:installing-spotify.adoc[Installing Spotify on Fedora]
|
||||
** xref:zoom.adoc[Installing Zoom on Fedora]
|
||||
** xref:openh264.adoc[OpenH264]
|
||||
** xref:package-management.adoc[Package management system]
|
||||
** xref:packagekit-not-found.adoc[PackageKit Items Not Found]
|
||||
** xref:securing-the-system-by-keeping-it-up-to-date.adoc[Securing the system by keeping it up-to-date]
|
||||
** xref:switching-desktop-environments.adoc[Switching desktop environments]
|
||||
** xref:dnf.adoc[Using the DNF software package manager]
|
||||
*** ** xref:dnf-vs-apt.adoc[APT command equivalents on Fedora with DNF]
|
||||
** xref:fedora-repositories.adoc[Fedora DNF repositories]
|
||||
*** xref:adding-or-removing-software-repositories-in-fedora.adoc[Adding or removing software repositories in Fedora]
|
||||
*** xref:dnf-repository-mirror.adoc[Creating a DNF repository mirror]
|
||||
** xref:autoupdates.adoc[Automatic DNF Updates]
|
||||
** xref:securing-the-system-by-keeping-it-up-to-date.adoc[Securing the system by keeping it up-to-date]
|
||||
** xref:finding-and-installing-linux-applications.adoc[Finding and installing Linux applications]
|
||||
** xref:third-party-software.adoc[Third Party Software]
|
||||
*** xref:rpmfusion-setup.adoc[Enabling the RPM Fusion repositories]
|
||||
*** xref:flathub-flatpak-applications.adoc[Flathub]
|
||||
*** xref:snap-store-applications.adoc[Snap Store]
|
||||
*** xref:appimage.adoc[AppImage]
|
||||
*** xref:installing-from-source.adoc[Installing Software from Source]
|
||||
*** xref:language-package-managers.adoc[Language package managers]
|
||||
** Installing popular applications
|
||||
*** xref:fonts.adoc[Adding New Fonts in Fedora]
|
||||
*** xref:installing-java.adoc[Installing Java]
|
||||
*** xref:installing-plugins-for-playing-movies-and-music.adoc[Installing plugins for playing movies and music]
|
||||
*** xref:installing-chromium-or-google-chrome-browsers.adoc[Installing Chromium or Google Chrome browsers]
|
||||
*** xref:switching-desktop-environments.adoc[Installing and switching desktop environments]
|
||||
*** xref:installing-spotify.adoc[Installing Spotify on Fedora]
|
||||
*** xref:installing-and-running-vlc.adoc[Installing and running the VLC player]
|
||||
*** xref:zoom.adoc[Installing Zoom on Fedora]
|
||||
|
||||
|
||||
|
||||
|
||||
* Usage and customisation
|
||||
** xref:adding_user_to_sudoers_file.adoc[Adding a user to sudoers]
|
||||
|
|
@ -71,7 +80,6 @@
|
|||
** xref:set-nvidia-as-primary-gpu-on-optimus-based-laptops.adoc[How to Set NVIDIA as Primary GPU on Optimus-based Laptops]
|
||||
** xref:debug-systemd-problems.adoc[How to debug systemd problems]
|
||||
** xref:enable-touchpad-click.adoc[How to enable touchpad click]
|
||||
** xref:installing-and-running-vlc.adoc[Installing and running the VLC player]
|
||||
** xref:installing-docker.adoc[Installing Docker and Docker-Compose on Fedora]
|
||||
** xref:jitsi-getting-started.adoc[Jitsi Meet Self-Hosting Guide]
|
||||
** xref:mok-enrollment.adoc[Machine Owner Key Enrollment]
|
||||
|
|
@ -145,3 +153,4 @@
|
|||
|
||||
* FAQ
|
||||
** xref:fedora-and-red-hat-enterprise-linux.adoc[Fedora and Red Hat Enterprise Linux]
|
||||
** xref:fedora-and-software-patents.adoc[Fedora and software patents]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ Anthony McGlone
|
|||
:revnumber: F37
|
||||
:revdate: 2023-01-05
|
||||
:category: Administration
|
||||
:tags: How-to, DNF, Application, Software-Installation
|
||||
:tags: How-to, DNF, Application, Software-Installation
|
||||
//:page-aliases:
|
||||
|
||||
include::partial$attributes.adoc[]
|
||||
|
|
@ -15,26 +15,6 @@ This section describes how to add, enable, or disable a software repository with
|
|||
|
||||
This section describes how to add software repositories with the `dnf config-manager` command.
|
||||
|
||||
=== For Fedora 40 or earlier (DNF 4)
|
||||
|
||||
To add a new repository, as `*root*`, use one of the following methods.
|
||||
|
||||
* Define a new repository by creating a new file with the `.repo` suffix in a temporary location, such as the [filename]`/tmp` directory.
|
||||
* Add the repository with `--add-repo`, where *_repository_* is the file path:
|
||||
+
|
||||
[literal,subs="+quotes,attributes"]
|
||||
----
|
||||
dnf config-manager --add-repo `*_repository_*`
|
||||
----
|
||||
+
|
||||
For example:
|
||||
+
|
||||
----
|
||||
dnf config-manager --add-repo /tmp/fedora_extras.repo
|
||||
----
|
||||
|
||||
=== For Fedora 41 or later (DNF 5)
|
||||
|
||||
To add a new repository, as `*root*`, use one of the following methods.
|
||||
|
||||
* Define a new repository by creating a new file with the `.repo` suffix in a temporary location, such as the [filename]`/tmp` directory.
|
||||
|
|
@ -94,16 +74,16 @@ dnf config-manager setopt fedora-extras.enabled=0
|
|||
|
||||
== Removing repositories
|
||||
|
||||
This section shows how to remove a Yum repository (or `.repo` file).
|
||||
This section shows how to remove a repository (or `.repo` file).
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
If you know the ID of a repository, but you're not sure what `.repo` it belongs to,
|
||||
If you know the ID of a repository, but you are not sure what `.repo` it belongs to,
|
||||
you can run the following command [red]#`pass:[grep -E "^\[.*\]" /etc/yum.repos.d/*]`#.
|
||||
This will print a list of the repository IDs that are associated with each Yum repository.
|
||||
This will print a list of the repository IDs that are associated with each repository.
|
||||
====
|
||||
|
||||
* To remove a Yum repository, run the following command as `*root*`.
|
||||
* To remove a repository, run the following command as `*root*`.
|
||||
+
|
||||
[literal,subs="+quotes,attributes"]
|
||||
----
|
||||
|
|
|
|||
155
modules/ROOT/pages/appimage.adoc
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
= Running Applications with AppImage
|
||||
Rowan Puttergill, Fedora Documentation Team
|
||||
:revnumber: F42 and newer
|
||||
:revdate: 2026-05-08
|
||||
:category: Software Management
|
||||
:tags: AppImage, Applications, Third-Party, Portable
|
||||
|
||||
[abstract]
|
||||
This page explains what AppImages are and how to run AppImage applications on Fedora.
|
||||
|
||||
== What is AppImage
|
||||
|
||||
AppImage is a format for packaging Linux applications as portable, self-contained executable files.
|
||||
|
||||
An AppImage file contains everything needed to run an application including the application itself, its libraries, and any other dependencies. Everything is bundled into a single file, that can be run directly without any installation or system modifications.
|
||||
|
||||
Because AppImages include all dependencies, they tend to be larger than traditional packages, but they offer the advantage of being portable and distribution-independent. Also, because everything is available as a single file, you can carry AppImages on USB drives or external media and run them on any compatible Linux system without worrying about missing dependencies or conflicts with other software. Removing an AppImage is as simple as deleting the file, with no leftover configuration or dependencies.
|
||||
|
||||
Developers often use AppImages to distribute their applications across many Linux distributions without maintaining separate packages for each distribution.
|
||||
|
||||
AppImages might not integrate as deeply with your desktop environment as native packages, and Desktop entries, file associations, and system menus might not work without additional setup. Furthermore, AppImages do not receive automatic updates through the system package manager, so you must manually check for and install updates from the developer. However, some AppImages include built-in update mechanisms that can check for and download updates directly from the application.
|
||||
|
||||
AppImages offer a convenient way to run applications on Fedora without installation or dependency management.
|
||||
They are ideal for portable, distribution-independent applications and for developers who want to distribute their software easily.
|
||||
However, you are responsible for managing updates and security. Use AppImages from trusted sources and keep them updated to ensure your system remains secure. Note that unlike Flatpak or Snap, AppImages do not provide sandboxing or confinement, so they run with the same permissions as your user account. Be cautious when running AppImages from untrusted sources, as they have the potential to access your files and system resources.
|
||||
|
||||
== How AppImages work
|
||||
|
||||
When you run an AppImage, the system:
|
||||
|
||||
1. Mounts the AppImage file as a temporary read-only filesystem
|
||||
2. Runs the application within that environment
|
||||
3. Unmounts the filesystem when the application closes
|
||||
|
||||
Applications can run without installation, making them portable and easy to distribute.
|
||||
|
||||
== Prerequisites
|
||||
|
||||
AppImages require:
|
||||
|
||||
* A 64-bit Fedora system (most modern AppImages)
|
||||
* The FUSE library, which allows AppImages to mount themselves
|
||||
|
||||
FUSE is usually pre-installed on Fedora, but if needed:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install fuse
|
||||
----
|
||||
|
||||
== Finding AppImages
|
||||
|
||||
Developers distribute AppImages directly, typically through:
|
||||
|
||||
* **Project websites** - Many open source projects offer AppImage downloads
|
||||
* **AppImage repository** - https://appimage.github.io/apps/ lists available AppImages
|
||||
* **GitHub releases** - Many projects host AppImage files in their GitHub release pages
|
||||
* **Custom repositories** - Some developers maintain their own AppImage distribution sites
|
||||
|
||||
== Running AppImages
|
||||
|
||||
1. Download the `.AppImage` file from the developer's website or repository.
|
||||
2. Make it executable:
|
||||
+
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ chmod +x _application_name_.AppImage
|
||||
----
|
||||
|
||||
3. Run the AppImage
|
||||
+
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ ./_application_name_.AppImage
|
||||
----
|
||||
Or double-click the file in your file manager if it has execute permissions.
|
||||
|
||||
|
||||
== Creating desktop shortcuts
|
||||
|
||||
To integrate an AppImage with your desktop environment, create a `.desktop` shortcut file:
|
||||
|
||||
1. Create a file in `~/.local/share/applications/`:
|
||||
+
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ touch ~/.local/share/applications/_application_name_.desktop
|
||||
----
|
||||
|
||||
2. Add the following content (replace placeholders with actual values):
|
||||
+
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=_Application Display Name_
|
||||
Exec=_/path/to/application_name_.AppImage_
|
||||
Icon=_application_name_
|
||||
Categories=_Category_;
|
||||
----
|
||||
|
||||
3. Save the file and it appears in your Applications menu
|
||||
|
||||
For example, for an application called "MyApp":
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=MyApp
|
||||
Exec=/home/username/Downloads/MyApp.AppImage
|
||||
Icon=myapp
|
||||
Categories=Utility;
|
||||
----
|
||||
|
||||
== Managing AppImages
|
||||
|
||||
=== Organizing AppImages
|
||||
|
||||
It is helpful to keep AppImages in a dedicated directory:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ mkdir ~/Applications
|
||||
$ mv _application_name_.AppImage ~/Applications/
|
||||
$ chmod +x ~/Applications/_application_name_.AppImage
|
||||
----
|
||||
|
||||
Then reference this directory in desktop shortcuts.
|
||||
|
||||
=== Updating AppImages
|
||||
|
||||
Update methods vary by application:
|
||||
|
||||
Built-in updates::
|
||||
Some AppImages include automatic update checks. Run the AppImage and look for update options in the application's preferences or help menu.
|
||||
|
||||
Manual updates::
|
||||
For applications without built-in updates, download the latest version from the project website and replace the existing AppImage.
|
||||
|
||||
AppImage update tools::
|
||||
Some third-party tools such as `appimaged` can help manage AppImage updates, though these are typically for advanced users.
|
||||
|
||||
=== Running multiple versions
|
||||
|
||||
Because AppImages are self-contained, you can safely keep and run multiple versions of the same application:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ ./MyApp-1.0.AppImage &
|
||||
$ ./MyApp-2.0.AppImage &
|
||||
----
|
||||
|
||||
Both versions can run simultaneously without conflicts.
|
||||
|
||||
|
|
@ -1,64 +1,60 @@
|
|||
= Automatic Updates
|
||||
Ben Cotton; Petr Bokoc; Jean-Baptiste Holcroft
|
||||
:revnumber: all
|
||||
:revdate: 2025
|
||||
Ben Cotton; Petr Bokoc; Jean-Baptiste Holcroft; Rowan Puttergill
|
||||
:revnumber: F41 and newer
|
||||
:revdate: 2026-05-10
|
||||
:category: Administration
|
||||
:tags: How-to, DNF, Updates
|
||||
//:imagesdir: ./images
|
||||
|
||||
[abstract]
|
||||
Fedora can automatically download and install updates using `dnf-automatic`.
|
||||
This page covers how to decide whether automatic updates are right for your system, how to set them up, and how to adjust their behaviour.
|
||||
|
||||
You must decide whether to use automatic xref:dnf.adoc[DNF]
|
||||
updates on each of your machines. There are a number of arguments both
|
||||
for and against automatic updates to consider. However, there is no
|
||||
single answer to this question: it is up to the system administrator or
|
||||
owner of each machine to decide whether automatic updates are desirable
|
||||
or not for that machine. One of the things which makes one a good system
|
||||
administrator is the ability to evaluate the facts and other people's
|
||||
suggestions, and then decide for oneself what one should do.
|
||||
== Deciding whether to use automatic updates
|
||||
|
||||
A general rule that applies in most cases is as follows:
|
||||
There is no single answer to the question of whether to use automatic updates, as this depends on the system and your requirements. A useful general rule:
|
||||
|
||||
_If the machine is a critical server, for which unplanned downtime of a
|
||||
service on the machine can not be tolerated, then you should not use
|
||||
automatic updates. Otherwise, you *may* choose to use them._
|
||||
_If the system is a critical server that cannot tolerate unplanned downtime, do not use automatic updates. Otherwise, you can use them._
|
||||
|
||||
Even the general rule above has exceptions, or can be worked around.
|
||||
Some issues might be resolved through a special setup on your part. For
|
||||
example, you could create your own DNF repository on a local server,
|
||||
and only put in tested or trusted updates. Then use the automatic
|
||||
updates from only your own repository. Such setups, while perhaps more
|
||||
difficult to set up and maintain, can remove a large amount of risk
|
||||
otherwise inherent in automatic updates.
|
||||
That said, keeping a system up-to-date is an important part of security, and automatic updates can help ensure that you do not miss important updates. If you decide not to use automatic updates, make sure to apply updates manually on a regular basis or consider setting up a test and integration environment to validate updates before applying them to production systems. You can also use xref:dnf-repository-mirror.adoc[repository mirroring] to test updates on a non-critical system before applying them to production.
|
||||
|
||||
[[how-are-automatic-updates-done]]
|
||||
== How are automatic updates done?
|
||||
=== Reasons to use automatic updates
|
||||
|
||||
You can use a service to automatically download and install any new
|
||||
updates (for example security updates).
|
||||
* You are unlikely to apply updates manually on a regular basis.
|
||||
* The system is not critical and occasional unplanned downtime is acceptable.
|
||||
* You can access the system physically if an update causes problems.
|
||||
* You have proper backups of any important data on the system.
|
||||
|
||||
The https://dnf5.readthedocs.io/en/latest/dnf5_plugins/automatic.8.html[dnf-automatic]
|
||||
RPM package as a link:dnf[DNF] component provides a service which is
|
||||
started automatically.
|
||||
=== Reasons to avoid automatic updates
|
||||
|
||||
[[install-and-settings-of-dnf-automatic]]
|
||||
=== Install and settings of dnf-automatic
|
||||
* The system provides a critical service where unscheduled downtime is not acceptable.
|
||||
* You use custom, compiled, or third-party software with strict package version requirements.
|
||||
* You use a custom kernel or third-party kernel modules. You can mitigate this by excluding kernel updates, which is the default in Fedora's `dnf.conf`.
|
||||
* Your environment requires formal change-control procedures.
|
||||
* You use third-party DNF repositories that might conflict with Fedora's versioning.
|
||||
* Updates to packages such as OpenSSL or database servers can have unexpected effects on dependent services.
|
||||
* A kernel update does not take effect until the system reboots, and service updates might require a restart. Updating a system and not rebooting can create a window where the system appears updated but the fix is not yet active.
|
||||
|
||||
On a fresh install of Fedora with default options, the dnf-automatic
|
||||
RPM is not installed. The first command below installs this RPM:
|
||||
== Setting up dnf-automatic
|
||||
|
||||
[source,bash]
|
||||
`dnf-automatic` is not installed by default. Install it with:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install dnf-automatic
|
||||
$ sudo dnf install dnf-automatic
|
||||
----
|
||||
|
||||
By default, dnf-automatic runs from the configurations in the `/etc/dnf/automatic.conf` file. These configurations only download, but do not apply any of the packages. In order to change or add any configurations, open the `.conf` file as the root user (or using `sudo`) from a terminal window.
|
||||
=== Configuring automatic.conf
|
||||
|
||||
[source,bash]
|
||||
`dnf-automatic` reads its configuration from `/etc/dnf/automatic.conf`.
|
||||
By default it downloads updates but does not install them.
|
||||
Open the file to adjust this:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo nano /etc/dnf/automatic.conf
|
||||
$ sudo nano /etc/dnf/automatic.conf
|
||||
----
|
||||
|
||||
A modification to automatic.conf to download all updates, apply them, and reboot could be:
|
||||
To download, install, and reboot when needed:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
|
@ -67,153 +63,34 @@ apply_updates=True
|
|||
reboot=when-needed
|
||||
----
|
||||
|
||||
Omit reboot=when-needed to manually reboot. A full and detailed description of dnf-automatic settings is provided on the
|
||||
https://dnf5.readthedocs.io/en/latest/dnf5_plugins/automatic.8.html[dnf-automatic] page.
|
||||
Omit `reboot=when-needed` to leave rebooting to you.
|
||||
See the https://dnf5.readthedocs.io/en/latest/dnf5_plugins/automatic.8.html[dnf-automatic documentation] for the full list of options.
|
||||
|
||||
[[run-dnf-automatic]]
|
||||
=== Run dnf-automatic
|
||||
=== Enabling the timer
|
||||
|
||||
Once you are finished with the configuration, execute:
|
||||
Once configured, enable and start the systemd timer:
|
||||
|
||||
[source,bash]
|
||||
[source,bash,console]
|
||||
----
|
||||
systemctl enable --now dnf-automatic.timer
|
||||
$ sudo systemctl enable --now dnf-automatic.timer
|
||||
----
|
||||
|
||||
to enable and start the `systemd` timer.
|
||||
Check that it is running:
|
||||
|
||||
Check status of `dnf-automatic`:
|
||||
|
||||
[source,bash]
|
||||
[source,bash,console]
|
||||
----
|
||||
systemctl status dnf-automatic.timer
|
||||
$ systemctl status dnf-automatic.timer
|
||||
----
|
||||
|
||||
NOTE: Fedora signs packages with GPG (GNU Privacy Guard) keys and enables `gpgcheck` by default in `/etc/dnf/dnf.conf`, so DNF verifies each automatically installed update before installation. Update quality is a separate concern. Each package goes through a QA process, but it is always possible that an update causes problems. Monitoring your system after updates is good practice regardless.
|
||||
|
||||
Note: pre-configured timers like `automatic-download.timer`, `automatic-install.timer` and `automatic-notifyonly.timer` were merged into `dnf-automatic.timer` for versions above Fedora 40 with the switch to dnf5. For the replacement commands, please see the https://dnf5.readthedocs.io/en/latest/dnf5_plugins/automatic.8.html#options[options section] in the upstream dnf documentation.
|
||||
== Monitoring updates
|
||||
|
||||
Check what `dnf-automatic` has installed by monitoring its log file `/var/log/dnf5.log`.
|
||||
|
||||
[[can-we-trust-dnf-updates]]
|
||||
== Can we trust DNF updates?
|
||||
To receive email notifications after each run, add the following to `/etc/dnf/automatic.conf`:
|
||||
|
||||
Dnf in Fedora has the GPG key checking enabled by default.
|
||||
Assuming that you have imported the correct GPG keys, and still have
|
||||
`gpgcheck=1` in your `/etc/dnf/dnf.conf`, then we can at least assume that
|
||||
any automatically installed updates were not corrupted or modified from
|
||||
their original state. Using the GPG key checks, there is no way for an
|
||||
attacker to generate packages that your system will accept as valid
|
||||
(unless they have a copy of the *private* key corresponding to one you
|
||||
installed) and any data corruption during download would be caught.
|
||||
|
||||
However, the question would also apply to the question of update
|
||||
quality. Will the installation of the package cause problems on your
|
||||
system? This we can not answer. Each package goes through a QA process,
|
||||
and is assumed to be problem free. But, problems happen, and QA can not
|
||||
test all possible cases. It is always possible that any update may cause
|
||||
problems during or after installation.
|
||||
|
||||
[[why-use-automatic-updates]]
|
||||
== Why use automatic updates?
|
||||
|
||||
The main advantage of automating the updates is that machines are likely
|
||||
to get updated more quickly, more often, and more uniformly than if the
|
||||
updates are done manually. We see too many compromised machines on the
|
||||
internet which would have been safe if the latest updates where
|
||||
installed in a timely way.
|
||||
|
||||
So while you should still be cautious with any automated update
|
||||
solution, in particular on production systems, it is definitely worth
|
||||
considering, at least in some situations.
|
||||
|
||||
[[reasons-for-using-automatic-updates]]
|
||||
=== Reasons FOR using automatic updates
|
||||
|
||||
While no one can determine for you if your machine is a good candidate
|
||||
for automatic updates, there are several things which tend to make a
|
||||
machine a better candidate for automatic updates.
|
||||
|
||||
Some things which might make your machine a good candidate for automatic
|
||||
updates are:
|
||||
|
||||
* You are unlikely to apply updates manually for whatever reason(s).
|
||||
* The machine is not critical and occasional unplanned downtime is
|
||||
acceptable.
|
||||
* You can live without remote access to the machine until you can get to
|
||||
its physical location to resolve problems.
|
||||
* You do not have any irreplaceable data on the machine, or have proper
|
||||
backups of such data.
|
||||
|
||||
If all the above apply to your machine(s), then automatic updates may
|
||||
be your best option to help secure your machine. If not all the above
|
||||
apply, then you will need to weigh the risks and decide for yourself if
|
||||
automatic updates are the best way to proceed.
|
||||
|
||||
[[reasons-against-using-automatic-updates]]
|
||||
=== Reasons AGAINST using automatic updates
|
||||
|
||||
While no one can determine for you if your machine is a bad candidate
|
||||
for automatic updates, there are several things which tend to make a
|
||||
machine a worse candidate for automatic updates.
|
||||
|
||||
Some things which might make your machine be a bad candidate for
|
||||
automatic updates are:
|
||||
|
||||
* It provides a critical service that you don't want to risk having
|
||||
unscheduled downtime.
|
||||
* You installed custom software, compiled software from source, or use
|
||||
third party software that has strict package version requirements.
|
||||
* You installed a custom kernel, custom kernel modules, third party
|
||||
kernel modules, or have a third party application that depends on kernel
|
||||
versions (this may not be a problem if you exclude kernel updates, which
|
||||
is the default in Fedora `dnf.conf` files). (See also
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=870790[bug #870790] - you
|
||||
may need to modify the base section to add
|
||||
`exclude=kernel*`.)
|
||||
* Your environment requires meticulous change-control procedures.
|
||||
* You update from other third party DNF repositories besides Fedora
|
||||
repositories which may conflict in versioning
|
||||
schemes for the same packages.
|
||||
|
||||
There are also some other reasons why installing automatic updates
|
||||
without testing may be a bad idea. A few such reasons are:
|
||||
|
||||
* The need to back up your configuration files before an update. Even
|
||||
the best package spec files can have mistakes. If you have modified a
|
||||
file which is not flagged as a configuration file, then you might lose
|
||||
your configuration changes. Or an update may have a different format of
|
||||
configuration file, requiring a manual reconfiguration. It is often best
|
||||
to back up your configuration files before doing updates on critical
|
||||
packages such as mail, web, or database server packages.
|
||||
* Unwanted side effects. Some packages can create annoying side effects,
|
||||
particularly ones which have cron jobs. Updates to base packages like
|
||||
openssl, openldap, sql servers, etc. can have an effect on many other
|
||||
seemingly unrelated packages.
|
||||
* Bugs. Many packages contain buggy software or installation scripts.
|
||||
The update may create problems during or after installation. Even cosmetic
|
||||
bugs, like those found in previous Mozilla updates causing the user's
|
||||
icons to be removed or break, can be annoying or problematic.
|
||||
* Automatic updates may not complete the entire process needed to make the
|
||||
system secure. For example, DNF can install a kernel update, but until the
|
||||
machine is rebooted (which DNF will not do automatically) the new changes
|
||||
won't take effect.
|
||||
The same may apply to restarting daemons. This can leave the user feeling
|
||||
that they are secure when they are not.
|
||||
|
||||
|
||||
[[best-practices-when-using-automatic-updates]]
|
||||
== Best practices when using automatic updates
|
||||
|
||||
If you decide to use automatic updates, you should at least do a few
|
||||
things to make sure you are up-to-date.
|
||||
|
||||
Check for package updates which have been automatically performed, and
|
||||
note if they need further (manual) intervention. You can monitor what
|
||||
DNF has updated via its log file (usually `/var/log/dnf.log`).
|
||||
|
||||
You can monitor updates availability automatically by email after
|
||||
modifying the dnf-automatic configuration file (usually `/etc/dnf/automatic.conf`).
|
||||
|
||||
[source,bash]
|
||||
[source]
|
||||
----
|
||||
[emitters]
|
||||
emit_via = email
|
||||
|
|
@ -229,81 +106,48 @@ email_to = root
|
|||
email_host = localhost
|
||||
----
|
||||
|
||||
You would replace root with an actual email address to which you want the
|
||||
report sent, and localhost with an actual address of a SMTP server. This
|
||||
change will mean that after dnf-automatic runs, it will email you
|
||||
information about available updates, a log about downloaded
|
||||
packages, or installed updates according to settings in `automatic.conf`.
|
||||
Replace `root` with the address you want reports sent to, and `localhost` with your SMTP server address.
|
||||
|
||||
[[alternative-methods]]
|
||||
== Alternative methods
|
||||
== Adjusting update behaviour
|
||||
|
||||
As an alternative to dnf-automatic,
|
||||
https://github.com/rackerlabs/auter[auter] can be used. This operates in
|
||||
a similar way to dnf-automatic, but provides more flexibility in scheduling,
|
||||
and some additional options including running custom scripts before or
|
||||
after updates, and automatic reboots. This comes at the expense of
|
||||
more complexity to configure.
|
||||
=== Download-only or notify-only mode
|
||||
|
||||
[source,bash]
|
||||
If you would rather review updates before installing them, set `apply_updates=False` in `/etc/dnf/automatic.conf`.
|
||||
`dnf-automatic` will then download updates without applying them, and can notify you by email.
|
||||
The options in `automatic.conf` control the full range of behaviour, including notify-only without downloading.
|
||||
See the https://dnf5.readthedocs.io/en/latest/dnf5_plugins/automatic.8.html#options[dnf-automatic options reference] for details.
|
||||
|
||||
=== Scheduling
|
||||
|
||||
By default, `dnf-automatic.timer` runs once daily.
|
||||
To change when it runs, change the timer by using the instructions on the xref:understanding-and-administering-systemd.adoc[Understanding and administering systemd] page.
|
||||
|
||||
=== Other protection while updates are pending
|
||||
|
||||
If you pause or delay automatic updates, consider additional precautions: a host-based firewall by using xref:firewalld.adoc[firewalld], monitoring system logs for intrusions, and restarting services that require it after updates are applied.
|
||||
|
||||
== Alternative tools
|
||||
|
||||
https://github.com/rackerlabs/auter[auter] is an alternative to `dnf-automatic` that offers more flexibility in scheduling and supports running custom scripts before and after updates, including automatic reboots.
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install auter
|
||||
$ sudo dnf install auter
|
||||
----
|
||||
|
||||
You should then edit the configuration. Descriptions of the options are contained in the
|
||||
conf file `/etc/auter/auter.conf`.
|
||||
Edit `/etc/auter/auter.conf` to configure it.
|
||||
`auter` is not scheduled by default. Add a schedule for `--prep` (pre-download) and `--apply` (install updates) using the examples in `/etc/cron.d/auter`.
|
||||
|
||||
Auter is not scheduled by default. Add a schedule for `--prep` (if you
|
||||
want to pre-download updates) and `--apply` (install updates). The
|
||||
installed cron job which you can see in `/etc/cron.d/auter` contains lots of examples.
|
||||
To run auter immediately for testing:
|
||||
|
||||
To make auter run immediately without waiting for the cron job to run,
|
||||
for example for testing or debugging, you can simply run it from the
|
||||
command line:
|
||||
|
||||
[source,bash]
|
||||
[source,bash,console]
|
||||
----
|
||||
auter --apply
|
||||
$ auter --apply
|
||||
----
|
||||
|
||||
If you want to disable auter from running, including from any cron job:
|
||||
To disable auter from running, including from any cron job:
|
||||
|
||||
[source,bash]
|
||||
[source,bash,console]
|
||||
----
|
||||
auter --disable
|
||||
$ auter --disable
|
||||
----
|
||||
|
||||
[[alternatives-to-automatic-updates]]
|
||||
== Alternatives to automatic updates
|
||||
|
||||
[[notifications]]
|
||||
=== Notifications
|
||||
|
||||
Instead of automatic updates, dnf-automatic can only download new
|
||||
updates and can alert you via email of available updates which you
|
||||
could then install manually. This can be set by editing of `/etc/dnf/automatic.conf` file.
|
||||
|
||||
[[scheduling-updates]]
|
||||
=== Scheduling updates
|
||||
|
||||
Another common problem is having automatic updates run when it isn't
|
||||
desired (holidays, weekends, vacations, etc). If there are times that no
|
||||
one will be around to fix any problem arising from the updates, it
|
||||
may be best to avoid doing updates on those days.
|
||||
|
||||
This problem can be fixed by modification of the timer of dnf-automatic
|
||||
using the description on the
|
||||
xref:understanding-and-administering-systemd.adoc[Understanding and administering systemd]
|
||||
page.
|
||||
|
||||
[[other-methods-of-protection]]
|
||||
=== Other methods of protection
|
||||
|
||||
Yet another thing to consider if not using automatic updates is to
|
||||
provide your machine with some other forms of protection to help defend it of
|
||||
any attacks that might occur before updates are in place. This might
|
||||
include an external firewall, a host-based firewall (like iptables,
|
||||
ipchains, and/or tcp wrappers), not performing dangerous tasks on the
|
||||
computer (like browsing the web, reading e-mail, etc.), and monitoring
|
||||
the system for intrusions (with system log checkers, IDS systems,
|
||||
authentication or login monitoring, etc).
|
||||
|
|
|
|||
150
modules/ROOT/pages/dnf-repository-mirror.adoc
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
= Creating a DNF Repository Mirror
|
||||
Rowan Puttergill; Fedora Documentation Team
|
||||
:revnumber: F42 and newer
|
||||
:revdate: 2026-05-10
|
||||
:category: Administration
|
||||
:tags: How-to, DNF, Repositories, Mirror
|
||||
|
||||
[abstract]
|
||||
A local DNF repository mirror lets you serve Fedora package updates from your own infrastructure.
|
||||
This is useful for organisations managing multiple Fedora systems, restricted or metered network environments, or testing updates on a staging system before rolling them out to production.
|
||||
|
||||
== Prerequisites
|
||||
|
||||
=== Disk space
|
||||
|
||||
Use `dnf repoinfo` to check the size of each repository you plan to mirror:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ dnf repoinfo fedora updates
|
||||
----
|
||||
|
||||
The `Repodate Info: Size` fields in the output show the total package size for each repository.
|
||||
Run the same command for any additional repositories you want to mirror, using `dnf repolist` to see available repository IDs.
|
||||
|
||||
NOTE: Repository size grows throughout a release lifecycle as updates accumulate. The `updates` repository in particular grows steadily from release day until end-of-life. Budget additional headroom beyond the initial estimate. Repositories can grow by up to 30% or more over the lifecycle of a release, so plan accordingly.
|
||||
|
||||
=== Installing dnf5-plugins
|
||||
|
||||
The `dnf reposync` command comes from the `dnf5-plugins` package:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf install dnf5-plugins
|
||||
----
|
||||
|
||||
=== An HTTP server
|
||||
|
||||
A web server is required to serve the mirrored content to other systems.
|
||||
This guide uses Apache httpd, but nginx works equally well.
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf install httpd
|
||||
$ sudo systemctl enable --now httpd
|
||||
----
|
||||
|
||||
== Syncing the repository
|
||||
|
||||
Use `dnf reposync` to download repository content to a local directory.
|
||||
The following example syncs the `fedora` and `updates` repositories:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf reposync --repo=fedora --repo=updates --download-path=/var/www/html/mirror
|
||||
----
|
||||
|
||||
To limit the sync to specific architectures and avoid downloading packages you do not need:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf reposync --repo=fedora --repo=updates --download-path=/var/www/html/mirror --arch=x86_64 --arch=noarch
|
||||
----
|
||||
|
||||
To remove packages from the local mirror that are no longer present in the remote repository:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf reposync --repo=fedora --repo=updates --download-path=/var/www/html/mirror --delete
|
||||
----
|
||||
|
||||
The synced content is now accessible at `http://localhost/mirror/`, or whatever your server's hostname or IP address is.
|
||||
|
||||
NOTE: The first sync downloads the full repository and can take a long time depending on your connection. Later syncs only download new or changed packages.
|
||||
|
||||
== Configuring client systems
|
||||
|
||||
On each system that should use the local mirror, create a `.repo` file in `/etc/yum.repos.d/`.
|
||||
For example, `/etc/yum.repos.d/local-mirror.repo`:
|
||||
|
||||
[source]
|
||||
----
|
||||
[local-fedora]
|
||||
name=Local Fedora mirror
|
||||
baseurl=http://mirror-server/mirror/fedora/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[local-updates]
|
||||
name=Local Fedora updates mirror
|
||||
baseurl=http://mirror-server/mirror/updates/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
----
|
||||
|
||||
Replace `mirror-server` with the hostname or IP address of your mirror server.
|
||||
|
||||
To ensure clients use only the local mirror, disable the default Fedora repositories by setting `enabled=0` in `/etc/yum.repos.d/fedora.repo` and `/etc/yum.repos.d/fedora-updates.repo`.
|
||||
|
||||
== GPG verification
|
||||
|
||||
`dnf reposync` downloads repository metadata and packages including their signatures.
|
||||
Clients use the Fedora GPG keys already present at `/etc/pki/rpm-gpg/` to verify packages, so no additional key configuration is required.
|
||||
|
||||
== Keeping the mirror current
|
||||
|
||||
Set up a systemd service and timer to sync the mirror automatically.
|
||||
|
||||
Create a service file at `/etc/systemd/system/dnf-mirror.service`:
|
||||
|
||||
[source]
|
||||
----
|
||||
[Unit]
|
||||
Description=Sync DNF repository mirror
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=dnf reposync --repo=fedora --repo=updates --download-path=/var/www/html/mirror --delete
|
||||
----
|
||||
|
||||
Create the timer at `/etc/systemd/system/dnf-mirror.timer`:
|
||||
|
||||
[source]
|
||||
----
|
||||
[Unit]
|
||||
Description=Daily DNF repository mirror sync
|
||||
|
||||
[Timer]
|
||||
OnCalendar=daily
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
----
|
||||
|
||||
Enable and start the timer:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo systemctl enable --now dnf-mirror.timer
|
||||
----
|
||||
|
||||
Verify the timer is active:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ systemctl status dnf-mirror.timer
|
||||
----
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
= DNF and its APT command equivalents on Fedora
|
||||
Michal Ambroz; Christopher Engelhard ; The Fedora Docs team
|
||||
Michal Ambroz; Christopher Engelhard ; The Fedora Docs team
|
||||
:revnumber: F37
|
||||
:revdate: 2023-02-03
|
||||
:category: Administration
|
||||
:tags: How-to, DNF
|
||||
|
||||
// Optional free form useful additional information as comment
|
||||
// Optional free form useful additional information as comment
|
||||
|
||||
|
||||
APT is the package manager/dependency solver for the Debian ecosystem, i.e. it manages `.deb` packages installed by the DPKG program. Fedora software is based on `.rpm` packages, and thus uses DNF, the package manager/dependency solver for the RPM program, instead. This document gives a brief overview of the most common APT commands one might find in tutorials and their DNF equivalents.
|
||||
APT is the package manager/dependency solver for the Debian ecosystem, i.e. it manages `.deb` packages installed by the DPKG program. Fedora software is based on `.rpm` packages, and therefore uses DNF, the package manager/dependency solver for the RPM program, instead. This document gives a brief overview of the most common APT commands one might find in tutorials and their DNF equivalents.
|
||||
|
||||
== APT vs. DNF commands
|
||||
== APT compared to DNF commands
|
||||
|
||||
.Apt vs DNF commands
|
||||
.APT compared to DNF commands
|
||||
|===
|
||||
| APT command | DNF command | notes
|
||||
|
||||
|
|
@ -66,7 +66,7 @@ APT is the package manager/dependency solver for the Debian ecosystem, i.e. it m
|
|||
`apt-get purge`
|
||||
|
||||
| ---
|
||||
| Fedora packages don't treat configuration files in the same way as Debian packages, so there is no direct equivalent.
|
||||
| Fedora packages do not treat configuration files in the same way as Debian packages, so there is no direct equivalent.
|
||||
|
||||
| `apt autoremove`
|
||||
|
||||
|
|
@ -86,11 +86,11 @@ APT is the package manager/dependency solver for the Debian ecosystem, i.e. it m
|
|||
|
||||
With the exceptions of the distribution upgrade working differently, and DNF updating the cache automatically, the commands are very similar. More info on DNF can be found xref:dnf.adoc[here].
|
||||
|
||||
== Why is APT in the Fedora repositories?
|
||||
== Why is APT in the Fedora repositories
|
||||
|
||||
WARNING: APT *can not* be used to install packages on Fedora, you *have to use DNF* instead.
|
||||
|
||||
The `apt` command on Fedora used to -- until https://fedoraproject.org/wiki/Changes/Move_apt_package_from_RPM_to_DPKG_backend[Fedora 32] -- actually be APT-RPM, which basically mapped normal apt commands so that they worked with Fedora's RPM package management system.
|
||||
The `apt` command on Fedora used to -- until https://fedoraproject.org/wiki/Changes/Move_apt_package_from_RPM_to_DPKG_backend[Fedora 32] -- actually be APT-RPM, which mapped normal apt commands so that they worked with Fedora's RPM package management system.
|
||||
|
||||
However, APT-RPM is unmaintained, broken, and insecure, and so was dropped in favour of shipping the actual Debian APT software. Since APT exclusively deals with `.deb` packages, the `apt` command can no longer be used to manage Fedora packages. Its purpose is now purely as a tool for people building packages for Debian-based distributions on a Fedora system.
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ Weverton do Couto Timoteo; JetStream ; The Fedora Docs team
|
|||
:category: Administration
|
||||
:tags: How-to, DNF
|
||||
|
||||
// Optional free form useful additional information as comment
|
||||
// Optional free form useful additional information as comment
|
||||
|
||||
[abstract]
|
||||
DNF is a software package manager that installs, updates, and removes packages on Fedora and is the successor to YUM (Yellow-Dog Updater Modified).
|
||||
|
|
@ -15,6 +15,8 @@ DNF makes it easy to maintain packages by automatically checking for dependencie
|
|||
This method eliminates the need to manually install or update the package, and its dependencies, using the `rpm` command.
|
||||
DNF is now the default software package management tool in Fedora.
|
||||
|
||||
NOTE: DNF applies to standard Fedora editions. On image-based variants such as the Fedora Atomic Desktops and Fedora CoreOS, package management works differently. See the xref:atomic-desktops::index.adoc[Fedora Atomic Desktops User Guide] for details.
|
||||
|
||||
[[sect-usage]]
|
||||
== Usage
|
||||
|
||||
|
|
@ -22,20 +24,23 @@ DNF is now the default software package management tool in Fedora.
|
|||
|
||||
To search the repositories for a package type:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
# dnf search packagename
|
||||
$ dnf search packagename
|
||||
----
|
||||
|
||||
To install the package:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
# dnf install packagename
|
||||
$ sudo dnf install packagename
|
||||
----
|
||||
|
||||
To remove a package:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
# dnf remove packagename
|
||||
$ sudo dnf remove packagename
|
||||
----
|
||||
|
||||
Other common DNF commands include:
|
||||
|
|
@ -60,7 +65,7 @@ For more DNF commands refer to the man pages by typing `man dnf` at the command-
|
|||
== Automatic Updates
|
||||
|
||||
The `dnf-automatic` package is a component that allows automatic download and installation of updates.
|
||||
It can automatically monitor and report, via e-mail, the availability of updates or send a log about downloaded packages and installed updates.
|
||||
It can automatically monitor and report, via email, the availability of updates or send a log about downloaded packages and installed updates.
|
||||
|
||||
For more information, refer to the link:https://dnf.readthedocs.org/en/latest/automatic.html[Read the Docs: DNF-Automatic] page.
|
||||
|
||||
|
|
@ -84,14 +89,16 @@ There are officially supported https://dnf-plugins-core.readthedocs.io[Core DNF
|
|||
and also third-party https://dnf-plugins-extras.readthedocs.io[Extras DNF Plugins].
|
||||
To install them, run
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
# dnf install dnf-plugins-core-PLUGIN_NAME
|
||||
$ sudo dnf install dnf-plugins-core-PLUGIN_NAME
|
||||
----
|
||||
|
||||
or
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
# dnf install dnf-plugins-extras-PLUGIN_NAME
|
||||
$ sudo dnf install dnf-plugins-extras-PLUGIN_NAME
|
||||
----
|
||||
|
||||
[[exclude-package]]
|
||||
|
|
@ -103,21 +110,23 @@ DNF allows you to exclude a package from the transaction:
|
|||
|
||||
* using the command line
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf upgrade --exclude=packagename
|
||||
$ sudo dnf upgrade --exclude=packagename
|
||||
----
|
||||
|
||||
* using its configuration files
|
||||
|
||||
You can add a line to `/etc/dnf/dnf.conf` to exclude packages:
|
||||
|
||||
[source,source]
|
||||
----
|
||||
excludepkgs=packagename
|
||||
----
|
||||
|
||||
This can also be added to the specific repository configuration files in `/etc/yum.repos.d/`.
|
||||
https://en.wikipedia.org/wiki/Glob_(programming)[Globs] may be used here to list multiple packages, and each specification must be separated by a comma.
|
||||
If you have used this configuration, you can disable it in individual DNF commands using using the `--disableexcludes` command line switch.
|
||||
If you have used this configuration, you can disable it in individual DNF commands using the `--disableexcludes` command line switch.
|
||||
|
||||
If you use a GUI update application which does not allow you to specify packages to exclude when they run, this method can be used.
|
||||
|
||||
|
|
@ -129,20 +138,23 @@ It allows you to list what versions of particular packages should be considered
|
|||
All other versions of the specified packages will be ignored.
|
||||
The plugin is part of `dnf-plugins-core` package and can be installed using the command below:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install 'dnf-command(versionlock)'
|
||||
$ sudo dnf install 'dnf-command(versionlock)'
|
||||
----
|
||||
|
||||
To lock the currently installed version of a package, use:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf versionlock add package
|
||||
$ sudo dnf versionlock add package
|
||||
----
|
||||
|
||||
To remove the version lock, use:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf versionlock delete package
|
||||
$ sudo dnf versionlock delete package
|
||||
----
|
||||
|
||||
The `list` command can be used to list all locked packages, while the `clear` command will delete all locked entries.
|
||||
|
|
|
|||
94
modules/ROOT/pages/fedora-and-software-patents.adoc
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
= Fedora and Software Patents
|
||||
Caleb McKee; Frank Sträter
|
||||
:revnumber: F42 and newer
|
||||
:revdate: 2021-02-10
|
||||
:category: Community
|
||||
:tags: Legal, Software Patents, Licensing
|
||||
|
||||
[abstract]
|
||||
This page explains Fedora's position on software patents, why patent restrictions affect what software Fedora can include, and how Fedora and Red Hat actively work to reduce the impact of software patents on free and open source software.
|
||||
|
||||
WARNING: This information is provided only for answering common questions from Fedora users and should not be read as legal advice. What applies to Red Hat and the Fedora Project may not necessarily apply to you. If you need legal assistance, consult your own lawyer. This material does not represent the official views of Red Hat or the Fedora Project.
|
||||
|
||||
[[what-is-a-software-patent]]
|
||||
== What is a software patent?
|
||||
A patent is a set of exclusionary rights granted by a government to a patent holder for a limited period of time, usually 20 years from the earliest effective filing date of the patent application. These monopoly rights are granted to patent applicants in exchange for their disclosure of the invention claimed by the patent. Once a patent is granted in a given country, the patent holder may exclude someone from making, using, selling or importing embodiments of the claimed invention in that country. Software patents are different from copyright or trademarks despite being lumped together with them under the collective term link:https://www.gnu.org/philosophy/not-ipr.html[Intellectual Property].
|
||||
|
||||
[[who-is-responsible-for-taking-care-of-any-legal-issues-in-fedora]]
|
||||
== Who is responsible for taking care of any legal issues in Fedora?
|
||||
The Fedora Project is not a separate and distinct legal entity. Red Hat, the primary sponsor of the Fedora Project, is actively involved in legal matters relating to Fedora, along with other Fedora participants. For example, Red Hat lawyers assist Fedora Project contributors in issues pertaining to free and open source software licensing, trademarks and patents. Refer to the xref:legal::index.adoc[Legal] page for more information.
|
||||
|
||||
[[if-software-patents-are-not-recognized-in-all-regions-why-not]]
|
||||
== If software patents are not recognized in all regions, why can't you distribute Fedora with such software in other regions?
|
||||
Contrary to common belief, software patents are granted in some form or other in most countries, including most of the countries in which most Fedora participants reside.
|
||||
|
||||
[[cant-you-pay-the-patent-license-fees-for-patent-encumbered-codecs]]
|
||||
== Can't you pay the patent license fees for patent encumbered codecs?
|
||||
A codec is a set of methods to encode and decode video or audio information into a data stream. In the case of codecs like WMV, the company or companies associated with developing the format are also involved in asserting (or restrictively licensing) patents that purportedly cover the format; we refer to such codecs as "patent encumbered". Other codecs, such as WebM, Ogg Theora or Ogg Vorbis, Dirac, and FLAC, are made available by their developers without asserting patents on their implementations; we refer to such codecs as "patent unencumbered". Fedora includes comprehensive support for open, patent-unencumbered codecs but is unable to include support for the patent encumbered ones.
|
||||
|
||||
Patent licenses usually require the licensee to pay royalties based on the number of users. Since Fedora is free and open source software, the effective number of users is essentially unrestricted. Patent holders are generally unwilling to give a blanket patent license for unlimited use; moreover, the royalty payments would be too high for it to be practical for the Fedora Project, or its sponsors, to pay them. Proprietary operating systems like Microsoft Windows include the costs of third-party patent licenses in the pricing of the product as sold to end users. Fedora is not sold commercially, so there is no way to recoup these substantial expenses.
|
||||
|
||||
Even if funds were available to do so, such royalty-bearing patent licenses would have to be compatible with the free/open source software licenses governing the software covered by the patent license. In practice this is usually challenging. For example, the most widely-used FOSS licenses (GPL and LGPL) place constraints on the ability of distributors to distribute software under benefit of third-party patent licenses. Even if the software in question is placed under some other license, distributing such software under benefit of a patent license may make the software effectively non-free and thus incompatible with Fedora legal policies.
|
||||
|
||||
[[there-are-free-and-open-software-implementations-of-the-codecs]]
|
||||
== There are free and open software implementations of the codecs. Why don't you include them?
|
||||
When we speak of an implementation being FOSS, usually we are thinking only in terms of copyright licensing. An independent FOSS implementation of a patent-encumbered codec, however, is subject to at least as much patent risk as, say, some proprietary reference implementation of the same codec. Note that while copyright covers only a particular implementation of software, patents are broader because they are more abstract, covering ideas that might be implemented in software in any number of ways.
|
||||
|
||||
[[cant-you-link-to-third-party-repositories-and-guide-users-to-find]]
|
||||
== Can't you link to third party repositories and guide users to find such software?
|
||||
In general, no, because of the risk of liability for link:https://en.wikipedia.org/wiki/Patent_infringement[contributory patent infringement].
|
||||
|
||||
[[how-is-it-that-some-other-linux-distributions-include-such-software]]
|
||||
== How is it that some other Linux distributions include such software?
|
||||
There are different reasons:
|
||||
|
||||
* Some of them include proprietary software, in some cases charging users for their product, where the charge incorporates the cost of licensing third-party patents. Fedora is not a commercial product and has a policy of not distributing proprietary software.
|
||||
* They are willing to deal with the risk somehow. In some cases, it is because they are not backed by a large and profitable company like Red Hat. Red Hat, the legal entity and primary sponsor of the Fedora Project determines its own risks which can be different from other organizations.
|
||||
|
||||
[[what-is-bad-about-patented-formats]]
|
||||
== What is bad about patented formats?
|
||||
Even if you are willing to pay for patent licenses, there are other things to consider:
|
||||
|
||||
* No guarantee that your consumers actually will be able to read the data you're trying to produce. If you've reached this page, you've already experienced this - by producing media in a patented format, you automatically limit your audience to whatever platforms the patent holder has licensed their software to.
|
||||
* No guarantee of being able to access your data forever. If you're using some software to view a patented media format, what happens if that software vendor goes out of business, or refuses to port their software to newer systems? You no longer have access to your data.
|
||||
|
||||
Note that this isn't even restricted to patented media formats - the same applies to popular proprietary formats used for word processing, spreadsheets, presentations, etc.
|
||||
|
||||
For more information about how software patents are bad, refer to the link:https://ffii.org/[Foundation for a Free Information Infrastructure].
|
||||
|
||||
[[cant-you-convert-a-patent-encumbered-code-to-an-open-codec]]
|
||||
== Can't you convert a patent encumbered codec to an open codec?
|
||||
Fedora cannot include the decoders necessary to do this since those are patent encumbered as well. Although users might be able to do this, converting from one format to another typically results in a visible loss of quality. The only long term viable method is to encourage the creation of content in open formats and Fedora and Red Hat actively encourage and participate in such activities.
|
||||
|
||||
[[how-fedora-works-against-software-patents]]
|
||||
== How Fedora works against software patents
|
||||
* __Fedora sponsors development of free, non-patent-encumbered open formats__
|
||||
|
||||
In support of free culture and the open web, and to reduce the hold of proprietary and patent encumbered codecs, Red Hat has been sponsoring improvements on the open Ogg Theora video codec.
|
||||
|
||||
* __Fedora uses free, non-patented, open formats by default that anyone can implement, use, and view without having to obtain patent licenses__
|
||||
|
||||
Instead of Windows Media, use WebM or Ogg Theora. Instead of Microsoft Office Open XML, use link:https://en.wikipedia.org/wiki/OpenDocument[Open Document format] documents, or even PDF. Vote with your currency by purchasing hardware and solutions that support these free and open formats.
|
||||
|
||||
[[the-problem-with-proprietary-and-patent-encumbered-media-formats]]
|
||||
== The problem with proprietary and patent encumbered media formats
|
||||
Imagine sitting down to your email. Your sister has sent you some pictures of your niece. However, when you go to look at them, all you see is:
|
||||
|
||||
__I'm sorry, you need Frobozz Viewer 3.0 to view this file. It's only $19.99, have your credit card ready.__
|
||||
|
||||
Later, you go to view your mail on a public computer at the local library. And you get the same dialog box on their computer.
|
||||
|
||||
That is the reality for any sound, image, or document format that is encumbered by software patents that require licensing - any application that wishes to view, play, or create them requires paying the patent holders a fee. Normally, software and hardware vendors include this support, but they pass the costs directly onto the consumers in the cost of their software or hardware.
|
||||
|
||||
Fedora, however, has a link:https://docs.fedoraproject.org/en-US/project/objectives/[public promise] to always be freely redistributable by anyone. That is why Fedora cannot include support for patented media formats - it would break this redistribution promise. Fedora supports open media formats such as WebM or Ogg link:https://xiph.org/vorbis/[Vorbis] and link:https://www.theora.org/[Theora], which are **freely implementable and usable by anyone without a patent license**.
|
||||
|
||||
Red Hat has consistently taken the position that software patents generally impede innovation in software development and that software patents are inconsistent with open source/free software. Red Hat holds several software patents for defensive purposes and has a patent policy under which it agrees to refrain from enforcing its patents against any party for exercising rights under certain free and open source software licenses, including GPLv2, GPLv3, LGPLv2.1, and LGPLv3.
|
||||
|
||||
* https://www.redhat.com/en/about/patent-promise
|
||||
|
||||
[[references]]
|
||||
== References
|
||||
* https://fedoraproject.org/wiki/Forbidden_items
|
||||
* https://docs.fedoraproject.org/en-US/project/
|
||||
* https://www.gnu.org/philosophy/why-audio-format-matters.html
|
||||
* https://dwheeler.com/essays/software-patents.html
|
||||
|
|
@ -19,16 +19,16 @@ The _fedora_ repository exists for all Fedora releases after they have link:http
|
|||
[[the-fedora-repository-in-stable-releases]]
|
||||
=== The _fedora_ repository in stable releases
|
||||
|
||||
For stable releases, _fedora_ represents the frozen release state. It is a part of the frozen tree that is created by https://fedoraproject.org/wiki/ReleaseEngineering[Release Engineering] when a release is approved at a https://fedoraproject.org/wiki/Go_No_Go_Meeting[Go/No-Go Meeting]. The package set it contains never changes after that time. It represents the _stable_ state of a stable release in conjunction with _updates_ repository.
|
||||
For stable releases, _fedora_ represents the frozen release state. It is a part of the frozen tree that is created by https://fedoraproject.org/wiki/ReleaseEngineering[Release Engineering] when a release is approved at a https://fedoraproject.org/wiki/Go_No_Go_Meeting[Go/No-Go Meeting]. The package set it includes never changes after that time. It represents the _stable_ state of a stable release in conjunction with _updates_ repository.
|
||||
|
||||
The stable release _fedora_ repositories for the various primary architectures can be found in the `/fedora/linux/releases/XX/Everything` directory on the mirrors (where XX is the release), and can also be queried from MirrorManager. For instance, https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-{MAJOROSVER}&arch=x86_64 will return mirrors for the x86_64 _fedora_ repository for release {MAJOROSVER}.
|
||||
The stable release _fedora_ repositories for the various primary architectures can be found in the `/fedora/linux/releases/XX/Everything` directory on the mirrors (where XX is the release), and can also be queried from MirrorManager. For example, https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-{MAJOROSVER}&arch=x86_64 will return mirrors for the x86_64 _fedora_ repository for release {MAJOROSVER}.
|
||||
|
||||
[[the-fedora-repository-in-branched-releases]]
|
||||
=== The _fedora_ repository in Branched releases
|
||||
|
||||
In Branched releases - the state a release is in between branching from Rawhide and stable release, see https://fedoraproject.org/wiki/Releases/Branched[Branched] for more details - the fedora repository alone represents the release's stable state. The _updates_ repository for Branched releases is not used until they become stable. Before the https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#updates-testing-activation[updates-testing activation], package builds for the Branched release are sent directly to this repository. After the _Bodhi enabling point_, package builds that pass the https://fedoraproject.org/wiki/Updates_Policy[Updates Policy] move from _updates-testing_ repository to this repository.
|
||||
In Branched releases - the state a release is in between branching from Rawhide and stable release, see https://fedoraproject.org/wiki/Releases/Branched[Branched] for more details - the fedora repository alone represents the release's stable state. The _updates_ repository for Branched releases is not used until they become stable. Before the https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#updates-testing-activation[updates-testing activation], package builds for the Branched release are sent directly to this repository. After the _Bodhi enabling point_, package builds that pass the https://fedoraproject.org/wiki/Updates_Policy[Updates Policy] move from _updates-testing_ repository to this repository.
|
||||
|
||||
The Branched _fedora_ repositories for the various primary https://fedoraproject.org/wiki/Architectures[architectures] can be found in the `/fedora/linux/development/XX` directory on the mirrors (where XX is the release), and can also be queried from MirrorManager. For instance, https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-{NEXTVER}&arch=x86_64 will return mirrors for the x86_64 _fedora_ repository for release {NEXTVER}.
|
||||
The Branched _fedora_ repositories for the various primary https://fedoraproject.org/wiki/Architectures[architectures] can be found in the `/fedora/linux/development/XX` directory on the mirrors (where XX is the release), and can also be queried from MirrorManager. For example, https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-{NEXTVER}&arch=x86_64 will return mirrors for the x86_64 _fedora_ repository for release {NEXTVER}.
|
||||
|
||||
[[the-updates-repository]]
|
||||
== The _updates_ repository
|
||||
|
|
@ -37,28 +37,28 @@ The _updates_ repository exists for Branched and stable releases, but is only po
|
|||
|
||||
For stable releases, _updates_ together with _fedora_ represents the current _stable_ state of the release. Package builds that pass the https://fedoraproject.org/wiki/Updates_Policy[Updates Policy] move from the _updates-testing_ repository to this repository. This difference from Branched is a result of the need to maintain a precise representation of the initial, 'frozen' state of a stable release.
|
||||
|
||||
The stable release _updates_ repositories for the various primary architectures can be found in the `/fedora/linux/updates/XX` directory on the mirrors (where XX is the release), and can also be queried from https://fedoraproject.org/wiki/MirrorManager[MirrorManager]. For instance, https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f{MAJOROSVER}&arch=x86_64 will return mirrors for the x86_64 _updates_ repository for release {MAJOROSVER}.
|
||||
The stable release _updates_ repositories for the various primary architectures can be found in the `/fedora/linux/updates/XX` directory on the mirrors (where XX is the release), and can also be queried from https://fedoraproject.org/wiki/MirrorManager[MirrorManager]. For example, https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f{MAJOROSVER}&arch=x86_64 will return mirrors for the x86_64 _updates_ repository for release {MAJOROSVER}.
|
||||
|
||||
[[the-updates-testing-repository]]
|
||||
=== The _updates-testing_ repository
|
||||
|
||||
The _updates-testing_ repository exists for Branched releases after the https://fedoraproject.org/wiki/Updates_Policy#Bodhi_enabling[Bodhi enabling point], and for stable releases. It is represented for xref:dnf.adoc[DNF] in the `fedora-updates-testing.repo` file in the repository path. For both, it is a 'staging' location where new package builds are tested before being marked as 'stable' (and hence moving to the _fedora_ repository or the _updates_ repository, respectively).
|
||||
The _updates-testing_ repository exists for Branched releases after the https://fedoraproject.org/wiki/Updates_Policy#Bodhi_enabling[Bodhi enabling point], and for stable releases. It is represented for xref:dnf.adoc[DNF] in the `fedora-updates-testing.repo` file in the repository path. For both, it is a 'staging' location where new package builds are tested before being marked as 'stable' (and therefore moving to the _fedora_ repository or the _updates_ repository, respectively).
|
||||
|
||||
These builds are sometimes referred to as _update candidates_, and are reviewed with the https://fedoraproject.org/wiki/Bodhi[Bodhi] update feedback tool, according to the
|
||||
https://fedoraproject.org/wiki/QA:Update_feedback_guidelines[update feedback guidelines].
|
||||
|
||||
The https://fedoraproject.org/wiki/Updates_Policy[Updates Policy] defines the rules for marking update candidates as _stable_. The https://fedoraproject.org/wiki/QA:Updates_Testing[QA updates-testing page] provides some information for testers on using this repository. The https://docs.fedoraproject.org/en-US/package-maintainers/Package_Update_Guide/[Package Update Guide] provides information for packagers on submitting builds to _updates-testing_ and to _stable_.
|
||||
|
||||
The _updates-testing_ repository is enabled by default for Branched releases, but disabled by default for stable releases. The switchover is made around the time of the https://fedoraproject.org/wiki/Milestone_freezes[Final Freeze] for each release. Testers moving from Branched to stable may encounter errors running updates around this time, caused by dependency mismatches between packages already installed from the now-disabled _updates-testing_ repository. Running `dnf distro-sync` or re-enabling the _updates-testing_ repository will both usually alleviate the issue; it is up to the individual user whether they wish to continue using the _updates-testing_ repository after the stable release or not.
|
||||
The _updates-testing_ repository is enabled by default for Branched releases, but disabled by default for stable releases. The switchover is made around the time of the https://fedoraproject.org/wiki/Milestone_freezes[Final Freeze] for each release. Testers moving from Branched to stable may encounter errors running updates around this time, caused by dependency mismatches between packages already installed from the now-disabled _updates-testing_ repository. Running `dnf distro-sync` or re-enabling the _updates-testing_ repository will both usually alleviate the issue; it is up to the individual user whether they want to continue using the _updates-testing_ repository after the stable release or not.
|
||||
|
||||
The _updates-testing_ repositories for both Branched and stable releases can be found in the `/fedora/linux/updates/testing/XX` directory on the mirrors (where XX is the release), and can also be queried from https://fedoraproject.org/wiki/MirrorManager[MirrorManager]. For instance, https://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f{MAJOROSVER}&arch=x86_64 will return mirrors for the x86_64 _updates-testing_ repository for release {MAJOROSVER}.
|
||||
The _updates-testing_ repositories for both Branched and stable releases can be found in the `/fedora/linux/updates/testing/XX` directory on the mirrors (where XX is the release), and can also be queried from https://fedoraproject.org/wiki/MirrorManager[MirrorManager]. For example, https://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f{MAJOROSVER}&arch=x86_64 will return mirrors for the x86_64 _updates-testing_ repository for release {MAJOROSVER}.
|
||||
|
||||
[[the-rawhide-repository]]
|
||||
=== The _rawhide_ repository
|
||||
|
||||
In Rawhide - Fedora's rolling release repository, from which release are Branched before finally going stable - _rawhide_ is the only repository. All package builds are sent there. It is represented for xref:dnf.adoc[DNF] in the `fedora-rawhide.repo` file in the repository path. For any system running Rawhide, it should be enabled. For any other system, it should not.
|
||||
|
||||
The _rawhide_ repositories for the various primary https://fedoraproject.org/wiki/Architectures[architectures] can be found in the directory on the mirrors, and can also be queried from https://fedoraproject.org/wiki/MirrorManager[MirrorManager]. For instance, https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-rawhide&arch=x86_64 will return mirrors for the x86_64 _fedora_ repository for Rawhide.
|
||||
The _rawhide_ repositories for the various primary https://fedoraproject.org/wiki/Architectures[architectures] can be found in the directory on the mirrors, and can also be queried from https://fedoraproject.org/wiki/MirrorManager[MirrorManager]. For example, https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-rawhide&arch=x86_64 will return mirrors for the x86_64 _fedora_ repository for Rawhide.
|
||||
|
||||
[[stable-is-not-a-repository]]
|
||||
=== _stable_ is not a repository
|
||||
|
|
@ -76,7 +76,7 @@ _stable_ is also a state a package can be considered to be in (or an attribute i
|
|||
|
||||
The repositories referred to above are neither associated with a specific https://fedoraproject.org/wiki/Fedora.next[Fedora.next] _Product_, nor part of an installable tree (a tree containing the necessary files to be used as a base repository by https://fedoraproject.org/wiki/Anaconda[Anaconda], the Fedora installer). Specialized repositories exist for these purposes.
|
||||
|
||||
For Fedora.next releases - and later - there is (as of September 2014) no installable tree not associated with a specific Product. The installable trees for various Products can be found under `/fedora/linux/releases/XX/` on the mirrors for stable releases, and under `/fedora/linux/releases/test/` for Branched pre-release milestones. They can also be queried from MirrorManager. For instance, https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-server-{NEXTVER}&arch=x86_64 will return mirrors for the x86_64 current installation repository for Server.
|
||||
For Fedora.next releases - and later - there is (as of September 2014) no installable tree not associated with a specific Product. The installable trees for various Products can be found under `/fedora/linux/releases/XX/` on the mirrors for stable releases, and under `/fedora/linux/releases/test/` for Branched pre-release milestones. They can also be queried from MirrorManager. For example, https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-server-{NEXTVER}&arch=x86_64 will return mirrors for the x86_64 current installation repository for Server.
|
||||
|
||||
These repositories are frozen (new packages are not pushed to them) and are created at various points in the https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle[Fedora Release Life Cycle]. A new installation tree (containing a repository) is built for several Products for https://fedoraproject.org/wiki/QA:SOP_compose_request[each test compose or release candidate build], and the trees for the Alpha and Beta releases are made available on the mirrors in the directory (see above). They contain a subset of the full package set that is considered to define each Product.
|
||||
|
||||
|
|
@ -94,9 +94,9 @@ There are other repositories that fulfil various niche purposes, which are docum
|
|||
[[the-bleed-repository]]
|
||||
=== The _bleed_ repository
|
||||
|
||||
The _bleed_ repository exists for a single purpose: during https://fedoraproject.org/wiki/Milestone_freezes[Milestone freezes], it contains packages that have been granted 'freeze exceptions' via the https://fedoraproject.org/wiki/QA:SOP_blocker_bug_process[Blocker Bug Process] or https://fedoraproject.org/wiki/QA:SOP_freeze_exception_bug_process[Freeze Exception bug process], and which are desired to be included in the next test compose or release candidate build, but have not yet reached _stable_ state and hence been moved to the _fedora_ repository. In other words, it contains packages explicitly required in TC/RC https://fedoraproject.org/wiki/QA:SOP_compose_request[compose requests].
|
||||
The _bleed_ repository exists for a single purpose: during https://fedoraproject.org/wiki/Milestone_freezes[Milestone freezes], it includes packages that have been granted 'freeze exceptions' via the https://fedoraproject.org/wiki/QA:SOP_blocker_bug_process[Blocker Bug Process] or https://fedoraproject.org/wiki/QA:SOP_freeze_exception_bug_process[Freeze Exception bug process], and which are desired to be included in the next test compose or release candidate build, but have not yet reached _stable_ state and therefore moved to the _fedora_ repository. That is, it includes packages explicitly required in TC/RC https://fedoraproject.org/wiki/QA:SOP_compose_request[compose requests].
|
||||
|
||||
The _bleed_ repository can be found http://kojipkgs.fedoraproject.org/mash/bleed/[here], but again, is not usually of interest to the vast majority of Fedora users. The packages it contains are always also available from the build system, Koji, and usually from the _updates-testing_ repository.
|
||||
The _bleed_ repository can be found http://kojipkgs.fedoraproject.org/mash/bleed/[here], but again, is not usually of interest to the vast majority of Fedora users. The packages it includes are always also available from the build system, Koji, and usually from the _updates-testing_ repository.
|
||||
|
||||
[[the-latest-repositories]]
|
||||
=== The _latest_ repositories
|
||||
|
|
@ -107,18 +107,18 @@ The _latest_ http://kojipkgs.fedoraproject.org/repos/[repositories] contain pack
|
|||
== Repositories FAQ
|
||||
|
||||
[[why-is-updates-only-used-after-the-stable-release]]
|
||||
=== Why is _updates_ only used after the stable release?
|
||||
=== Why is _updates_ only used after the stable release
|
||||
|
||||
As described above, updates for both Branched pre-releases and final, _stable_ releases go through the _updates-testing_ process before being moved to a _stable_ repository. Before the final release, they are placed in the _fedora_ repository. After release, they are placed in _updates_.
|
||||
|
||||
The reason for the difference is that we want to have a record of the exact 'state' of a given Fedora stable release. That is, at the time a Fedora release is declared to be done at a https://fedoraproject.org/wiki/Go_No_Go_Meeting[Go/No-Go Meeting], we consider the state of the release at that time to be the canonical definition of that release, and we wish to preserve a record of that state. For a stable release, the tree containing the _fedora_ repository *is* that record, and the _fedora_ repository it contains is the canonical record of the precise _frozen_ package set that formed the main part of that stable release.
|
||||
The reason for the difference is that we want to have a record of the exact 'state' of a given Fedora stable release. That is, at the time a Fedora release is declared to be done at a https://fedoraproject.org/wiki/Go_No_Go_Meeting[Go/No-Go Meeting], we consider the state of the release at that time to be the canonical definition of that release, and we want to preserve a record of that state. For a stable release, the tree containing the _fedora_ repository *is* that record, and the _fedora_ repository it includes is the canonical record of the precise _frozen_ package set that formed the main part of that stable release.
|
||||
|
||||
Since we wish to maintain this _frozen_ state for the _fedora_ repository, we cannot place updates directly into it. The necessity for the _updates_ repository therefore becomes obvious - we need a place to put updates to stable releases that is outside the _frozen_ state of the release.
|
||||
Since we want to maintain this _frozen_ state for the _fedora_ repository, we cannot place updates directly into it. The necessity for the _updates_ repository therefore becomes obvious - we need a place to put updates to stable releases that is outside the _frozen_ state of the release.
|
||||
|
||||
Before a stable release occurs, this mechanism is not necessary. Before the release is declared to be done, there is no _frozen_ state of the release: effectively, the whole Branched development process is _working towards_ what will become the _frozen_ state of the release, so of course package builds for the Branched release land directly in the _fedora_ repository.
|
||||
|
||||
[[why-is-updates-testing-enabled-by-default-in-pre-releases]]
|
||||
=== Why is _updates-testing_ enabled by default in pre-releases?
|
||||
=== Why is _updates-testing_ enabled by default in pre-releases
|
||||
|
||||
While Branched development releases and stable releases both use an _updates-testing_ repository together with the Bodhi update feedback system to stage packages before they reach the release's _stable_ state, it is enabled by default in Branched, but not in stable releases.
|
||||
|
||||
|
|
@ -130,4 +130,4 @@ The main purpose is to insulate _image builds_ from potentially problematic chan
|
|||
|
||||
For this and other less important functions, we need as much feedback as possible, so it makes sense to have all pre-release testers have _updates-testing_ enabled by default, and encourage them to provide feedback through Bodhi.
|
||||
|
||||
See a typo, something missing or out of date, or anything else which can be improved? Edit this document at https://forge.fedoraproject.org/docs/quick-docs.
|
||||
See a typing error, something missing or out of date, or anything else which can be improved? Edit this document at https://forge.fedoraproject.org/docs/quick-docs.
|
||||
|
|
@ -1,172 +1,122 @@
|
|||
= Finding and installing Linux applications
|
||||
Hanku Lee, Peter Boy; Fedora Documentation Team
|
||||
:revnumber: F36 and newer
|
||||
:revdate: 2024-05-14
|
||||
= Finding and Installing Linux Applications
|
||||
Hanku Lee; Peter Boy; Rowan Puttergill; Fedora Documentation Team
|
||||
:revnumber: F41 and newer
|
||||
:revdate: 2026-05-11
|
||||
:category: Managing Software
|
||||
:tags: Tutorial, Workstation
|
||||
|
||||
[abstract]
|
||||
If you are looking for software to run on Fedora Linux, you will discover Fedora-packaged software, EPEL (Extra Packages for Enterprise Linux) and Flatpak apps. Here is an overview of software repositories and installation.
|
||||
Fedora provides software through several sources: the official Fedora repositories, Flatpak applications from Flathub, and third-party repositories.
|
||||
This page explains how to find and install applications using the graphical software managers on GNOME and KDE Plasma.
|
||||
|
||||
== Sources of software packages
|
||||
For an overview of available software sources, see xref:fedora-repositories.adoc[Fedora DNF repositories] and xref:third-party-software.adoc[Understanding third-party software].
|
||||
|
||||
=== Fedora Repository
|
||||
== GNOME Software
|
||||
|
||||
The Fedora repository is available for all Fedora releases and backed by the following characteristics.
|
||||
In the GNOME desktop environment, GNOME Software helps you explore, install, and update applications and system extensions.
|
||||
|
||||
- Free and Open Source software packaged in Fedora Linux meets license approval criteria. (Link to: https://docs.fedoraproject.org/en-US/legal/license-approval/)
|
||||
To launch GNOME Software, press the Super key, type *software*, and press Enter.
|
||||
|
||||
- Fedora Quality Assurance continually improves the quality of Fedora releases and updates. (Link to: https://docs.fedoraproject.org/en-US/qa-docs/)
|
||||
=== Explore applications by category
|
||||
|
||||
=== What comes with default?
|
||||
|
||||
- Fedora-packaged software: registry.fedoraproject.org
|
||||
|
||||
- Updates repo
|
||||
|
||||
=== Optional repos
|
||||
|
||||
- Fedora Flatpaks
|
||||
|
||||
- EPEL
|
||||
|
||||
- Test repo
|
||||
|
||||
- Flathub
|
||||
|
||||
== Installation Procedures
|
||||
|
||||
The Fedora Linux ships with a graphical software manager to browse, test, install apps and update the installation. This article caters for users who prefer the use of graphical interface to command line interface. The process diverges depending on desktop environment.
|
||||
|
||||
=== GNOME
|
||||
|
||||
In GNOME desktop environment, GNOME Software helps you explore, install and update applications and system extensions.
|
||||
|
||||
==== How to use Software
|
||||
|
||||
To launch Software, press the Super key (next to left Alt key), type software, and press Enter key.
|
||||
|
||||
Step through the numbered list and the number annotated on the image of GNOME Software.
|
||||
|
||||
==== 1. Explore applications by categories
|
||||
|
||||
All the featured apps will be shown on banner in the middle.
|
||||
A featured app appears on the banner in the center of the screen.
|
||||
Browse by use case category below: *Create*, *Work*, *Play*, *Socialize*, *Learn*, and *Develop*.
|
||||
|
||||
.GNOME Software
|
||||
image::finding-installing-linux-apps/gnome1-featured.png[GNOME Software]
|
||||
image::finding-installing-linux-apps/gnome1-featured.png[GNOME Software main screen showing featured applications and categories]
|
||||
|
||||
Browse apps as categorized below and click a category that is of your interest.
|
||||
=== Search for an application
|
||||
|
||||
- Use case: Create, Work, Play, Socialize, Learn, Develop
|
||||
- Editor's choice
|
||||
Click the magnifying glass icon in the top left corner, type the name of the application, and press Enter.
|
||||
GNOME Software shows applications that match your search.
|
||||
|
||||
==== 2. Search applications by name
|
||||
=== Check software details
|
||||
|
||||
If you know the name of apps to install, click the magnifying glass on the top left corner and type in the name of apps and press Enter key. GNOME Software will suggest a set of applications that match your search.
|
||||
Click an application icon to see screenshots, a description, version history, reviews, and license details.
|
||||
|
||||
==== 3. Check the software metadata
|
||||
If an application has optional add-ons, they appear in the *Add-ons* section before the metadata.
|
||||
|
||||
Once you click an app icon, Software presents screenshot of apps and overview.
|
||||
.Application details
|
||||
image::finding-installing-linux-apps/GNOME_SW3_metadata.png[GNOME Software showing application details, screenshots and metadata]
|
||||
|
||||
Scroll down to examine version history, reviews and license details.
|
||||
=== Install an application
|
||||
|
||||
.App overview
|
||||
image::finding-installing-linux-apps/GNOME_SW3_metadata.png[App overview]
|
||||
On the application details page, click the *Install* button in the top right corner.
|
||||
|
||||
If an app has optional add-ons to install together with the app, they will be displayed as *Add-ons* before the software metadata section.
|
||||
The source repository, Fedora Linux (RPM) or Fedora Flatpak, is shown beneath the *Install* or *Open* button.
|
||||
|
||||
==== 4. Installation
|
||||
.Installing an application
|
||||
image::finding-installing-linux-apps/GNOME_SW2_Install.png[GNOME Software install button and source repository label]
|
||||
|
||||
If you have checked the software metadata, scroll up to find and click the blue *Install* button on top right corner of software you selected.
|
||||
=== Updates
|
||||
|
||||
Source (repository) is labelled as Fedora Linux (RPM) or Fedora Flatpak under the blue 'Install' or 'Open' button.
|
||||
To check for system and application updates, open the *Updates* tab and click *Refresh*.
|
||||
If updates are available, click *Download* and then *Restart & Update* when prompted.
|
||||
System updates require a restart.
|
||||
|
||||
.App Installation
|
||||
image::finding-installing-linux-apps/GNOME_SW2_Install.png[App Installation]
|
||||
To receive automatic update notifications, enable *Automatic Updates* in the menu at the top right.
|
||||
|
||||
==== 5. Updates
|
||||
=== Manage repositories
|
||||
|
||||
To check system and app updates, go to updates tab and load updates.
|
||||
If there are updates available, the blue download button will appear.
|
||||
To manage repositories, open the menu at the top right and select *Software Repositories*.
|
||||
From there you can enable or disable sources such as Fedora Flatpaks and Flathub.
|
||||
|
||||
Click download and wait for the blue Restart & Update button. System updates require restart.
|
||||
.Software repositories
|
||||
image::finding-installing-linux-apps/GNOME_SW6_repo.png[GNOME Software repositories dialog showing available repository options]
|
||||
|
||||
If you prefer automatic notification when there are updates available, enable automatic Updates in the hamburger menu on the top right corner.
|
||||
== KDE Discover
|
||||
|
||||
==== 6. Manage repositories
|
||||
In KDE Plasma, Discover helps you explore, install, and update applications and system extensions.
|
||||
|
||||
To enable or disable repositories, go to the hamburger menu on the top right corner and select Software Repositories. From there, you can toggle Fedora Flatpaks to explore more apps.
|
||||
To launch Discover, press the Super key, type *discover*, and press Enter.
|
||||
|
||||
.Optional Repos
|
||||
image::finding-installing-linux-apps/GNOME_SW6_repo.png[Optional Repos]
|
||||
=== Explore applications by category
|
||||
|
||||
=== KDE
|
||||
Select a category from the left panel to browse available applications.
|
||||
Applications in the selected category appear in the right panel, sorted by popularity by default.
|
||||
|
||||
In KDE Plasma desktop, Discover helps you explore, install and update applications and system extensions.
|
||||
.Application categories
|
||||
image::finding-installing-linux-apps/KDE2_Discover_category.png[KDE Discover showing application categories on the left and featured apps on the right]
|
||||
|
||||
==== How to use Discover
|
||||
=== Search for an application
|
||||
|
||||
Before launching Discover, Kickoff Application Launcher (Kickoff in short) assists you to use the integrated search function.
|
||||
Type the name of an application in the search bar at the top left and press Enter.
|
||||
Discover shows applications that match your search.
|
||||
|
||||
Step through the numbered list and the number annotated on the image of KDE Plasma desktop and Discover.
|
||||
If Kickoff suggests an application that is not installed, click *Get <application name>* to open it in Discover.
|
||||
|
||||
==== 1. Explore applications with Kickoff
|
||||
.Kickoff suggesting an application
|
||||
image::finding-installing-linux-apps/KDE1_KickoffGetApp.png[KDE Kickoff launcher showing a Get button for an uninstalled application]
|
||||
|
||||
To launch Kickoff, in the default configuration, press the Super key (next to left Alt key). Hover your mouse over installed apps as categorized on the left pane. All the available apps will be shown on the right pane.
|
||||
=== Check software details
|
||||
|
||||
.Kickoff application launcher
|
||||
image::finding-installing-linux-apps/KDE1_KickoffCategory.png[KDE Plasma Kickoff]
|
||||
Click an application to see screenshots, a description, version, reviews, and license details.
|
||||
|
||||
If you look for an application that has not been installed yet, Kickoff will suggest a set of applications that match your search.
|
||||
.Application details
|
||||
image::finding-installing-linux-apps/KDE2_Discover_metadata.png[KDE Discover showing application details and metadata]
|
||||
|
||||
Get <application name>. Click the app to navigate to Discover, enabling you to installation.
|
||||
=== Install an application
|
||||
|
||||
.Get application with Kickoff
|
||||
image::finding-installing-linux-apps/KDE1_KickoffGetApp.png[Get application with Kickoff]
|
||||
On the application details page, click the *Install* button in the top right corner.
|
||||
|
||||
==== 2. Explore applications by categories
|
||||
=== Updates
|
||||
|
||||
To launch Discover directly, press the Super key (next to left Alt key), type discover, and press Enter key.
|
||||
|
||||
Hover your mouse over available apps as categorized on the left pane. Click a category that is of your interest. All the featured apps will be shown on the right pane.
|
||||
|
||||
.Application by categories
|
||||
image::finding-installing-linux-apps/KDE2_Discover_category.png[Application by categories]
|
||||
|
||||
==== 3. Search applications by name
|
||||
|
||||
If you know the name of apps to install, type in the name of apps in the search window on the top left corner and press Enter key. Discover will suggest a set of applications that match your search.
|
||||
|
||||
==== 4. Check the software metadata
|
||||
|
||||
Once you click an app icon, Discover presents screenshot of apps and overview, software metadata such as software version, reviews and license details.
|
||||
|
||||
.Check metadata
|
||||
image::finding-installing-linux-apps/KDE2_Discover_metadata.png[Check metadata]
|
||||
|
||||
==== 5. Installation
|
||||
|
||||
If you have checked the software metadata, click the *Install* button on top right corner of software you selected.
|
||||
|
||||
==== 6. Updates
|
||||
|
||||
Update notification will appear on status bar when updates become available. Click the notification to open Discover. Press “Update All” button on the top right corner. System updates require restart.
|
||||
When updates are available, a notification appears in the status bar.
|
||||
Click the notification to open Discover, then click *Update All* in the top right corner.
|
||||
System updates require a restart.
|
||||
|
||||
.Application updates
|
||||
image::finding-installing-linux-apps/KDE6_Updates.png[Application updates]
|
||||
image::finding-installing-linux-apps/KDE6_Updates.png[KDE Discover updates view showing available updates and Update All button]
|
||||
|
||||
==== 7. Manage repositories
|
||||
=== Manage repositories
|
||||
|
||||
To enable repositories, go to Settings in Discover. In case Flathub is required to explore more apps, click the Add Flathub button.
|
||||
To manage repositories, open *Settings* in Discover.
|
||||
To add Flathub and access more applications, click *Add Flathub*.
|
||||
|
||||
== More information
|
||||
|
||||
For latest improvements on functionality and look of graphical software manager, please check the upstream documentation on the link below.
|
||||
|
||||
GNOME Software: https://wiki.gnome.org/Apps/Software
|
||||
|
||||
KDE Discover: https://userbase.kde.org/Discover
|
||||
|
||||
To explore and install command-line apps, refer to the DNF Command Reference: https://dnf.readthedocs.io/en/latest/command_ref.html
|
||||
|
||||
To explore and install language libraries, packages, and development toolchain, refer to the Fedora Developer Portal: https://developer.fedoraproject.org/tech.html
|
||||
* xref:dnf.adoc[Using the DNF software package manager] - installing applications from the command line
|
||||
* xref:flathub-flatpak-applications.adoc[Installing applications from Flathub] - Flatpak applications
|
||||
* https://wiki.gnome.org/Apps/Software[GNOME Software upstream documentation]
|
||||
* https://userbase.kde.org/Discover[KDE Discover documentation]
|
||||
* https://developer.fedoraproject.org/tech.html[Fedora Developer Portal] - language libraries, packages, and development toolchains
|
||||
|
|
|
|||
176
modules/ROOT/pages/flathub-flatpak-applications.adoc
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
= Installing Flatpak Applications from Flathub
|
||||
Rowan Puttergill, Fedora Documentation Team
|
||||
:revnumber: F42 and newer
|
||||
:revdate: 2026-05-08
|
||||
:category: Software Management
|
||||
:tags: Flathub, Flatpak, Applications, Third-Party
|
||||
:page-aliases: flathub.adoc, flatpak-applications.adoc
|
||||
|
||||
[abstract]
|
||||
This page explains how to install and manage containerized applications from Flathub, a centralized repository for Flatpak applications.
|
||||
|
||||
== What is Flathub
|
||||
|
||||
Flathub is a centralized repository that hosts thousands of Flatpak applications.
|
||||
Flatpak is a containerization technology that packages applications with their dependencies in a sandboxed environment.
|
||||
This approach provides several benefits including improved security through isolation, compatibility across different Linux distributions, and simplified dependency management.
|
||||
|
||||
Flatpak applications work across all Linux distributions, not just Fedora. Once an application is packaged as a Flatpak, it can run on any system with Flatpak installed without requiring distribution-specific packaging. Therefore, many software vendors choose to distribute their applications as Flatpaks on Flathub to reach a wider Linux audience.
|
||||
|
||||
Flatpak applications run in a sandbox with limited access to your system.
|
||||
Each application only has access to the resources it explicitly needs, providing an additional layer of security compared to traditional package installation.
|
||||
|
||||
Because Flatpak applications are self-contained, they can use different versions of libraries and dependencies than those provided by your system. This means you can run multiple versions of the same application or library simultaneously without conflicts.
|
||||
|
||||
Installing and removing Flatpak applications is straightforward and does not leave system-wide dependencies or configuration files scattered across your system.
|
||||
|
||||
Flathub and Flatpak include built-in automatic update functionality, keeping applications current with minimal user intervention.
|
||||
|
||||
Fedora Workstation includes Flatpak support pre-installed and configured, making it easy to get started with Flathub applications.
|
||||
|
||||
== Prerequisites
|
||||
|
||||
To use Flathub on Fedora, ensure Flatpak is installed:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install flatpak
|
||||
----
|
||||
|
||||
If not already enabled, add the Flathub repository to your system:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
----
|
||||
|
||||
On Fedora Workstation, Flatpak is typically pre-installed and configured to use Flathub, so you may not need to perform these steps.
|
||||
|
||||
== Finding and installing applications
|
||||
|
||||
=== Using the GNOME Software Center
|
||||
|
||||
The easiest way to browse and install Flatpak applications is through GNOME Software:
|
||||
|
||||
. Open *Software* from your Applications menu
|
||||
. Search for the application you want to install
|
||||
. If the application is available on Flathub, click *Install*
|
||||
. The application downloads and installs automatically
|
||||
|
||||
=== Using KDE Discover
|
||||
|
||||
KDE Plasma includes Discover, a graphical software center that supports Flatpak applications.
|
||||
On Fedora KDE Spin, Discover is pre-installed. To enable Flatpak support, ensure the Flatpak backend is installed:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install plasma-discover-flatpak
|
||||
----
|
||||
|
||||
To find and install applications:
|
||||
|
||||
. Open *Discover* from the application launcher
|
||||
. Search for the application you want to install
|
||||
. If multiple sources are available for the same application, select *Flathub* as the source
|
||||
. Click *Install*
|
||||
|
||||
=== Using the command line
|
||||
|
||||
To search for applications:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak search _application_name_
|
||||
----
|
||||
|
||||
To install an application:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak install flathub _application_id_
|
||||
----
|
||||
|
||||
For example, to install GIMP:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak install flathub org.gimp.GIMP
|
||||
----
|
||||
|
||||
== Managing Flatpak applications
|
||||
|
||||
=== Launching applications
|
||||
|
||||
Installed Flatpak applications appear in your Applications menu and launch like any other application.
|
||||
You can also run them from the command line using the application ID:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak run _application_id_
|
||||
----
|
||||
|
||||
=== Updating applications
|
||||
|
||||
Update all installed Flatpak applications:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak update
|
||||
----
|
||||
|
||||
Update a specific application:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak update _application_id_
|
||||
----
|
||||
|
||||
Note that GNOME Software and KDE Discover will also notify you of available updates for Flatpak applications.
|
||||
|
||||
=== Removing applications
|
||||
|
||||
Remove an installed Flatpak application:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak uninstall _application_id_
|
||||
----
|
||||
|
||||
=== Listing installed applications
|
||||
|
||||
View all installed Flatpak applications:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak list --app
|
||||
----
|
||||
|
||||
== Permissions and sandboxing
|
||||
|
||||
Flatpak applications run in a sandbox with restricted access to your system.
|
||||
Some applications may request additional permissions to function properly:
|
||||
|
||||
* **File system access** - Read or write access to specific directories
|
||||
* **Hardware access** - Access to cameras, microphones, or other hardware
|
||||
* **System services** - Access to D-Bus services for system notifications, and so on
|
||||
* **Network access** - Access to the internet
|
||||
|
||||
When installing an application, review the requested permissions and decide whether to grant them based on the application's functionality.
|
||||
|
||||
== Overriding permissions
|
||||
|
||||
If an application needs additional permissions, you can grant or modify them using Flatseal, a graphical permissions manager:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ flatpak install flathub com.github.tchx84.Flatseal
|
||||
----
|
||||
|
||||
Alternatively, modify permissions from the command line using `flatpak override`.
|
||||
|
||||
== Finding more information
|
||||
|
||||
* **Flathub website** - Visit https://flathub.org to browse available applications
|
||||
* **Flatpak documentation** - https://docs.flatpak.org for detailed technical information
|
||||
* **Application pages** - Most Flatpak applications have information pages on Flathub with reviews and details
|
||||
|
||||
|
|
@ -1,163 +1,145 @@
|
|||
= Adding New Fonts in Fedora
|
||||
The Fedora Docs Team; Peter Boy
|
||||
:revnumber: F36,F37
|
||||
:revdate: 2023-04-24
|
||||
The Fedora Docs Team; Peter Boy; Rowan Puttergill
|
||||
:revnumber: F41 and newer
|
||||
:revdate: 2026-05-11
|
||||
:category: Administration
|
||||
:tags: How-to, Workstation
|
||||
|
||||
Fedora pre-installs several basic fonts by default.
|
||||
This page explains how to add new fonts to a Fedora installation.
|
||||
|
||||
|
||||
[[packaged]]
|
||||
== Packaged fonts
|
||||
|
||||
Did you know Fedora packages several freely-licensed fonts?
|
||||
There are several supplementary fonts to preview and try out that are not installed by default.
|
||||
Like all fonts on Fedora, these fonts are not encumbered with licenses or restrictions.
|
||||
Fedora includes several supplementary fonts in its official repositories that are not installed by default.
|
||||
These fonts are all freely licensed.
|
||||
|
||||
An added benefit of packaged fonts is they give you control over the font package in the future.
|
||||
You will receive future updates and can easily uninstall it later if you decide it is not the font for you.
|
||||
Installing packaged fonts has the advantage of being managed by DNF. The system receives future updates automatically and you can uninstall the font cleanly at any time.
|
||||
|
||||
[[gnome-software]]
|
||||
=== GNOME Software
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
This section uses a Graphical User Interface (G.U.I.) for managing fonts.
|
||||
====
|
||||
The easiest way to preview and install packaged fonts is through the desktop environment's software mangement tool, such as GNOME Software or KDE Discover.
|
||||
|
||||
The easiest way to preview and install new fonts is to use [application]`GNOME Software`.
|
||||
Search for a specific font or search "fonts" in [application]`GNOME Software` to see what other freely-licensed fonts are available.
|
||||
Search for a specific font name, or search "fonts" to browse what is available.
|
||||
|
||||
[[dnf]]
|
||||
=== DNF package manager
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
This section uses a Command Line Interface (C.L.I.) for managing fonts.
|
||||
====
|
||||
To install fonts from the command line, use `dnf`.
|
||||
|
||||
If you prefer working in a C.L.I., you can also install fonts with [application]`dnf`.
|
||||
List all available font packages from enabled repositories:
|
||||
|
||||
Add or enable third-party repositories with font packages::
|
||||
Many fonts are available from the RPM Fusion repository.
|
||||
To enable the repository on your system, follow xref:rpmfusion-setup.adoc[these instructions].
|
||||
[source,bash,console]
|
||||
----
|
||||
$ dnf search fonts
|
||||
----
|
||||
|
||||
List all available font packages from enabled repositories::
|
||||
[source,]
|
||||
[…]$ dnf search fonts
|
||||
Install the font package you need:
|
||||
|
||||
Install the font package you need::
|
||||
[source,]
|
||||
[…]$ sudo dnf install libreoffice-opensymbol-fonts
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf install <font-package-name>
|
||||
----
|
||||
|
||||
For example:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf install google-roboto-fonts
|
||||
----
|
||||
|
||||
NOTE: Additional fonts are also available from third-party repositories such as xref:rpmfusion-setup.adoc[RPM Fusion]. Enable the repository first, then use `dnf search fonts` to find what is available.
|
||||
|
||||
[[unpackaged]]
|
||||
== Unpackaged fonts
|
||||
|
||||
In many cases, you may want to use a specific font that is not available in Fedora or is not made available under https://freedomdefined.org/Definition[Free Culture] licenses.
|
||||
If you need a font that is not available in Fedora's repositories, you can install it manually.
|
||||
|
||||
[IMPORTANT]
|
||||
====
|
||||
Unpackaged fonts are not managed by a package manager.
|
||||
You will not automatically receive updates or optimizations.
|
||||
If a font is provided by a distribution package, you should always use a packaged version of a font.
|
||||
Manually installed fonts are not managed by DNF.
|
||||
You will not receive updates automatically.
|
||||
Where a packaged version of a font exists, use it instead.
|
||||
====
|
||||
|
||||
[[system-fonts]]
|
||||
=== System fonts
|
||||
|
||||
System fonts are installed for all users.
|
||||
Anyone with an account on the machine will be able to use these fonts.
|
||||
System fonts are installed for all users on the system.
|
||||
|
||||
Create a new directory in the system fonts directory (`/usr/local/share/fonts/`) to accommodate the new font family, and copy the downloaded fonts (e.g. robofont.ttf files)::
|
||||
[source,]
|
||||
Create a directory in the system fonts path and copy the font files there:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
[…]$ sudo mkdir -p /usr/local/share/fonts/robofont
|
||||
[…]$ sudo cp ~/Downloads/robofont.ttf /usr/local/share/fonts/robofont/
|
||||
$ sudo mkdir -p /usr/local/share/fonts/robofont
|
||||
$ sudo cp ~/Downloads/robofont.ttf /usr/local/share/fonts/robofont/
|
||||
----
|
||||
|
||||
Set permissions and update SELinux labels::
|
||||
[source,]
|
||||
Set permissions and update SELinux labels:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
[…]$ sudo chown -R root: /usr/local/share/fonts/robofont
|
||||
[…]$ sudo chmod 644 /usr/local/share/fonts/robofont/*
|
||||
[…]$ sudo restorecon -vFr /usr/local/share/fonts/robofont
|
||||
$ sudo chown -R root: /usr/local/share/fonts/robofont
|
||||
$ sudo chmod 644 /usr/local/share/fonts/robofont/*
|
||||
$ sudo restorecon -vFr /usr/local/share/fonts/robofont
|
||||
----
|
||||
|
||||
Update the font cache::
|
||||
[source,]
|
||||
[…]$ sudo fc-cache -v
|
||||
Update the font cache:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo fc-cache -v
|
||||
----
|
||||
|
||||
[[user-fonts]]
|
||||
=== User fonts
|
||||
|
||||
User fonts are installed for an individual user.
|
||||
Only the user who installs the fonts on the machine will be able to use these fonts.
|
||||
This is also convenient if you do not have superuser (i.e. `root`) access on the machine.
|
||||
|
||||
There are three ways to install user fonts.
|
||||
User fonts are installed for a single user only.
|
||||
This approach does not require superuser access.
|
||||
|
||||
[[user-fonts--gnome-font-viewer]]
|
||||
==== GNOME Font Viewer
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
This section uses a Graphical User Interface (G.U.I.) for managing fonts.
|
||||
====
|
||||
Install GNOME Font Viewer if it is not already present:
|
||||
|
||||
The [application]`GNOME Font Viewer` is an application to display the fonts installed on the system.
|
||||
It also allows you to locally install fonts.
|
||||
Follow these steps to add new user fonts with [application]`GNOME Font Viewer`:
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf install gnome-font-viewer
|
||||
----
|
||||
|
||||
. Install [application]`GNOME Font Viewer`.
|
||||
** Use GNOME Software or use the command line (`sudo dnf install gnome-font-viewer`)
|
||||
. Open a file browser.
|
||||
. Double-click on a font file to open it in [application]`GNOME Font Viewer`.
|
||||
. Click on the blue btn:[Install] button on the top bar.
|
||||
To install a font:
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
Currently, there is a bug in the application.
|
||||
When you click on the btn:[Install] button, it does not inform whether the installation succeeded.
|
||||
====
|
||||
. Open a file manager and navigate to the downloaded font file.
|
||||
. Double-click the font file to open it in GNOME Font Viewer.
|
||||
. Click the btn:[Install] button in the top bar.
|
||||
|
||||
[application]`GNOME Font Viewer` does two things to install fonts:
|
||||
|
||||
. Copy font files to a font directory in the user's home directory `.local/share/fonts`.
|
||||
. Update the font cache.
|
||||
GNOME Font Viewer copies the font file to `~/.local/share/fonts/` and updates the font cache automatically.
|
||||
|
||||
[[user-fonts--KDE]]
|
||||
==== KDE Font Management
|
||||
|
||||
. Go to Settings and enter font in Quick Settings.
|
||||
. On Font Management window, press the Install from...button, and select the downloaded fonts from within the dialog.
|
||||
. On pop-up window (see UI text below), select a font group that will control where the fonts will be installed.
|
||||
KDE Plasma includes a font management tool in System Settings.
|
||||
|
||||
----
|
||||
Do you wish to install the font(s) for personal use (only available to you), or system-wide (available to all users)?
|
||||
----
|
||||
. Open *System Settings*.
|
||||
. Search for "fonts" or navigate to *Appearance* → *Text and Fonts* → *Font Management*.
|
||||
. Click *Install from File* and select the downloaded font file.
|
||||
. Choose whether to install the font for your user only or system-wide.
|
||||
|
||||
[[user-fonts--command-line]]
|
||||
==== Command line
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
This section uses a Command Line Interface (C.L.I.) for managing fonts.
|
||||
====
|
||||
Create a directory for the new font family in your local fonts path and copy the font files there:
|
||||
|
||||
If you prefer a command line interface, you can install user fonts manually.
|
||||
Follow these steps in a terminal window to install a font locally:
|
||||
[source,bash,console]
|
||||
----
|
||||
$ mkdir -p ~/.local/share/fonts/robofont
|
||||
$ cp ~/Downloads/robofont.ttf ~/.local/share/fonts/robofont/
|
||||
----
|
||||
|
||||
Create a new directory `~/.local/share/fonts/<font-family-name>/` for the new font family::
|
||||
[source,]
|
||||
[…]$ mkdir -p ~/.local/share/fonts/robofont
|
||||
Update the font cache:
|
||||
|
||||
Copy font files (e.g. `.ttf` files) to the new directory::
|
||||
[source,]
|
||||
[…]$ cp ~/Downloads/robofont.ttf ~/.local/share/fonts/robofont
|
||||
|
||||
Update the font cache::
|
||||
[source,]
|
||||
[…]$ fc-cache -v
|
||||
[source,bash,console]
|
||||
----
|
||||
$ fc-cache -v
|
||||
----
|
||||
|
|
|
|||
|
|
@ -1,119 +1,103 @@
|
|||
= Installing Chromium or Google Chrome browsers
|
||||
Peter Lilley;
|
||||
:revnumber: unspecified
|
||||
:revdate: 2021-01-17
|
||||
= Installing Chromium or Google Chrome Browsers
|
||||
Peter Lilley; Rowan Puttergill
|
||||
:revnumber: F41 and newer
|
||||
:revdate: 2026-05-11
|
||||
:category: Software installation
|
||||
:tags: How-to, Chromium, Chrome
|
||||
//:page-aliases:
|
||||
|
||||
|
||||
include::{partialsdir}/3rdparty-message.adoc[]
|
||||
|
||||
== Chromium and Google Chrome web browsers
|
||||
|
||||
Fedora Workstation, in its out of the box configuration, only includes free and open source software. **Mozilla Firefox** is the browser included in Fedora Workstation by default. However, it easy to install either **Google Chrome** or **Chromium**, if preferred.
|
||||
Fedora Workstation includes Mozilla Firefox as the default browser.
|
||||
It is easy to install either Google Chrome or Chromium if preferred.
|
||||
|
||||
=== Chromium
|
||||
|
||||
Chromium is the upstream project for Google Chrome. Chromium is included in the Fedora Repositories. Fedora's Chromium package only contains free and open source software, so does not include several features of Google Chrome that rely on proprietary software.
|
||||
Chromium is the upstream open source project on which Google Chrome is based.
|
||||
It is available in the Fedora repositories.
|
||||
|
||||
Fedora's Chromium package includes only free and open source software, so it does not include features of Google Chrome that rely on proprietary software — including support for proprietary media codecs such as H.264 and AAC.
|
||||
|
||||
NOTE: If you need full codec support in Chromium, install `chromium-freeworld` from RPM Fusion instead. See xref:rpmfusion-setup.adoc[Enabling the RPM Fusion repositories].
|
||||
|
||||
=== Google Chrome
|
||||
|
||||
Google Chrome is a popular web browser developed by Google. Chrome is built on top of the open-source browser project, Chromium. Chrome includes additional features such as support for proprietary media files (such as H.264 or AAC) and playback of rights-protected media (Netflix, etc.) Chrome also includes support for other Google services such as browser sync and location services, which are not supported by Chromium.
|
||||
|
||||
Google Chrome is available in Fedora Workstation via a curated third-party repository. Once this repository is enabled, Chrome can be installed via Software or the command line.
|
||||
|
||||
Google Chrome is a popular web browser developed by Google, built on top of the Chromium project.
|
||||
Chrome includes additional features not present in Fedora's Chromium package, such as support for proprietary media codecs, playback of rights-protected content (Netflix, and so on), and Google services including browser sync and location services.
|
||||
|
||||
Google Chrome is available via a curated third-party repository.
|
||||
Once the repository is enabled, Chrome can be installed through GNOME Software or the command line.
|
||||
|
||||
== Installing the browsers
|
||||
|
||||
Both Chromium and Google Chrome can be installed on Fedora.
|
||||
|
||||
|
||||
=== Installing Chromium
|
||||
|
||||
Chromium can be installed using the Software application and via command line.
|
||||
==== Using GNOME Software
|
||||
|
||||
==== Installing Chromium using Software (GUI)
|
||||
. Open *Software* from the Applications menu.
|
||||
. Search for *Chromium Web Browser*.
|
||||
. Click *Install*.
|
||||
|
||||
. Click on Software tool in Fedora.
|
||||
==== Using the command line
|
||||
|
||||
. Search for Chromium Web Browser.
|
||||
|
||||
. Click on Install.
|
||||
|
||||
==== Installing Chromium using Terminal
|
||||
|
||||
. To install Chromium Web Browser, use the command:
|
||||
+
|
||||
[source,bash,console]
|
||||
----
|
||||
# dnf install chromium
|
||||
----
|
||||
+
|
||||
. To upgrade Chromium, use the command:
|
||||
+
|
||||
----
|
||||
# dnf upgrade chromium
|
||||
$ sudo dnf install chromium
|
||||
----
|
||||
|
||||
=== Installing Chrome
|
||||
To upgrade Chromium:
|
||||
|
||||
Chrome can be installed using Software or a terminal, once the repository is enabled.
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf upgrade chromium
|
||||
----
|
||||
|
||||
==== Installing Chrome using Software (GUI)
|
||||
=== Installing Google Chrome
|
||||
|
||||
==== Using GNOME Software
|
||||
|
||||
. Open the *Software* application.
|
||||
|
||||
. Click on the menu at the top right and select *Software Repositories*.
|
||||
|
||||
. Make sure Third Party Repositories is enabled. If the button label is *Install*, then click that button to install the third party repositories. If the button reads *Remove All* then the third party repositories are already installed.
|
||||
. Scroll down to find the *Third Party Repositories* section. Optionally, you can enable the option to *Enable New Repositories* to automatically enable new third-party repositories as they become available.
|
||||
+
|
||||
image:installing-chromium-or-google-chrome-browsers-0.png[]
|
||||
. Scroll down to find the *google-chrome* repository. Ensure that it is enabled by toggling the switch.
|
||||
+
|
||||
. Scroll down to find the repository called *google-chrome*. Click on it and choose *Enable*.
|
||||
image:installing-chromium-or-google-chrome-browsers-gnome.png[Enabling the Google Chrome repository in GNOME Software]
|
||||
|
||||
You can now search for *Google Chrome* in Software and install it.
|
||||
|
||||
==== Using Plasma Discover
|
||||
. Open *Discover* from the Applications menu.
|
||||
. Click on *Settings*
|
||||
. Scroll down to find the *google-chrome* repository. Ensure that it is enabled by toggling the checkbox.
|
||||
+
|
||||
image:installing-chromium-or-google-chrome-browsers-1.png[]
|
||||
image:installing-chromium-or-google-chrome-browsers-plasma.png[Enabling the Google Chrome repository in Plasma Discover]
|
||||
|
||||
You can now search for *Google Chrome* in Software, and install it.
|
||||
|
||||
==== Installing Chrome using Terminal
|
||||
You can now search for *Google Chrome* in Discover and install it.
|
||||
|
||||
The additional repositories can also be managed using a terminal and DNF.
|
||||
==== Using the command line
|
||||
|
||||
. Install Third Party Repositories
|
||||
. Install the third-party repositories package:
|
||||
+
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf install fedora-workstation-repositories
|
||||
----
|
||||
+
|
||||
. Enable the Google Chrome repo:
|
||||
. Enable the Google Chrome repository:
|
||||
+
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf config-manager setopt google-chrome.enabled=1
|
||||
----
|
||||
|
||||
For Fedora 40 and older:
|
||||
----
|
||||
$ sudo dnf config-manager --set-enabled google-chrome
|
||||
----
|
||||
+
|
||||
. Finally, install Chrome:
|
||||
. Install Google Chrome:
|
||||
+
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo dnf install google-chrome-stable
|
||||
----
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
If you want to install the Chrome Dev Channel version, use the following command:
|
||||
|
||||
----
|
||||
$ sudo dnf install google-chrome-unstable
|
||||
----
|
||||
|
||||
If you want to install Chrome Beta use the following:
|
||||
|
||||
----
|
||||
$ sudo dnf install google-chrome-beta
|
||||
----
|
||||
====
|
||||
NOTE: To install the Beta or Dev channel versions instead, replace `google-chrome-stable` with `google-chrome-beta` or `google-chrome-unstable`.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
= Installing software from source on Fedora
|
||||
ramin; Alan Bowman
|
||||
ramin; Alan Bowman
|
||||
:revnumber: F37
|
||||
:revdate: 2023-01-23
|
||||
:category: Software-installation
|
||||
|
|
@ -12,9 +12,9 @@ However, there might be times where you will need to install an application from
|
|||
|
||||
This can be because of the fact that:
|
||||
|
||||
* No pre-compiled binary or application package is available.
|
||||
* You have specific dependency requirements that are not available in the pre-compiled package.
|
||||
* The available pre-compiled application is out of date and you need a specific version.
|
||||
* No pre-compiled binary or application package is available.
|
||||
* You have specific dependency requirements that are not available in the pre-compiled package.
|
||||
* The available pre-compiled application is out of date and you need a specific version.
|
||||
|
||||
In these cases you will need to install the software from the command line, using the source files provided by the application developers or maintainers.
|
||||
|
||||
|
|
@ -22,8 +22,8 @@ In these cases you will need to install the software from the command line, usin
|
|||
|
||||
To install an application from source, you will need to have:
|
||||
|
||||
* A way to extract the source file archive. This is usually an application such as `tar` or `gzip`.
|
||||
* A build tool and a compiler, such as `make`.
|
||||
* A way to extract the source file archive. This is usually an application such as `tar` or `gzip`.
|
||||
* A build tool and a compiler, such as `make`.
|
||||
|
||||
These tools are generally installed by default on a modern Fedora system. You can verify that they are available by typing in `make`, `tar`, and `gzip` from the command line. You will see instructions on how to use the application if it is available. If the application is not available you will get an error along with instructions on how to install.
|
||||
|
||||
|
|
@ -31,36 +31,36 @@ These tools are generally installed by default on a modern Fedora system. You ca
|
|||
|
||||
To install from source, you will need to do the following:
|
||||
|
||||
. Download the application archive file to your computer. The default location is the Downloads folder, but you might be able to choose a location during the download process.
|
||||
. Extract the files from the downloaded archive. The command you use will depend on the application package.
|
||||
. Carefully read any instructions that came with your download. These instructions might also be available on the website you downloaded the file from. These instructions will tell you what you need to do to install the application.
|
||||
. Follow the commands given in the README (or other installation instructions) to configure, build, compile, and install the application.
|
||||
. Download the application archive file to your computer. The default location is the Downloads folder, but you might be able to choose a location during the download process.
|
||||
. Extract the files from the downloaded archive. The command you use will depend on the application package.
|
||||
. Carefully read any instructions that came with your download. These instructions might also be available on the website you downloaded the file from. These instructions will tell you what you need to do to install the application.
|
||||
. Follow the commands given in the README (or other installation instructions) to configure, build, compile, and install the application.
|
||||
|
||||
=== Download the application archive to your computer
|
||||
The default download location is your Downloads folder. From the command line the location is `/home/username/Downloads` (note the capital D in Downloads).
|
||||
The default download location is your Downloads folder. From the command line the location is `/home/username/Downloads` (note the capital D in Downloads).
|
||||
|
||||
=== Extract the files from the archive
|
||||
Most applications require many files or even directories, packaged together into an archive. The most common archives are "tarballs," with the files packaged by using the `tar` (tape archive) command. These will have a `.tar` file extension.
|
||||
|
||||
In some cases the files will use a variation of the Zip archive format, such as `.zip` or `.gz`. Depending on the size of the download the application developer might use both `tar` and `gzip` together, so that the file will have a `.tar.gz` extension.
|
||||
In some cases the files will use a variation of the Zip archive format, such as `.zip` or `.gz`. Depending on the size of the download the application developer might use both `tar` and `gzip` together, so that the file will have a `.tar.gz` extension.
|
||||
|
||||
To extract files from a `.tar` archive:
|
||||
[source, bash]
|
||||
$ tar -xf archive.tar
|
||||
|
||||
`-xf` means to e**x**tract the **f**iles from the `tar` archive.
|
||||
`-xf` extracts the files from the `tar` archive.
|
||||
|
||||
To extract files from a `tar.gz` archive:
|
||||
[source, bash]
|
||||
$ tar -zxf archive.tar.gz
|
||||
|
||||
`-zxf` means to un**z**ip the archive, and e**x**tract the **f**iles from the `tar` archive.
|
||||
`-zxf` decompresses the archive and extracts its files.
|
||||
|
||||
To extract files from a `.gz` archive:
|
||||
[source, bash]
|
||||
$ gzip -d archive.gz
|
||||
|
||||
`-d` means to **d**ecompress the archive, which extracts the files.
|
||||
`-d` decompresses the archive.
|
||||
|
||||
You can also use `gunzip`, which is an alias for `gzip -d`.
|
||||
[source, bash]
|
||||
|
|
@ -79,9 +79,9 @@ When you extract the archive it will leave you with a directory with the same or
|
|||
|
||||
The extracted folder for the application will have a README or some other file that gives instructions on how to install, configure, and manage the application. The README file will have detailed directions on things such as:
|
||||
|
||||
* Choosing an alternate directory for installation.
|
||||
* Setting configuration options for the build.
|
||||
* What compile time options to use for different configurations.
|
||||
* Choosing an alternate directory for installation.
|
||||
* Setting configuration options for the build.
|
||||
* What compile time options to use for different configurations.
|
||||
|
||||
NOTE: If no instructions exist on how to configure or build the application, you will need to reach out to the application developers for help. You might also find instructions online from someone else who had a similar issue.
|
||||
|
||||
|
|
@ -108,6 +108,6 @@ NOTE: If you get any errors during the configure and build process, carefully re
|
|||
[discrete]
|
||||
== See also
|
||||
|
||||
* https://www.gnu.org/software/make/[GNU Make (build and compile tool) documentation]
|
||||
* https://www.gnu.org/software/tar/[GNU Tar documentation]
|
||||
* https://www.gnu.org/software/gzip/[GNU Gzip documentation]
|
||||
* https://www.gnu.org/software/make/[GNU Make (build and compile tool) documentation]
|
||||
* https://www.gnu.org/software/tar/[GNU Tar documentation]
|
||||
* https://www.gnu.org/software/gzip/[GNU Gzip documentation]
|
||||
|
|
|
|||
|
|
@ -17,14 +17,14 @@ If you want to just run a specific application, check the documentation of that
|
|||
Most Java applications run on one of the following:
|
||||
|
||||
* OpenJDK -- an open-source implementation of the Java Platform, Standard Edition.
|
||||
This version is preferred, and included in Fedora.
|
||||
This version is preferred, and included in Fedora.
|
||||
* Oracle Java SE -- The former Oracle SE is no longer distributed by Fedora.
|
||||
|
||||
You can find the following Versions:
|
||||
|
||||
* The Long Term Support `LTS` Versions, currently 21, 25
|
||||
|
||||
* Latest, currently 24
|
||||
* Latest, currently 26
|
||||
|
||||
|
||||
|
||||
|
|
@ -34,55 +34,64 @@ To install OpenJDK from the Fedora repository:
|
|||
|
||||
* Run the following command to list available versions:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
dnf search openjdk
|
||||
$ dnf search openjdk
|
||||
----
|
||||
|
||||
* Copy the version of OpenJDK you want to install.
|
||||
|
||||
[NOTE]
|
||||
Various flavors of OpenJDK are available. For information about these options, search the link:https://openjdk.java.net/[OpenJDK web site].
|
||||
Various flavors of OpenJDK are available. For information about these options, search the link:https://openjdk.org/[OpenJDK web site].
|
||||
|
||||
* Run the following command to install OpenJDK:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install <openjdk-package-name>
|
||||
$ sudo dnf install <openjdk-package-name>
|
||||
----
|
||||
|
||||
Examples:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install java-21-openjdk.x86_64
|
||||
$ sudo dnf install java-21-openjdk
|
||||
----
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install java-25-openjdk.x86_64
|
||||
$ sudo dnf install java-25-openjdk
|
||||
----
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install java-latest-openjdk.x86_64
|
||||
$ sudo dnf install java-latest-openjdk
|
||||
----
|
||||
|
||||
=== Installing OpenJDK for development
|
||||
|
||||
In order to install the Java Development Kit, runtime environment and associated development tools.
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install <openjdk-package-name>-devel
|
||||
$ sudo dnf install <openjdk-package-name>-devel
|
||||
----
|
||||
|
||||
Examples:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install java-21-openjdk-devel.x86_64
|
||||
$ sudo dnf install java-21-openjdk-devel
|
||||
----
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install java-25-openjdk-devel.x86_64
|
||||
$ sudo dnf install java-25-openjdk-devel
|
||||
----
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install java-latest-openjdk-devel.x86_64
|
||||
$ sudo dnf install java-latest-openjdk-devel
|
||||
----
|
||||
|
||||
|
||||
|
|
@ -92,20 +101,23 @@ To install an older version of Java:
|
|||
|
||||
* Install the Adoptium Temurin Java Repository:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install adoptium-temurin-java-repository
|
||||
$ sudo dnf install adoptium-temurin-java-repository
|
||||
----
|
||||
|
||||
Then, enable the third party repos:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo fedora-third-party enable
|
||||
$ sudo fedora-third-party enable
|
||||
----
|
||||
|
||||
* Run the following command to list available versions:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
dnf search temurin
|
||||
$ dnf search temurin
|
||||
----
|
||||
|
||||
|
||||
|
|
@ -113,18 +125,21 @@ dnf search temurin
|
|||
|
||||
* Run the following command to install Temurin JDK:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install <temurin-package-name>
|
||||
$ sudo dnf install <temurin-package-name>
|
||||
----
|
||||
|
||||
Examples:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install temurin-8-jdk.x86_64
|
||||
$ sudo dnf install temurin-8-jdk
|
||||
----
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install temurin-17-jdk.x86_64
|
||||
$ sudo dnf install temurin-17-jdk
|
||||
----
|
||||
|
||||
|
||||
|
|
@ -134,7 +149,7 @@ include::{partialsdir}/3rdparty-message.adoc[]
|
|||
|
||||
To install Oracle Java SE:
|
||||
|
||||
. Navigate to link:https://www.oracle.com/java/technologies/javase-downloads.html[Oracle Java SE downloads page], and choose the version of Java you wish to use.
|
||||
. Navigate to link:https://www.oracle.com/java/technologies/javase-downloads.html[Oracle Java SE downloads page], and choose the version of Java you want to use.
|
||||
|
||||
. Accept the license agreement and download the appropriate tar.gz file for your systems architecture.
|
||||
|
||||
|
|
@ -145,7 +160,7 @@ For example, to extract it to the _/opt_ directory:
|
|||
. Set the _JAVA_HOME_ environment variable to that directory.
|
||||
For example: `export JAVA_HOME=/opt/jdk-25.0.1.1`
|
||||
|
||||
Note: Always make sure to download latest version available.
|
||||
NOTE: Always make sure to download the latest version available.
|
||||
|
||||
|
||||
|
||||
|
|
@ -155,16 +170,18 @@ You might have installed several versions of Java on your system, you can switch
|
|||
|
||||
After running this command, you will see a list of all installed Java versions, select:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo alternatives --config java
|
||||
$ sudo alternatives --config java
|
||||
----
|
||||
|
||||
Simply enter a selection number to choose which java executable should be used by default.
|
||||
|
||||
* verify:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
java -version
|
||||
$ java -version
|
||||
----
|
||||
|
||||
|
||||
|
|
@ -177,13 +194,9 @@ JRE:: Java Runtime Environment; required to run Java code and applications
|
|||
JVM:: Java Virtual Machine; main component of the JRE
|
||||
JDK:: Java Development Kit; required only for development, coding
|
||||
SDK:: Software Development Kit; see JDK
|
||||
JavaWS:: link:https://en.wikipedia.org/wiki/Java_Web_Start[Java Web Start] is a framework to start application from the Internet
|
||||
JavaFX:: link:https://en.wikipedia.org/wiki/JavaFX[JavaFX] is a platform to create and deliver desktop and Rich Internet Apps
|
||||
OpenJFX:: is the JavaFX Open Source implementation
|
||||
OpenJDK:: Open Source project behind the Java Platform link:https://openjdk.java.net/[openjdk.java.net].
|
||||
IcedTea:: is a support project for OpenJDK (concern only developers) link:http://icedtea.classpath.org/[icedtea.classpath.org]
|
||||
IcedTea-Web:: is the Java Web Start package (contains only JavaWS, no applets anymore); install to run *JNPL* files
|
||||
applets:: are obsolete technology; Not implemented in any recent package
|
||||
JavaFX:: link:https://en.wikipedia.org/wiki/JavaFX[JavaFX] is a platform to create and deliver desktop applications
|
||||
OpenJFX:: the JavaFX open source implementation
|
||||
OpenJDK:: open source implementation of the Java Platform; see link:https://openjdk.org/[openjdk.org]
|
||||
JSE, J2SE, JEE, ...:: obsolete acronyms for Java Standard & Enterprise Edition; JavaSE is like JRE
|
||||
|
||||
|
||||
|
|
@ -192,39 +205,32 @@ JSE, J2SE, JEE, ...:: obsolete acronyms for Java Standard & Enterprise Edition;
|
|||
|
||||
The JDK has as its primary components a collection of programming tools, including:
|
||||
|
||||
`appletviewer`:: this tool can be used to run and debug Java applets without a web browser
|
||||
`apt`:: the annotation-processing tool
|
||||
`extcheck`:: a utility which can detect JAR-file conflicts
|
||||
`idlj`:: the IDL-to-Java compiler. This utility generates Java bindings from a given Java IDL file.
|
||||
`jabswitch`:: the Java Access Bridge. Exposes assistive technologies on Microsoft Windows systems.
|
||||
`java`:: the loader for Java applications. This tool is an interpreter and can interpret the class files generated by the javac compiler. Now a single launcher is used for both development and deployment. The old deployment launcher, jre, no longer comes with Sun JDK, and instead it has been replaced by this new java loader.
|
||||
`java`:: the loader for Java applications; interprets the class files produced by `javac`
|
||||
`javac`:: the Java compiler, which converts source code into Java bytecode
|
||||
`javadoc`:: the documentation generator, which automatically generates documentation from source code comments
|
||||
`jar`:: the archiver, which packages related class libraries into a single JAR file. This tool also helps manage JAR files.
|
||||
`javafxpackager`:: tool to package and sign JavaFX applications
|
||||
`jar`:: the archiver, which packages related class libraries into a single JAR file
|
||||
`jarsigner`:: the jar signing and verification tool
|
||||
`javah`:: the C header and stub generator, used to write native methods
|
||||
`javap`:: the class file disassembler
|
||||
`javaws`:: the Java Web Start launcher for JNLP applications
|
||||
`JConsole`:: Java Monitoring and Management Console
|
||||
`jdb`:: the debugger
|
||||
`jhat`:: Java Heap Analysis Tool (experimental)
|
||||
`jinfo`:: This utility gets configuration information from a running Java process or crash dump. (experimental)
|
||||
`jmap`:: This utility outputs the memory map for Java and can print shared object memory maps or heap memory details of a given process or core dump. (experimental)
|
||||
`jmc`:: Java Mission Control
|
||||
`jps`:: Java Virtual Machine Process Status Tool lists the instrumented HotSpot Java Virtual Machines (JVMs) on the target system. (experimental)
|
||||
`jrunscript`:: Java command-line script shell.
|
||||
`jstack`:: utility which prints Java stack traces of Java threads (experimental)
|
||||
`jstat`:: Java Virtual Machine statistics monitoring tool (experimental)
|
||||
`jstatd`:: jstat daemon (experimental)
|
||||
`jdeps`:: analyses class file dependencies; useful for identifying required modules
|
||||
`jhsdb`:: the HotSpot debugger; provides serviceability tools for attaching to a running JVM or analysing a core dump
|
||||
`jinfo`:: gets configuration information from a running Java process or crash dump
|
||||
`jlink`:: assembles and optimises a custom Java runtime image containing only the modules your application requires
|
||||
`jmap`:: outputs the memory map for a Java process and can print heap memory details of a given process or core dump
|
||||
`jmc`:: Java Mission Control; a tool for managing, monitoring, profiling, and troubleshooting Java applications
|
||||
`jmod`:: creates and manages JMOD files, which can include native code and configuration files not suited to JAR format
|
||||
`jpackage`:: packages a Java application into a platform-specific installer or executable
|
||||
`jps`:: lists the instrumented HotSpot Java Virtual Machines (JVMs) on the target system
|
||||
`jrunscript`:: Java command-line script shell
|
||||
`jshell`:: an interactive Java REPL (Read-Eval-Print Loop) for prototyping and exploring Java code
|
||||
`jstack`:: prints Java stack traces of Java threads
|
||||
`jstat`:: Java Virtual Machine statistics monitoring tool
|
||||
`jstatd`:: jstat daemon
|
||||
`JConsole`:: Java Monitoring and Management Console
|
||||
`keytool`:: tool for manipulating the keystore
|
||||
`pack200`:: JAR compression tool
|
||||
`policytool`:: the policy creation and management tool, which can determine policy for a Java runtime, specifying which permissions are available for code from various sources
|
||||
`VisualVM`:: visual tool integrating several command-line JDK tools and lightweight clarification needed] performance and memory profiling capabilities
|
||||
`wsimport`:: generates portable JAX-WS artifacts for invoking a web service.
|
||||
`xjc`:: Part of the Java API for XML Binding (JAXB) API. It accepts an XML schema and generates Java classes.
|
||||
`xjc`:: Part of the Java API for XML Binding (JAXB) API; accepts an XML schema and generates Java classes
|
||||
|
||||
The JDK also comes with a complete Java Runtime Environment, usually called a private runtime, due to the fact that it is separated from the "regular" JRE and has extra contents. It consists of a Java Virtual Machine and all of the class libraries present in the production environment, as well as additional libraries only useful to developers, such as the internationalization libraries and the IDL libraries.
|
||||
The JDK also includes a complete Java Runtime Environment, usually called a private runtime, due to the fact that it is separated from the "regular" JRE and has extra contents. It consists of a Java Virtual Machine and all of the class libraries present in the production environment, as well as additional libraries only useful to developers, such as the internationalization libraries and the IDL libraries.
|
||||
|
||||
|
||||
|
||||
|
|
@ -232,14 +238,14 @@ The JDK also comes with a complete Java Runtime Environment, usually called a pr
|
|||
|
||||
For Java in Fedora, see:
|
||||
|
||||
* link:https://admin.fedoraproject.org/mailman/listinfo/java-devel[java-devel mailing list]
|
||||
* Freenode IRC channel link:irc://irc.freenode.net/fedora-java[#fedora-java]
|
||||
* link:https://discussion.fedoraproject.org/tag/java[Fedora Discussion - Java]
|
||||
\* link:irc://irc.libera.chat/fedora-java[#fedora-java on irc.libera.chat]
|
||||
* link:https://ask.fedoraproject.org/tags/java[Ask Fedora about Java]
|
||||
|
||||
For more information about Java in general, see:
|
||||
|
||||
* link:https://en.wikipedia.org/wiki/Java_(programming_language)[Wikipedia page for Java]
|
||||
* link:https://openjdk.java.net/[OpenJDK homepage]
|
||||
* link:https://openjdk.org/[OpenJDK homepage]
|
||||
* link:https://oracle.com/java/[Oracle homepage for Java]
|
||||
|
||||
To develop Java applications, consider the following open-source IDEs:
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
= Installing plugins for playing movies and music
|
||||
Ankur Sinha ; Héctor Louzao ; Neil Gompa (ngompa) ; Dominik Mierzejewski (rathann)
|
||||
:revnumber: F39 and newer
|
||||
:revdate: 2024-03-06
|
||||
:category: Administration
|
||||
Ankur Sinha ; Héctor Louzao ; Neil Gompa (ngompa) ; Dominik Mierzejewski (rathann); Caleb McKee; Rowan Puttergill
|
||||
:revnumber: F42 and newer
|
||||
:revdate: 2026-05-10
|
||||
:category: Software installation
|
||||
:tags: How-to, Plugins, Multimedia
|
||||
:page-aliases: assembly_installing-plugins-for-playing-movies-and-music.adoc
|
||||
:page-aliases: assembly_installing-plugins-for-playing-movies-and-music.adoc, openh264.adoc
|
||||
|
||||
[abstract]
|
||||
As a Fedora user and system administrator, you can use these steps to install additional multimedia plugins that enable you to play various video and audio types.
|
||||
|
|
@ -13,12 +13,39 @@ As a Fedora user and system administrator, you can use these steps to install ad
|
|||
|
||||
* Use the `dnf` utility to install packages that provide multimedia libraries:
|
||||
+
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf group install Multimedia
|
||||
$ sudo dnf group install multimedia
|
||||
----
|
||||
|
||||
* For f41 and newer:
|
||||
+
|
||||
== Extended codec support with RPM Fusion
|
||||
|
||||
The `multimedia` group covers many common formats, but some codecs are not included in Fedora's official repositories due to patent or licensing restrictions.
|
||||
For full support including MP3, AAC, H.264 video files, and HEVC, enable the RPM Fusion repositories and install the additional codec packages from there.
|
||||
|
||||
See xref:rpmfusion-setup.adoc[Enabling the RPM Fusion repositories] for setup instructions.
|
||||
|
||||
== H.264 support for WebRTC
|
||||
|
||||
Cisco provides an OpenH264 codec (as a source and a binary), which is
|
||||
their implementation of the H.264 codec, and they cover all licensing fees for all parties using their binary. This codec allows you to use H.264 in WebRTC with gstreamer and Firefox.
|
||||
|
||||
The code source is available at https://github.com/cisco/openh264 under
|
||||
a BSD license. The binary is released under this agreement from Cisco:
|
||||
https://www.openh264.org/BINARY_LICENSE.txt
|
||||
|
||||
Upstream Firefox versions download and install the OpenH264 plugin by
|
||||
default automatically. Due to its binary nature, Fedora disables this
|
||||
automatic download.
|
||||
|
||||
|
||||
NOTE: OpenH264 only enables H.264 in WebRTC contexts such as video calls. It does not provide general H.264 video playback. For general H.264 playback, see xref:rpmfusion-setup.adoc[Enabling the RPM Fusion repositories].
|
||||
|
||||
The `fedora-cisco-openh264` repository is enabled by default. To install the plugins:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf group install multimedia
|
||||
----
|
||||
$ sudo dnf install gstreamer1-plugin-openh264 mozilla-openh264
|
||||
----
|
||||
|
||||
After installation, open Firefox and navigate to *menu* -> *Extensions and themes* -> *Plugins* to confirm the OpenH264 plugin is enabled.
|
||||
|
|
@ -5,7 +5,7 @@ Ankur Sinha; Weverton do Couto Timoteo; Mohammadreza Hendiani
|
|||
:category: Installation
|
||||
:tags: How-to, Flatpak, DNF, RPMFusion, Spotify
|
||||
|
||||
// Optional free form useful additional information as comment
|
||||
// Optional free form useful additional information as comment
|
||||
|
||||
//include::{partialsdir}/3rdparty-message.adoc[]
|
||||
include::partial$3rdparty-message.adoc[]
|
||||
|
|
@ -13,7 +13,7 @@ include::partial$3rdparty-message.adoc[]
|
|||
|
||||
link:https://www.spotify.com/[Spotify] is a cross-platform proprietary music streaming service.
|
||||
Spotify is a freemium service, with advertisements which can be removed by purchasing a subscription.
|
||||
Although Spotify is not officially supported on Fedora, it can be installed on Fedora in a number of ways:
|
||||
Although Spotify is not officially supported on Fedora, it can be installed on Fedora in several ways:
|
||||
|
||||
. Using a Flatpak hosted by https://flathub.org[Flathub].
|
||||
. Using Snap hosted by https://snapcraft.io/spotify[snapcraft].
|
||||
|
|
@ -39,10 +39,10 @@ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flat
|
|||
----
|
||||
|
||||
. Install Spotify:
|
||||
.. Using Gnome Software:
|
||||
.. Using GNOME Software:
|
||||
... Head to the link:https://flathub.org/apps/details/com.spotify.Client[Spotify page on Flathub].
|
||||
... Click "install", and choose to open the file using Gnome Software.
|
||||
... Click "install" in Gnome Software.
|
||||
... Click "install", and choose to open the file using GNOME Software.
|
||||
... Click "install" in GNOME Software.
|
||||
... Click "launch" to run Spotify once installed.
|
||||
|
||||
.. Using the command line:
|
||||
|
|
@ -70,13 +70,13 @@ To install Spotify using link:https://snapcraft.io/spotify[Snap]:
|
|||
sudo dnf install snapd
|
||||
----
|
||||
|
||||
. Either log out and back in again, or restart your system, to ensure snap’s paths are updated correctly.
|
||||
. Either log out and back in again, or restart your system, to ensure snap's paths are updated correctly.
|
||||
. To enable classic snap support, enter the following to create a symbolic link between `/var/lib/snapd/snap` and `/snap`:
|
||||
+
|
||||
----
|
||||
sudo ln -s /var/lib/snapd/snap /snap
|
||||
----
|
||||
. Install spotify, simply use the following command:
|
||||
. Install Spotify with the following command:
|
||||
+
|
||||
----
|
||||
snap install spotify
|
||||
|
|
@ -88,7 +88,7 @@ snap install spotify
|
|||
|
||||
// UNVERIFIED
|
||||
|
||||
For this method, please refer to the link:https://github.com/leamas/lpf[`lpf GitHub Page`]
|
||||
For this method, refer to the link:https://github.com/leamas/lpf[`lpf GitHub Page`]
|
||||
requirements.
|
||||
|
||||
. xref:rpmfusion-setup.adoc[Enable the RPMFusion repositories].
|
||||
|
|
|
|||
251
modules/ROOT/pages/language-package-managers.adoc
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
= Installing Software from Language Package Managers
|
||||
Rowan Puttergill, Fedora Documentation Team
|
||||
:revnumber: F42 and newer
|
||||
:revdate: 2026-05-08
|
||||
:category: Software Management
|
||||
:tags: pip, npm, cargo, gem, go, Python, Node.js, Rust, Ruby, Third-Party
|
||||
|
||||
[abstract]
|
||||
Many programming language ecosystems include their own package managers for installing libraries and tools.
|
||||
This page explains how to use common language package managers on Fedora, and the important differences between them and DNF.
|
||||
|
||||
== What are language package managers
|
||||
|
||||
Language package managers install software published within a specific programming language ecosystem. For example, you can install Python libraries and some Python applications by using tools such as pip. You can also install many JavaScript based applications by using tools such as npm.
|
||||
These tools operate independently and install packages outside of Fedora's package management system.
|
||||
|
||||
Before using a language package manager, check whether the package you need is already available in the Fedora repositories.
|
||||
Many popular libraries are packaged for Fedora and can be installed with DNF:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ dnf search _package_name_
|
||||
----
|
||||
|
||||
Installing from Fedora repositories is preferred because those packages receive security updates through the normal Fedora update process and are tested for compatibility with your system.
|
||||
|
||||
Language package managers bypass DNF, which means:
|
||||
|
||||
* Packages installed this way are invisible to DNF and do not receive updates through `dnf upgrade`
|
||||
* Packages might conflict with system packages if installed globally
|
||||
* Security updates must be managed separately, using the language package manager itself
|
||||
* Removing packages requires the language package manager, not DNF
|
||||
* Sources are not vetted by Fedora maintainers, so there is a higher risk of installing malicious or unmaintained software
|
||||
|
||||
For these reasons, install language packages at the user level or in isolated environments wherever possible, rather than system-wide.
|
||||
|
||||
== Python - pip
|
||||
|
||||
Python's package manager is pip.
|
||||
Many Python packages are available in Fedora repositories as `python3-_packagename_` and should be installed that way when possible.
|
||||
|
||||
=== Installing pip
|
||||
|
||||
pip is included with Python, which is pre-installed on Fedora.
|
||||
If pip is missing:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install python3-pip
|
||||
----
|
||||
|
||||
=== Using virtual environments
|
||||
|
||||
Always use a virtual environment to isolate pip-installed packages from the system Python installation.
|
||||
Installing pip packages globally can conflict with system Python libraries and break system tools.
|
||||
|
||||
Create and activate a virtual environment:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ python3 -m venv _myenv_
|
||||
$ source _myenv_/bin/activate
|
||||
----
|
||||
|
||||
Install a package inside the virtual environment:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ pip install _package_name_
|
||||
----
|
||||
|
||||
Deactivate the virtual environment when finished:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ deactivate
|
||||
----
|
||||
|
||||
=== Updating pip packages
|
||||
|
||||
Update all packages inside an active virtual environment:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ pip install --upgrade _package_name_
|
||||
----
|
||||
|
||||
=== Alternative Python package managers
|
||||
|
||||
You can use other Python package managers that create isolated environments, such as:
|
||||
|
||||
* https://github.com/pypa/pipx[pipx] - installs and manages Python command-line tools in isolated environments
|
||||
* https://docs.astral.sh/uv/[uv] - a modern Python package manager and environment manager that improves on pip and virtualenv
|
||||
|
||||
These tools can be installed either from Fedora repositories or by using pip.
|
||||
|
||||
For example, to install pipx, run:
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install pipx
|
||||
----
|
||||
|
||||
Or, to install uv, run:
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install python3-uv
|
||||
----
|
||||
|
||||
== Node.js - npm
|
||||
|
||||
npm is the package manager for the Node.js ecosystem.
|
||||
|
||||
=== Installing Node.js and npm
|
||||
|
||||
Install Node.js and npm from the Fedora repositories:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install nodejs npm
|
||||
----
|
||||
|
||||
=== Installing packages
|
||||
|
||||
Install a package locally for a specific project (recommended):
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ npm install _package_name_
|
||||
----
|
||||
|
||||
Install a package globally to make a command-line tool available system-wide:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ npm install -g _package_name_
|
||||
----
|
||||
|
||||
NOTE: Global npm installs may require elevated permissions depending on how Node.js was installed.
|
||||
To avoid permission issues, consider using a Node.js version manager such as https://github.com/nvm-sh/nvm[nvm].
|
||||
|
||||
=== Updating npm packages
|
||||
|
||||
Update packages in the current project:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ npm update
|
||||
----
|
||||
|
||||
== Rust - Cargo
|
||||
|
||||
Cargo is Rust's package manager and build system.
|
||||
Cargo compiles packages from source, so builds can take some time.
|
||||
|
||||
=== Installing Rust and Cargo
|
||||
|
||||
Install Rust and Cargo from the Fedora repositories:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install rust cargo
|
||||
----
|
||||
|
||||
Alternatively, use the official Rust toolchain installer https://rustup.rs[rustup] for more control over Rust versions.
|
||||
|
||||
=== Installing packages
|
||||
|
||||
Install a Rust package (called a "crate") and make it available as a command-line tool:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ cargo install _crate_name_
|
||||
----
|
||||
|
||||
Cargo installs binaries to `~/.cargo/bin/` by default.
|
||||
Ensure this directory is in your `PATH`.
|
||||
|
||||
=== Updating installed crates
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ cargo install --force _crate_name_
|
||||
----
|
||||
|
||||
== Ruby - gem
|
||||
|
||||
gem is Ruby's package manager for installing Ruby libraries and tools (called "gems").
|
||||
Many Ruby gems are available in the Fedora repositories as `rubygem-_packagename_` and should be installed that way when possible.
|
||||
|
||||
=== Installing Ruby and gem
|
||||
|
||||
Install Ruby from the Fedora repositories:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install ruby
|
||||
----
|
||||
|
||||
gem is included with Ruby.
|
||||
|
||||
=== Installing gems
|
||||
|
||||
Install a gem for the current user:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ gem install --user-install _gem_name_
|
||||
----
|
||||
|
||||
Using `--user-install` avoids writing to system directories and does not require root access.
|
||||
|
||||
=== Updating gems
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ gem update _gem_name_
|
||||
----
|
||||
|
||||
== Go - go install
|
||||
|
||||
The Go toolchain includes `go install` for installing Go-based tools.
|
||||
|
||||
=== Installing Go
|
||||
|
||||
Install Go from the Fedora repositories:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install golang
|
||||
----
|
||||
|
||||
=== Installing tools
|
||||
|
||||
Install a Go tool by its module path:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ go install _module_path_@latest
|
||||
----
|
||||
|
||||
For example:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ go install golang.org/x/tools/cmd/goimports@latest
|
||||
----
|
||||
|
||||
Go installs binaries to `~/go/bin/` by default.
|
||||
Ensure this directory is in your `PATH`.
|
||||
|
||||
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
= OpenH264
|
||||
Caleb McKee
|
||||
:revnumber: unknown
|
||||
:revdate: 2021-06-04
|
||||
:category: Applications
|
||||
:tags: How-to, Multimedia
|
||||
|
||||
[abstract]
|
||||
This page contains information on the Cisco
|
||||
https://www.openh264.org/[OpenH264] codec.
|
||||
|
||||
|
||||
== Background
|
||||
|
||||
|
||||
Cisco provides an OpenH264 codec (as a source and a binary), which is
|
||||
their implementation of the H.264 codec, and they cover all licensing fees
|
||||
for all parties using their binary. This codec allows you to use H.264
|
||||
in WebRTC with gstreamer and Firefox. It does *not* enable generic H.264
|
||||
playback, only WebRTC (see link:https://bugzilla.mozilla.org/show_bug.cgi?id=1057646[Mozilla bug 1057646]).
|
||||
|
||||
The code source is available at https://github.com/cisco/openh264 under
|
||||
a BSD license. The binary is released under this agreement from Cisco:
|
||||
https://www.openh264.org/BINARY_LICENSE.txt
|
||||
|
||||
Upstream Firefox versions download and install the OpenH264 plugin by
|
||||
default automatically. Due to its binary nature, Fedora disables this
|
||||
automatic download.
|
||||
|
||||
== Installation from fedora-cisco-openh264 repository
|
||||
|
||||
A `fedora-cisco-openh264` repository is distributed since Fedora 24 by
|
||||
default (if you have at least `fedora-repos-24-0.5` package or newer).
|
||||
It contains the OpenH264 binary link:Non-distributable-rpms[built inside the
|
||||
Fedora infrastructure], but distributed by Cisco, so that the all
|
||||
licensing fees are still covered by them. This repository also contains
|
||||
OpenH264 plugins for gstreamer and Firefox. It is enabled by default since
|
||||
Fedora 33 (if you have at least `fedora-repos-33-0.3` package or newer).
|
||||
In order to install OpenH264, just install the plugins:
|
||||
|
||||
....
|
||||
$ sudo dnf install gstreamer1-plugin-openh264 mozilla-openh264
|
||||
....
|
||||
|
||||
Afterward, you need to open Firefox, go to menu -> Add-ons -> Plugins and
|
||||
enable OpenH264 plugin.
|
||||
|
||||
You can do a simple test whether your H.264 works in RTC on
|
||||
https://mozilla.github.io/webrtc-landing/pc_test.html[this page] (check
|
||||
_Require H.264 video_).
|
||||
|
||||
== Manual installation of binary
|
||||
|
||||
* View and agree to the https://www.openh264.org/BINARY_LICENSE.txt
|
||||
* Download the appropriate binary for your system here:
|
||||
https://github.com/cisco/openh264/releases
|
||||
|
||||
Example installation for version 1.1:
|
||||
|
||||
....
|
||||
wget http://ciscobinary.openh264.org/openh264-linux64-v1.1-Firefox33.zip +
|
||||
mkdir -p ~/.mozilla/firefox/<yourprofile>/gmp-gmpopenh264/1.1/ +
|
||||
cd ~/.mozilla/firefox/<yourprofile>/gmp-gmpopenh264/1.1/ +
|
||||
unzip ~/openh264-linux64-v1.1-Firefox33.zip
|
||||
....
|
||||
|
||||
== Firefox config changes
|
||||
|
||||
Type about:config into the Firefox address/URL field and accept the warning.
|
||||
|
||||
* From the Search field, type in 264 and a handful of options will
|
||||
appear. Give the following Preference Names a value of true by
|
||||
double-clicking on false:
|
||||
|
||||
....
|
||||
media.gmp-gmpopenh264.autoupdate
|
||||
media.gmp-gmpopenh264.enabled
|
||||
media.gmp-gmpopenh264.provider.enabled
|
||||
media.peerconnection.video.h264_enabled
|
||||
....
|
||||
|
||||
* Restart Firefox
|
||||
* After restarting, the following string in about:config will change to
|
||||
the current version that has been installed from the web:
|
||||
|
||||
....
|
||||
media.gmp-gmpopenh264.version
|
||||
....
|
||||
|
||||
See a typo, something missing or out of date, or anything else which can be
|
||||
improved? Edit this document at https://forge.fedoraproject.org/docs/quick-docs.
|
||||
|
|
@ -1,119 +1,67 @@
|
|||
= Package management system
|
||||
Caleb McKee ; Otto Urpelainen; Ben Cotton
|
||||
:revnumber: unspecified
|
||||
:revdate: 2022-05-04
|
||||
= Package Management System
|
||||
Caleb McKee; Otto Urpelainen; Ben Cotton
|
||||
:revnumber: F41 and newer
|
||||
:revdate: 2026-05-10
|
||||
:category: Administration
|
||||
:tags: How-to
|
||||
// :page-aliases:
|
||||
:tags: How-to
|
||||
|
||||
[abstract]
|
||||
Fedora uses a package management system based on RPM to install, update, and remove software.
|
||||
This page explains what a package management system is, its advantages, and the tools available.
|
||||
|
||||
[[package-management-system]]
|
||||
Package Management System
|
||||
-------------------------
|
||||
== Introduction
|
||||
|
||||
[[introduction]]
|
||||
Introduction
|
||||
~~~~~~~~~~~~
|
||||
Fedora uses a package management system based on https://rpm.org[RPM], the RPM Package Manager.
|
||||
RPM provides the base for several higher-level tools, including:
|
||||
|
||||
Fedora is a distribution that uses a package management system. This
|
||||
system is based on https://rpm.org[rpm] , the RPM Package Manager, with
|
||||
several higher level tools built on top of it, most notably
|
||||
https://www.freedesktop.org/software/PackageKit/[PackageKit] (default
|
||||
gui) and xref:dnf.adoc[DNF].
|
||||
GNOME Software is another GUI package manager.
|
||||
* xref:dnf.adoc[DNF] - the default command-line package manager since Fedora 41
|
||||
* xref:finding-and-installing-linux-applications.adoc[GNOME Software] - the default graphical package manager on Fedora Workstation
|
||||
* xref:finding-and-installing-linux-applications.adoc[KDE Discover] - the graphical package manager on Fedora KDE Spin
|
||||
|
||||
[[advantages-of-package-management-systems]]
|
||||
Advantages of package management systems
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
NOTE: On image-based Fedora variants such as the Fedora Atomic Desktops, package management works differently. See the xref:atomic-desktops::index.adoc[Fedora Atomic Desktops User Guide] for details.
|
||||
|
||||
== Advantages of package management systems
|
||||
|
||||
Package management systems have many advantages:
|
||||
|
||||
* It's easy to query what version of a package is installed or available.
|
||||
* It is easy to query what version of a package is installed or available.
|
||||
* It is easy to remove a package entirely, removing all its files.
|
||||
* It is easy to verify the integrity of a package's files, so you can check for corruption or tampering.
|
||||
* It is easy to upgrade a package by installing the new version and removing all the old version's files, avoiding lingering files that could cause problems.
|
||||
* It is easy to see what packages require or provide things that other packages need, ensuring all dependencies are met.
|
||||
* It is easy to install or remove groups of packages.
|
||||
* In many cases it is possible to downgrade to an earlier version of a package, for example when a new version has a bug.
|
||||
|
||||
* It's easy to remove a package entirely, making sure all its files are gone.
|
||||
== Disadvantages of package management systems
|
||||
|
||||
* It's easy to verify the integrity of the packages files, so you can
|
||||
see if it's been corrupted or tampered with.
|
||||
* You can only use the versions of the package that are available, or having to make your own package if you need a different version.
|
||||
|
||||
* It's easy to upgrade a package by installing the new version and
|
||||
removing all the old versions files. This will make sure not to leave
|
||||
any lingering files from the old package around to confuse or break
|
||||
things.
|
||||
== Why mixing source installs and packages is a bad idea
|
||||
|
||||
* It's easy to see what packages require or provide things that other
|
||||
packages provide or require, so you can be sure to have the needed items
|
||||
for the package to function correctly.
|
||||
Package management systems have no way to track when you bypass them and install something from source.
|
||||
Avoid mixing source installs and packaged installs for the following reasons:
|
||||
|
||||
* It's easy to install or remove groups of packages.
|
||||
* You lose all the advantages of a package managed system listed above.
|
||||
* Installing from source might overwrite, delete, or change existing files owned by a package, causing that package to stop functioning correctly.
|
||||
* The source install might override a package install, causing undefined behavior in either.
|
||||
* Installing from source makes it difficult to debug issues, since versions cannot be easily queried and integrity cannot be checked.
|
||||
* Fedora packages might include patches or configuration to work correctly with other packages that upstream source does not include, leading to loss of functionality.
|
||||
* Software installed from source does not upgrade with package managed packages, leading to breakage on system updates.
|
||||
|
||||
* In many cases it's possible to downgrade back to a previous version of
|
||||
a package, for example when a new version has a bug.
|
||||
|
||||
[[disadvantages-of-package-management-systems]]
|
||||
Disadvantages of package management systems
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* You are restricted to either using the versions of the package that
|
||||
are available or having to make your own package if you need a different
|
||||
version.
|
||||
|
||||
[[why-mixing-source-installs-and-packages-is-a-bad-idea]]
|
||||
Why mixing source installs and packages is a bad idea
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Package management systems have no way to query or note when you bypass
|
||||
them and install something from source. You should avoid mixing source
|
||||
installs and packaged installs for (at least) the following reasons:
|
||||
|
||||
* You lose all the advantages above from a package managed system.
|
||||
|
||||
* Installing from source may overwrite, delete, or change existing files
|
||||
that are in a package, making that package not function correctly.
|
||||
|
||||
* The source install may override a package install causing undefined
|
||||
behavior in the package or source installed item.
|
||||
|
||||
* Installing from source makes it impossible or very difficult for
|
||||
anyone to help you debug issues, since versions can't be easily queried
|
||||
and integrity checked.
|
||||
|
||||
* Fedora packages may include patches or configuration to work with
|
||||
other packages, but upstream source does not, leading to loss of
|
||||
functionality.
|
||||
|
||||
* Software installed from source will not upgrade with package managed
|
||||
packages, leading to breakage in the source install package on upgrades
|
||||
or os updates.
|
||||
|
||||
Strongly consider making your own package if you need a different
|
||||
version or a version of some package with changes. See:
|
||||
Consider making your own package if you need a different version or a modified package. See:
|
||||
xref:package-maintainers::Packaging_Tutorial_GNU_Hello.adoc[Packaging Tutorial: GNU Hello]
|
||||
|
||||
[[preferred-search-order-for-a-software]]
|
||||
Preferred search order for a software
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
== Finding software
|
||||
|
||||
If some software is missing in your installation then you should try the
|
||||
following steps to get the packaged version:
|
||||
If software is missing from your installation, try the following steps to find a packaged version:
|
||||
|
||||
1. Search in Fedora ( 'dnf search foo' or search for 'foo' in the
|
||||
PackageKit gui )
|
||||
2. Try one of the available xref:finding-and-installing-linux-applications.adoc#_enabling_third_party_repositories[third-party repositories]
|
||||
3. xref:package-maintainers::Packaging_Tutorial_GNU_Hello.adoc[Build your own package]
|
||||
. Search in Fedora using `dnf search _foo_`, or search using GNOME Software or KDE Discover.
|
||||
. Try one of the available xref:third-party-software.adoc[third-party repositories].
|
||||
. xref:package-maintainers::Packaging_Tutorial_GNU_Hello.adoc[Build your own package].
|
||||
|
||||
[[package-management-tools]]
|
||||
Package Management tools
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
== Package management tools
|
||||
|
||||
Here are some tools for managing packages:
|
||||
|
||||
* xref:dnf.adoc[dnf] - Dandified Yum
|
||||
* https://www.freedesktop.org/software/PackageKit/[PackageKit] -
|
||||
PackageKit gui tool ('add/remove software' in your menu)
|
||||
* https://wiki.gnome.org/Apps/Software[GNOME Software] - Graphical package manager for GNOME
|
||||
* https://apps.kde.org/discover/[KDE Discover] - Graphical package manager for KDE Plasma
|
||||
* https://rpm.org[rpm] - RPM package manager.
|
||||
* https://github.com/timlau/yumex-dnf[yumex] - Yum Extender
|
||||
|
||||
See a typo, something missing or out of date, or anything else which can be
|
||||
improved? Edit this document at https://forge.fedoraproject.org/docs/quick-docs.
|
||||
* xref:dnf.adoc[DNF] - the default command-line package manager
|
||||
* https://wiki.gnome.org/Apps/Software[GNOME Software] - graphical package manager for GNOME
|
||||
* https://apps.kde.org/discover/[KDE Discover] - graphical package manager for KDE Plasma
|
||||
* https://rpm.org[rpm] - the underlying low-level RPM package manager
|
||||
|
|
|
|||
|
|
@ -1,223 +0,0 @@
|
|||
= PackageKit Items Not Found
|
||||
Caleb McKee; Frank Sträter
|
||||
:revnumber: unknown
|
||||
:revdate: 2021-02-10
|
||||
:category: Administration
|
||||
:tags: How-to, troubleshooting
|
||||
//:page-aliases:
|
||||
|
||||
|
||||
[[missing-package]]
|
||||
== Missing Package
|
||||
|
||||
Unfortunately, the package you were searching for is not available in
|
||||
Fedora. There are a few common reasons why a package might not be in
|
||||
Fedora's repositories:
|
||||
|
||||
* Fedora does not include software that is
|
||||
link:Package_Not_Found#Patents[encumbered by software patents].
|
||||
* Fedora does not include proprietary software, only software with an
|
||||
link:Licensing[acceptable license].
|
||||
* It is possible that no one has packaged it yet. You might consider
|
||||
adding it to the link:PackageMaintainers/WishList[Package WishList], or
|
||||
even link:PackageMaintainers/Join[packaging it yourself]!
|
||||
|
||||
[[missing-codec]]
|
||||
== Missing Codec
|
||||
|
||||
Unfortunately, the codec you were searching for is not available in
|
||||
Fedora. A codec is a program that enables encoding and/or decoding of a
|
||||
data stream, in a specific format such as MP3, MOV, or WMV.
|
||||
|
||||
There are a few common reasons why a codec might not be in Fedora's
|
||||
repositories:
|
||||
|
||||
* Many codecs are proprietary or link:Package_Not_Found#Patents[patent
|
||||
encumbered].
|
||||
* Some codecs may not be encumbered, but may be under an
|
||||
link:Licensing[unacceptable license].
|
||||
|
||||
The Fedora Project FAQ and community sites provide answers to commonly
|
||||
asked questions. link:Third_party_repositories[Third party repositories]
|
||||
contain a wide variety of software that has not been included in the
|
||||
official Fedora software repositories for various reasons. You can find
|
||||
additional software using a search engine like
|
||||
https://google.com[Google]. We would love to give you more specific
|
||||
instructions on enabling additional codecs but our hands are tied up due
|
||||
to software patents and legal restrictions around them. We apologize for
|
||||
the inconvenience caused by software patents and our legal team is
|
||||
working on getting these restrictions removed when it is possible to do
|
||||
so. Scroll down more for details on what we are doing and how you can
|
||||
help.
|
||||
|
||||
[[missing-driver]]
|
||||
== Missing Driver
|
||||
|
||||
Unfortunately, the driver you were searching for is not available in
|
||||
Fedora. There are a few common reasons why a driver might not be in
|
||||
Fedora's repositories:
|
||||
|
||||
* Some drivers are proprietary or link:Package_Not_Found#Patents[patent
|
||||
encumbered].
|
||||
* Some hardware may not be supported under Linux yet, or is not yet in
|
||||
the upstream Linux kernel.
|
||||
|
||||
Fedora strongly encourages new drivers to be included in upstream, and
|
||||
does not package individual, out-of-tree, kernel drivers.
|
||||
|
||||
The Fedora Project FAQ and the more informal, unofficial
|
||||
http://fedorafaq.org[1] provide useful answers on commonly asked
|
||||
questions. However, the unofficial site is not associated with or
|
||||
supported by the Fedora Project. You can find many interesting things
|
||||
using a search engine like https://google.com[Google].
|
||||
link:Third_party_repositories[Third party repositories] might contain
|
||||
software that has been not been included in the official Fedora software
|
||||
repository.
|
||||
|
||||
[[missing-font]]
|
||||
== Missing Font
|
||||
|
||||
Unfortunately, the font you were searching for is not available in
|
||||
Fedora. There are a few common reasons why a font might not be in
|
||||
Fedora's repositories:
|
||||
|
||||
* Fedora does not include proprietary fonts, it only uses fonts with an
|
||||
link:Licensing/Fonts[acceptable font license].
|
||||
* It is possible that no one has packaged that font yet. You might
|
||||
consider adding it to the :Category:Font_wishlist[Font WishList], or
|
||||
even link:PackageMaintainers/Join[packaging it yourself]!
|
||||
|
||||
[[missing-mime-support]]
|
||||
== Missing MIME Support
|
||||
|
||||
Unfortunately, there is nothing in Fedora that claims to support the
|
||||
MIME type you were searching for. There are a few common reasons why
|
||||
Fedora may not have support for a MIME type:
|
||||
|
||||
* Many MIME types are Windows-only. You may be able to use
|
||||
https://en.wikipedia.org/wiki/Wine_(software)[Wine] to run a Windows
|
||||
program under Linux that supports your MIME type.
|
||||
* Some MIME types are only supported by proprietary or
|
||||
link:Package_Not_Found#Patents[patent encumbered] software.
|
||||
* It is possible that acceptable software to support your MIME type
|
||||
exists, but that no one has packaged it yet. You might consider adding
|
||||
it to the link:PackageMaintainers/WishList[Package WishList], or even
|
||||
link:PackageMaintainers/Join[packaging it yourself]!
|
||||
|
||||
[[fedora-position-on-software-patents]]
|
||||
== Fedora Position on Software Patents
|
||||
WARNING: This information is provided only for answering common questions from Fedora users and should not be read as legal advice. What applies to Red Hat and the Fedora Project may not necessarily apply to you. If you need legal assistance, consult your own lawyer. This material does not represent the official views of Red Hat or the Fedora Project.
|
||||
|
||||
[[what-is-a-software-patent]]
|
||||
=== What is a software patent?
|
||||
A patent is a set of exclusionary rights granted by a government to a patent holder for a limited period of time, usually 20 years from the earliest effective filing date of the patent application. These monopoly rights are granted to patent applicants in exchange for their disclosure of the invention claimed by the patent. Once a patent is granted in a given country, the patent holder may exclude someone from making, using, selling or importing embodiments of the claimed invention in that country. Software patents are different from copyright or trademarks despite being lumped together with them under the collective term link:https://www.gnu.org/philosophy/not-ipr.html[Intellectual Property].
|
||||
|
||||
[[who-is-responsible-for-taking-care-of-any-legal-issues-in-fedora]]
|
||||
=== Who is responsible for taking care of any legal issues in Fedora?
|
||||
The Fedora Project is not a separate and distinct legal entity. Red Hat, the primary sponsor of the Fedora Project, is actively involved in legal matters relating to Fedora, along with other Fedora participants. For example, Red Hat lawyers assist Fedora Project contributors in issues pertaining to free and open source software licensing, trademarks and patents. Refer to the link:https://fedoraproject.org/wiki/Legal:Main?rd=Legal[Legal] page for more information.
|
||||
|
||||
[[if-software-patents-are-not-recognized-in-all-regions-why-not]]
|
||||
=== If Software patents are not recognized in all regions, why can't you distribute Fedora with such software in other regions?
|
||||
Contrary to common belief, software patents are granted in some form or other in most countries, including most of the countries in which most Fedora participants reside.
|
||||
|
||||
[[cant-you-pay-the-patent-license-fees-for-patent-encumbered-codecs]]
|
||||
=== Can't you pay the patent license fees for patent encumbered codecs?
|
||||
A codec is a set of methods to encode and decode video or audio information into a data stream. In the case of codecs like MP3 or WMV, the company or companies associated with developing the format are also involved in asserting (or restrictively licensing) patents that purportedly cover the format; we refer to such codecs as "patent encumbered". Other codecs, such as WebM, Ogg Theora or Ogg Vorbis, Dirac, and FLAC, are made available by their developers without asserting patents on their implementations; we refer to such codecs as "patent unencumbered". Fedora includes comprehensive support for open, patent-unencumbered codecs but is unable to include support for the patent encumbered ones.
|
||||
|
||||
Patent licenses usually require the licensee to pay royalties based on the number of users. Since Fedora is free and open source software, the effective number of users is essentially unrestricted. Patent holders are generally unwilling to give a blanket patent license for unlimited use; moreover, the royalty payments would be too high for it to be practical for the Fedora Project, or its sponsors, to pay them. Proprietary operating systems like Microsoft Windows link:https://www.softwarefreedom.org/resources/2007/patent-tax.html[include the costs of third-party patent licenses paid by Microsoft in the pricing of the product] as sold to end users. Fedora is not sold commercially, so there is no way to recoup these substantial expenses.
|
||||
|
||||
Even if funds were available to do so, such royalty-bearing patent licenses would have to be compatible with the free/open source software licenses governing the software covered by the patent license. In practice this is usually challenging. For example, the most widely-used FOSS licenses (GPL and LGPL) place constraints on the ability of distributors to distribute software under benefit of third-party patent licenses. Even if the software in question is placed under some other license, distributing such software under benefit of a patent license may make the software effectively non-free and thus incompatible with Fedora legal policies.
|
||||
|
||||
Note that Fluendo offers an link:https://fedoraproject.org/wiki/Installing_the_Fluendo_MP3_plugin[MP3 plugin] for the Gstreamer multimedia framework (used by Totem, Rhythmbox and other multimedia applications) for free and other codecs and DVD player for a price that includes patent licenses. Fedora does not include or endorse these options but you can choose to use them with Fedora if you want to.
|
||||
|
||||
[[there-are-free-and-open-software-implementations-of-the-codecs]]
|
||||
=== There are free and open software implementations of the codecs. Why don't you include them?
|
||||
When we speak of an implementation being FOSS, usually we are thinking only in terms of copyright licensing. An independent FOSS implementation of a patent-encumbered codec, however, is subject to at least as much patent risk as, say, some proprietary reference implementation of the same codec. Note that while copyright covers only a particular implementation of software, patents are broader because they are more abstract, covering ideas that might be implemented in software in any number of ways.
|
||||
|
||||
[[cant-you-link-to-third-party-repositories-and-guide-users-to-find]]
|
||||
=== Can't you link to third party repositories and guide users to find such software?
|
||||
In general, no, because of the risk of liability for link:https://en.wikipedia.org/wiki/Patent_infringement[contributory patent infringement]. Refer link:https://www.redhat.com/archives/fedora-advisory-board/2007-November/msg00050.html[here] for more details.
|
||||
|
||||
[[how-is-it-that-some-other-linux-distributions-include-such-software]]
|
||||
=== How is it that some other Linux distributions include such software?
|
||||
There are different reasons:
|
||||
|
||||
* Some of them include proprietary software, in some cases charging users for their product, where the charge incorporates the cost of licensing third-party patents. Fedora is not a commercial product and has a policy of not distributing proprietary software.
|
||||
* They are willing to deal with the risk somehow. In some cases, it is because they are not backed by a large and profitable company like Red Hat. Red Hat, the legal entity and primary sponsor of the Fedora Project determines its own risks which can be different from other organizations.
|
||||
|
||||
[[what-is-bad-about-patented-formats]]
|
||||
=== What is bad about patented formats?
|
||||
Even if you are willing to pay for patent licenses, there are other things to consider:
|
||||
|
||||
* No guarantee that your consumers actually will be able to read the data you're trying to produce. If you've reached this page, you've already experienced this - by producing media in a patented format, you automatically limit your audience to whatever platforms the patent holder has licensed their software to.
|
||||
* No guarantee of being able to access your data forever. If you're using some software to view a patented media format, what happens if that software vendor goes out of business, or refuses to port their software to newer systems? You no longer have access to your data.
|
||||
|
||||
Note that this isn't even restricted to patented media formats - the same applies to popular proprietary formats used for word processing, spreadsheets, presentations, etc.
|
||||
|
||||
For more information about how software patents are bad, refer to the link:https://ffii.org/[Foundation for a Free Information Infrastructure].
|
||||
|
||||
[[cant-you-convert-a-patent-encumbered-code-to-an-open-codec]]
|
||||
=== Can't you convert a patent encumbered codec to an open codec?
|
||||
Fedora cannot include the decoders necessary to do this since those are patent encumbered as well. Although users might be able to do this, converting from one format to another typically results in a visible loss of quality. The only long term viable method is to encourage the creation of content in open formats and Fedora and Red Hat actively encourage and participate in such activities.
|
||||
|
||||
[[how-fedora-works-against-software-patents]]
|
||||
== How Fedora works against software patents
|
||||
* __Fedora sponsors development of free, non-patent-encumbered open formats__
|
||||
|
||||
In support of free culture and the open web, and to reduce the hold of proprietary and patent encumbered codecs, Red Hat has been sponsoring improvements on the open Ogg Theora video codec. For example Red Hat has funded work on the newest implementation, codenamed Thusnelda, via Christopher Montgomery (xiphmont), who created the format. That work has resulted in dramatic improvements to the codec.
|
||||
|
||||
* __Fedora uses free, non-patented, open formats by default that anyone can implement, use, and view without having to obtain patent licenses__
|
||||
|
||||
Instead of MP3, use Ogg Vorbis. Instead of Windows Media, use WebM or Ogg Theora. Instead of Microsoft Office Open XML, use link:https://en.wikipedia.org/wiki/OpenDocument[Open Document format] documents, or even PDF. Vote with your currency by purchasing hardware and solutions that support these free and open formats.
|
||||
|
||||
[[the-problem-with-prorietary-and-patent-encumbered-media-formats]]
|
||||
== The problem with proprietary and patent encumbered media formats
|
||||
Imagine sitting down to your email. Your sister has sent you some pictures of your niece. However, when you go to look at them, all you see is:
|
||||
|
||||
__I'm sorry, you need Frobozz Viewer 3.0 to view this file. It's only $19.99, please have your credit card ready.__
|
||||
|
||||
Later, you go to view your mail on a public computer at the local library. And you get the same dialog box on their computer.
|
||||
|
||||
That is the reality for any sound, image, or document format that is encumbered by software patents that require licensing - any application that wishes to view, play, or create them requires paying the patent holders a fee. Normally, software and hardware vendors include this support, but they pass the costs directly onto the consumers in the cost of their software or hardware. For every copy of Microsoft Windows that you buy, or every DVD player that is sold, a portion of that cost goes directly to pay patent licenses; in fact, for DVD players, it can be over a quarter of the final cost.
|
||||
|
||||
And, since that patent license applies to every copy in use, it's one of the reasons why you are not allowed to freely copy and redistribute software such as Microsoft Windows (although, to be sure, even if software patents did not exist, Microsoft would be unlikely to make Windows free software).
|
||||
|
||||
Fedora, however, has a link:https://docs.fedoraproject.org/en-US/project/objectives/[public promise] to always be freely redistributable by anyone. That is why Fedora cannot include support for patented media formats - it would break this redistribution promise. This means that, out of the box, you can't directly play media files such as Windows Media, MPEG-4 video, or MP3 audio. Fedora supports open media formats such as WebM or Ogg link:https://xiph.org/vorbis/[Vorbis] and link:https://www.theora.org/[Theora], which are **freely implementable and usable by anyone without a patent license**.
|
||||
|
||||
Red Hat has consistently taken the position that software patents generally impede innovation in software development and that software patents are inconsistent with open source/free software. Red Hat holds a number of software patents for defensive purposes and has a patent policy under which it agrees to refrain from enforcing its patents against any party for exercising rights under certain free and open source software licenses, including GPLv2, GPLv3, LGPLv2.1, and LGPLv3.
|
||||
|
||||
* https://www.redhat.com/en/about/patent-promise
|
||||
|
||||
Red Hat explained why software patents are problematic to the European Patent Office.
|
||||
|
||||
* http://press.redhat.com/2009/04/30/old-world-and-new-world-software-patent-problems/
|
||||
|
||||
Red Hat filed a friend of court briefing to the U.S. Federal Court asking it to limit software patents.
|
||||
|
||||
* http://press.redhat.com/2008/04/07/red-hat-asks-federal-court-to-limit-patents-on-software/
|
||||
|
||||
The court's ruling has been applied by lower courts and the U.S. Patent and Trademark Office to invalidate some software patents.
|
||||
|
||||
* http://press.redhat.com/2008/11/03/bilski-and-software-patents-%E2%80%93-good-news-for-foss/
|
||||
|
||||
Red Hat again filed a friend of court briefing to the U.S. Supreme Court as a follow-up on the same case.
|
||||
|
||||
* http://press.redhat.com/2009/10/01/asking-the-supreme-court-to-address-the-problem-of-software-patents/
|
||||
|
||||
Red Hat also filed a response to U.S. patent and trademark office.
|
||||
|
||||
* http://press.redhat.com/2010/09/28/red-hat-responds-to-u-s-patent-and-trademark-office-request-for-guidance-on-bilski/
|
||||
|
||||
December 2010, Red Hat filed brief with U.S. Supreme Court opposing expansion of standard for inducing patent infringement.
|
||||
|
||||
* http://www.redhat.com/about/news/prarchive/2010/amicus.html
|
||||
|
||||
[[references]]
|
||||
== References
|
||||
* https://fedoraproject.org/wiki/Forbidden_items
|
||||
* https://docs.fedoraproject.org/en-US/project/
|
||||
* https://www.fsf.org/campaigns/playogg/en/
|
||||
* https://www.gnu.org/philosophy/why-audio-format-matters.html
|
||||
* https://dwheeler.com/essays/software-patents.html
|
||||
|
||||
See a typo, something missing or out of date, or anything else which can be improved? Edit this document at https://forge.fedoraproject.org/docs/quick-docs.
|
||||
|
|
@ -11,7 +11,7 @@ include::{partialsdir}/3rdparty-message.adoc[]
|
|||
|
||||
== Third party repositories
|
||||
|
||||
There are a number of third-party software repositories for Fedora. They have more liberal licensing policies and provide software packages that Fedora excludes for various reasons. These software repositories are not officially affiliated or endorsed by the Fedora Project. Use them at your own discretion. For complete list, see https://rpmfusion.org/FedoraThirdPartyRepos[FedoraThirdPartyRepos]
|
||||
There are several third-party software repositories for Fedora. They have more liberal licensing policies and provide software packages that Fedora excludes for various reasons. These software repositories are not officially affiliated or endorsed by the Fedora Project. Use them at your own discretion. For complete list, see https://rpmfusion.org/FedoraThirdPartyRepos[FedoraThirdPartyRepos]
|
||||
The following repositories are commonly used by end users and do not conflict with each other:
|
||||
|
||||
* https://rpmfusion.org
|
||||
|
|
@ -20,7 +20,7 @@ The following repositories are commonly used by end users and do not conflict wi
|
|||
|
||||
=== Mixing third party software repositories
|
||||
|
||||
Mixing a lot of third party repositories is not recommended since they might conflict with each other causing instability and hard to debug issues. If you are not a technical user, one way is to not enable the third-party repo by default and instead use the *--enablerepo* switch for dnf, or a similar method configurable in the graphical package manager.
|
||||
Mixing many third party repositories is not recommended since they might conflict with each other causing instability and hard to debug issues. If you are not a technical user, one way is to not enable the third-party repo by default and instead use the *--enablerepo* switch for dnf, or a similar method configurable in the graphical package manager.
|
||||
|
||||
|
||||
== The purpose of RPM Fusion
|
||||
|
|
@ -56,7 +56,7 @@ This procedure describes how to enable the RPM Fusion software repositories with
|
|||
[subs=+quotes]
|
||||
----
|
||||
$ sudo dnf install \
|
||||
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
|
||||
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
|
||||
----
|
||||
|
||||
. Optionally, enable the _Nonfree_ repository:
|
||||
|
|
@ -64,7 +64,7 @@ $ sudo dnf install \
|
|||
[subs=+quotes]
|
||||
----
|
||||
$ sudo dnf install \
|
||||
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
|
||||
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
|
||||
----
|
||||
|
||||
. The first time you attempt to install packages from these repositories, the `dnf` utility prompts you to confirm the signature of the repositories. Confirm it.
|
||||
|
|
@ -79,7 +79,7 @@ This procedure describes how to enable the RPM Fusion software repositories with
|
|||
=== Prerequisites
|
||||
|
||||
* You have internet access.
|
||||
* You are using the Gnome desktop environment.
|
||||
* You are using the GNOME desktop environment.
|
||||
|
||||
[discrete]
|
||||
=== Procedure
|
||||
|
|
@ -106,7 +106,7 @@ This procedure describes how to install the Appstream data provided by the RPM F
|
|||
=== Prerequisites
|
||||
|
||||
* You have internet access.
|
||||
* You are using the Gnome desktop environment.
|
||||
* You are using the GNOME desktop environment.
|
||||
* You have the RPMFusion repositories installed
|
||||
|
||||
[discrete]
|
||||
|
|
@ -128,7 +128,7 @@ This is a two-stage process where you have to install versioned RPM Fusion repos
|
|||
|
||||
[NOTE]
|
||||
====
|
||||
For more information about this process and the problem it solves, please refer to the relevant https://discussion.fedoraproject.org/t/simplifying-updates-for-rpm-fusion-packages-and-other-packages-shipping-their-own-rpm-repos/30364[thread on the Fedora Discourse site].
|
||||
For more information about this process and the problem it solves, refer to the relevant https://discussion.fedoraproject.org/t/simplifying-updates-for-rpm-fusion-packages-and-other-packages-shipping-their-own-rpm-repos/30364[thread on the Fedora Discourse site].
|
||||
====
|
||||
|
||||
[discrete]
|
||||
|
|
@ -145,8 +145,8 @@ For more information about this process and the problem it solves, please refer
|
|||
[subs=+quotes]
|
||||
----
|
||||
$ rpm-ostree install \
|
||||
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
|
||||
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
|
||||
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
|
||||
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
|
||||
$ systemctl reboot
|
||||
----
|
||||
|
||||
|
|
@ -155,10 +155,10 @@ $ systemctl reboot
|
|||
[subs=+quotes]
|
||||
----
|
||||
$ rpm-ostree update \
|
||||
--uninstall rpmfusion-free-release \
|
||||
--uninstall rpmfusion-nonfree-release \
|
||||
--install rpmfusion-free-release \
|
||||
--install rpmfusion-nonfree-release
|
||||
--uninstall rpmfusion-free-release \
|
||||
--uninstall rpmfusion-nonfree-release \
|
||||
--install rpmfusion-free-release \
|
||||
--install rpmfusion-nonfree-release
|
||||
$ systemctl reboot
|
||||
----
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@ Petr Bokoc; Mirek Jahoda; Gregory Lee Bartholomew
|
|||
:revnumber: unspecified
|
||||
:revdate: 2023-12-23
|
||||
:category: Administration
|
||||
:tags: How-to, Security, Update
|
||||
:tags: How-to, Security, Update
|
||||
//:page-aliases:
|
||||
|
||||
|
||||
|
||||
This section explains:
|
||||
|
||||
|
||||
* xref:securing-the-system-by-keeping-it-up-to-date.adoc#_why_it_is_important_to_keep_your_system_up_to_date[Why it is important to update your system regularly]
|
||||
* How to apply updates manually by using the xref:securing-the-system-by-keeping-it-up-to-date.adoc#_manual_updating_using_gui[GUI] or xref:securing-the-system-by-keeping-it-up-to-date.adoc#_manual_updating_using_cli[CLI]
|
||||
|
|
@ -29,28 +29,28 @@ All software contains bugs.
|
|||
Often, these bugs can result in a vulnerability
|
||||
that can expose your system to malicious users.
|
||||
Packages that have not been updated are a common cause of computer intrusions.
|
||||
Implement a plan for installing security patches in a timely manner
|
||||
to quickly eliminate discovered vulnerabilities,
|
||||
so they cannot be exploited.
|
||||
Install security patches promptly
|
||||
to end discovered vulnerabilities quickly,
|
||||
so attackers cannot exploit them.
|
||||
|
||||
|
||||
|
||||
== Manual updating using GUI
|
||||
|
||||
This section describes how to manually download and install new updates by using GUI.
|
||||
The following steps describe how to manually download and install new updates by using GUI.
|
||||
|
||||
[discrete]
|
||||
=== Procedure
|
||||
|
||||
. Hover the cursor over the upper-left corner of the screen
|
||||
and type "Software" and select the Software application to open it.
|
||||
and type "Software" and select the Software application to open it.
|
||||
|
||||
. Click the btn:[Updates] button to view the available updates.
|
||||
|
||||
. Click the btn:[Download] button to download new updates.
|
||||
|
||||
. After the updates are downloaded click the btn:[Restart & Update] button.
|
||||
Your system will restart to perform the upgrade.
|
||||
Your system will restart to perform the upgrade.
|
||||
|
||||
image::software-updates.png[Updating by using the Software application]
|
||||
|
||||
|
|
@ -58,44 +58,55 @@ image::software-updates.png[Updating by using the Software application]
|
|||
|
||||
== Manual updating using CLI
|
||||
|
||||
This section describes how to manually download and install new updates
|
||||
The following steps describe how to manually download and install new updates
|
||||
by using the DNF package manager.
|
||||
|
||||
Fedora recommends applying updates offline: packages are downloaded while the system is running normally, then applied during a reboot.
|
||||
This avoids conflicts caused by updating libraries or services that are actively in use.
|
||||
|
||||
[discrete]
|
||||
=== Procedure
|
||||
|
||||
. Upgrade the system:
|
||||
. Download available updates:
|
||||
+
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf upgrade
|
||||
$ sudo dnf offline-upgrade download
|
||||
----
|
||||
+
|
||||
Confirm to download the available packages.
|
||||
|
||||
. Ideally (but it is usually not required),
|
||||
use the `rpmconf` command to merge any config file changes you may have made
|
||||
with any new settings that might have been introduced by the package updates.
|
||||
You should do this before you reboot your system:
|
||||
. Reboot to apply the updates:
|
||||
+
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo rpmconf -a
|
||||
$ sudo dnf offline-upgrade reboot
|
||||
----
|
||||
+
|
||||
The system reboots, applies the downloaded updates, then starts normally.
|
||||
|
||||
. Optionally, use the `rpmconf` command to merge any configuration file changes
|
||||
introduced by the package updates:
|
||||
+
|
||||
[source,bash,console]
|
||||
----
|
||||
$ sudo rpmconf -a
|
||||
----
|
||||
+
|
||||
To use the advanced merge option,
|
||||
you will need to set the `MERGE` environment variable
|
||||
to an editor that is capable of performing that function
|
||||
set the `MERGE` environment variable
|
||||
to an editor capable of performing that function
|
||||
(e.g., `export MERGE="vimdiff"`).
|
||||
See the man page for details.
|
||||
+
|
||||
[TIP]
|
||||
====
|
||||
If you install the rpmconf DNF plugin,
|
||||
`rpmconf` will run automatically at the end of each upgrade.
|
||||
Install it using the command:
|
||||
`rpmconf` runs automatically at the end of each upgrade:
|
||||
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install python3-dnf-plugin-rpmconf
|
||||
$ sudo dnf install python3-dnf-plugin-rpmconf
|
||||
----
|
||||
====
|
||||
|
||||
|
|
@ -103,75 +114,13 @@ sudo dnf install python3-dnf-plugin-rpmconf
|
|||
=== Additional Resources
|
||||
|
||||
* The `dnf(8)` manual page
|
||||
* The `dnf-offline-upgrade(8)` manual page
|
||||
* The `rpmconf(8)` manual page
|
||||
|
||||
|
||||
== Setting automatic updates
|
||||
|
||||
This section describes how to use the DNF Automatic application to automatically:
|
||||
The `dnf-automatic` package provides a systemd timer that can automatically download, install, or alert you about available updates.
|
||||
Whether the timer downloads only, installs, or just notifies the options in the [filename]`/etc/dnf/automatic.conf` configuration file.
|
||||
|
||||
* Download and install any new updates
|
||||
* Only download the updates
|
||||
* Get notified about the updates
|
||||
|
||||
[discrete]
|
||||
=== Procedure
|
||||
|
||||
. Install the [package]_dnf-automatic_ package:
|
||||
+
|
||||
----
|
||||
sudo dnf install dnf-automatic
|
||||
----
|
||||
|
||||
. Edit the [filename]`/etc/dnf/automatic.conf` configuration file as needed.
|
||||
See the https://dnf.readthedocs.io/en/latest/automatic.html[DNF Automatic]
|
||||
documentation for details.
|
||||
|
||||
. Enable and start the `systemd` timer:
|
||||
+
|
||||
[literal,subs="+quotes,attributes"]
|
||||
----
|
||||
sudo systemctl enable --now _timer_
|
||||
----
|
||||
+
|
||||
Replace `_timer_` with one of following ones depending on what action you want to do:
|
||||
+
|
||||
--
|
||||
* `dnf-automatic-install.timer` to download and install packages
|
||||
* `dnf-automatic-download.timer` to only download packages
|
||||
* `dnf-automatic-notifyonly.timer`
|
||||
to only get a notification using configured emitters in the
|
||||
[filename]`/etc/dnf/automatic.conf` file.
|
||||
--
|
||||
+
|
||||
For example:
|
||||
+
|
||||
----
|
||||
sudo systemctl enable --now dnf-automatic-install.timer
|
||||
Created symlink /etc/systemd/system/timers.target.wants/dnf-automatic-install.timer → /usr/lib/systemd/system/dnf-automatic-install.timer.
|
||||
----
|
||||
|
||||
. Ensure that the timer has been successfully enabled and started:
|
||||
+
|
||||
[literal,subs="+quotes,attributes"]
|
||||
----
|
||||
sudo systemctl status _timer_
|
||||
----
|
||||
+
|
||||
Replace `_timer_` with the timer from the previous step, for example:
|
||||
+
|
||||
----
|
||||
sudo systemctl status dnf-automatic-install.timer
|
||||
● dnf-automatic-install.timer - dnf-automatic-install timer
|
||||
Loaded: loaded (/usr/lib/systemd/system/dnf-automatic-install.timer; enabled; vendor preset: disabled)
|
||||
Active: active (waiting) since Fri 2021-01-29 14:50:22 +08; 1s ago
|
||||
Trigger: Sat 2021-01-30 06:05:57 +08; 15h left
|
||||
Triggers: ● dnf-automatic-install.service
|
||||
|
||||
Jan 29 14:50:22 localhost.localdomain systemd[1]: Started dnf-automatic-install timer.
|
||||
----
|
||||
|
||||
[discrete]
|
||||
=== Additional Resources
|
||||
|
||||
* The https://dnf.readthedocs.io/en/latest/automatic.html[DNF Automatic] documentation
|
||||
For full setup instructions, see xref:autoupdates.adoc[Automatic Updates].
|
||||
|
|
|
|||
184
modules/ROOT/pages/snap-store-applications.adoc
Normal file
|
|
@ -0,0 +1,184 @@
|
|||
= Installing Applications from Snap Store
|
||||
Rowan Puttergill, Fedora Documentation Team
|
||||
:revnumber: F42 and newer
|
||||
:revdate: 2026-05-08
|
||||
:category: Software Management
|
||||
:tags: Snap, Snapcraft, Applications, Third-Party
|
||||
:page-aliases: snap-store.adoc, snapcraft-applications.adoc
|
||||
|
||||
[abstract]
|
||||
This page explains how to install and manage containerized applications from Snap Store using the Snap package format.
|
||||
|
||||
== What is Snap Store
|
||||
|
||||
Snap Store is a centralized repository of Snap applications, providing thousands of applications packaged using the Snap format.
|
||||
Snaps are containerized, self-contained applications that include all necessary dependencies and can run on any Linux system that has Snapd installed.
|
||||
|
||||
== Understanding Snaps
|
||||
|
||||
A Snap (or "Snapcraft" package) is a universal application package format that bundles an application with its dependencies in a compressed, self-contained archive.
|
||||
Snaps aim to provide consistent application behavior across different Linux distributions and versions.
|
||||
|
||||
Snaps are similar to Flatpaks and AppImages in that they are designed to be distribution-agnostic and include all necessary dependencies. Snaps differ from Flatpaks in that they use a different packaging format and have different mechanisms for updates and confinement. Snaps are developed and maintained by Canonical, the company behind Ubuntu, but they can be used on any Linux distribution that supports Snapd, including Fedora.
|
||||
|
||||
Snaps are not enabled by default on Fedora, but you can easily install the Snapd daemon to use them.
|
||||
|
||||
|
||||
== Installing Snapd
|
||||
|
||||
To use Snaps on Fedora, install the Snapd daemon:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo dnf install snapd
|
||||
----
|
||||
|
||||
Then enable the Snapd socket:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo systemctl enable --now snapd.socket
|
||||
----
|
||||
|
||||
After installation, you may need to reboot or log out and back in for Snap support to work properly.
|
||||
|
||||
== Finding and installing applications
|
||||
|
||||
=== Using Snap Store (GUI)
|
||||
|
||||
On Fedora, you can install the Snap Store graphical application:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ sudo snap install snap-store
|
||||
----
|
||||
|
||||
Then:
|
||||
|
||||
. Open *Snap Store* from your Applications menu
|
||||
. Search for the application you want to install
|
||||
. Click *Install* to begin the installation
|
||||
. The application automatically downloads and installs
|
||||
|
||||
=== Using the command line
|
||||
|
||||
Search for applications:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ snap find _application_name_
|
||||
----
|
||||
|
||||
Install an application:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ snap install _application_name_
|
||||
----
|
||||
|
||||
For example, to install Visual Studio Code:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ snap install code --classic
|
||||
----
|
||||
|
||||
NOTE: Some Snaps require the `--classic` flag to run outside the confinement environment for full functionality.
|
||||
|
||||
== Managing Snap applications
|
||||
|
||||
=== Launching applications
|
||||
|
||||
Installed Snap applications appear in your Applications menu and launch like any other application.
|
||||
You can also run them from the command line using their name:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ _application_name_
|
||||
----
|
||||
|
||||
=== Updating applications
|
||||
|
||||
Snaps update automatically in the background. To manually check for updates:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ snap refresh
|
||||
----
|
||||
|
||||
Update a specific Snap:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ snap refresh _application_name_
|
||||
----
|
||||
|
||||
=== Removing applications
|
||||
|
||||
Remove an installed Snap:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ snap remove _application_name_
|
||||
----
|
||||
|
||||
=== Listing installed applications
|
||||
|
||||
View all installed Snaps:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ snap list
|
||||
----
|
||||
|
||||
== Snap confinement levels
|
||||
|
||||
Snaps use different confinement levels that control system access:
|
||||
|
||||
Strict::
|
||||
The most restrictive mode. The Snap runs in a sandbox with minimal access to the system.
|
||||
Most Snaps use strict confinement.
|
||||
|
||||
Classic::
|
||||
The least restrictive mode. The Snap has full access to the system like a traditionally installed application.
|
||||
Some Snaps require classic confinement to function properly.
|
||||
|
||||
Devmode::
|
||||
Used during development. Runs in strict confinement but with warnings instead of denials.
|
||||
|
||||
== Snap channels
|
||||
|
||||
Snaps can offer multiple versions through different channels:
|
||||
|
||||
Stable::
|
||||
The default channel, containing fully released and tested versions.
|
||||
|
||||
Candidate::
|
||||
Pre-release versions near completion, good for testing before general release.
|
||||
|
||||
Beta::
|
||||
Early testing versions, may contain bugs or incomplete features.
|
||||
|
||||
Edge::
|
||||
Development versions, the newest code but potentially unstable.
|
||||
|
||||
To install from a specific channel:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ snap install _application_name_ --_channel_
|
||||
----
|
||||
|
||||
For example:
|
||||
|
||||
[source,bash,console,subs="quotes"]
|
||||
----
|
||||
$ snap install _application_name_ --beta
|
||||
----
|
||||
|
||||
== Finding more information
|
||||
|
||||
* **Snap Store website** - Visit https://snapcraft.io/store to browse available applications
|
||||
* **Snapcraft documentation** - https://snapcraft.io/docs for detailed information
|
||||
* **Snap directory** - https://snapcraft.io/snaps for searchable application directory
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
= Switching desktop environments
|
||||
= Installing and Switching Desktop Environments
|
||||
Fedora Documentation Team
|
||||
:revnumber: F36 and newer
|
||||
:revdate: 2025-02-11
|
||||
:revnumber: F41 and newer
|
||||
:revdate: 2026-05-10
|
||||
:category: Managing Software
|
||||
:tags: Tutorial, Workstation
|
||||
|
||||
|
|
@ -11,28 +11,19 @@ Different Fedora Linux variants (Spins/Labs) have different default environments
|
|||
[[installing-desktop-environments]]
|
||||
== Installing additional desktop environments
|
||||
|
||||
You can list available desktop environments using `dnf`.
|
||||
You can list available desktop environments using `dnf environment list`.
|
||||
|
||||
Since Fedora 44, in a terminal use the `dnf environment list` command to list all available desktop environments:
|
||||
|
||||
[source,bash]
|
||||
[source,bash,console]
|
||||
----
|
||||
dnf environment list --available | grep -i desktop
|
||||
----
|
||||
|
||||
On older releases (Fedora 40 and older) use:
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
dnf group list -v --available | grep desktop
|
||||
$ dnf environment list --available | grep -i desktop
|
||||
----
|
||||
|
||||
Install the required desktop environment using the `dnf install` command.
|
||||
Ensure to prefix with the `@` sign, for example:
|
||||
|
||||
[source,bash]
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install @kde-desktop-environment
|
||||
$ sudo dnf install @kde-desktop-environment
|
||||
----
|
||||
|
||||
[[switching-desktop-environments-using-gui]]
|
||||
|
|
@ -41,7 +32,7 @@ sudo dnf install @kde-desktop-environment
|
|||
First, install the desired desktop environment as described in link:#installing-desktop-environments[Installing additional desktop environments].
|
||||
|
||||
You can login to a different desktop for a single session using the login manager.
|
||||
For example, for the Gnome Display Manager (GDM) that is used by default on the Fedora Linux Workstation:
|
||||
For example, for the GNOME Display Manager (GDM) that is used by default on the Fedora Linux Workstation:
|
||||
|
||||
. On the login screen, select a user from the list.
|
||||
|
||||
|
|
@ -58,9 +49,9 @@ It also allows you to change default desktop environment for individual users, a
|
|||
|
||||
. Install the `switchdesk` and `switchdesk-gui` packages:
|
||||
+
|
||||
[source,bash]
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install switchdesk switchdesk-gui
|
||||
$ sudo dnf install switchdesk switchdesk-gui
|
||||
----
|
||||
+
|
||||
. Run the Desktop Switching Tool application.
|
||||
|
|
@ -76,17 +67,16 @@ First, install the desired desktop environment as described in link:#installing-
|
|||
|
||||
Install the `switchdesk` package:
|
||||
|
||||
[source,bash]
|
||||
[source,bash,console]
|
||||
----
|
||||
sudo dnf install switchdesk
|
||||
$ sudo dnf install switchdesk
|
||||
----
|
||||
|
||||
|
||||
Pass the selected desktop environment as the only argument to the `switchdesk` command, for example:
|
||||
|
||||
[source,bash]
|
||||
[source,bash,console]
|
||||
----
|
||||
switchdesk kde
|
||||
$ switchdesk kde
|
||||
----
|
||||
|
||||
See the `switchdesk(1)` man page for more information.
|
||||
|
|
|
|||
134
modules/ROOT/pages/third-party-software.adoc
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
= Understanding Third-Party Software versus Fedora Release Software
|
||||
Rowan Puttergill, Fedora Documentation Team
|
||||
:revnumber: F42 and newer
|
||||
:revdate: 2026-05-08
|
||||
:category: Administration
|
||||
:tags: Repositories, Software Management, Packages
|
||||
:page-aliases: third-party.adoc, packagekit-not-found.adoc
|
||||
|
||||
[abstract]
|
||||
This page explains the distinction between third-party software and software included in official Fedora releases, including their differences, how they are managed, and important considerations for each.
|
||||
|
||||
== What is Fedora release software
|
||||
|
||||
Fedora release software comprises all packages that are part of the official Fedora distribution repositories.
|
||||
These repositories include the _fedora_ repository and the _updates_ repository, which together form the complete, officially supported package set for a Fedora release.
|
||||
|
||||
Fedora also releases software packages in other repositories for development and testing purposes, such as _rawhide_ for the latest development branch and _updates-testing_ for packages that are being tested before inclusion in the stable updates repository. However, the term "Fedora release software" specifically refers to packages that are included in the stable _fedora_ and _updates_ repositories for a given Fedora release.
|
||||
|
||||
See xref:fedora-repositories.adoc[Fedora Repositories] for more details on the different repositories and their purposes.
|
||||
|
||||
=== Characteristics of Fedora release software
|
||||
|
||||
Vetting and testing::
|
||||
All packages in Fedora repositories undergo rigorous testing and review by the Fedora Project community before inclusion.
|
||||
Packages must meet strict xref:fedora-repositories.adoc[repository standards] and pass quality assurance checks.
|
||||
|
||||
Source code availability::
|
||||
All Fedora release software is open source and free to use, modify, and distribute.
|
||||
The source code is available in the Fedora repositories and must comply with Fedora's licensing guidelines.
|
||||
|
||||
Community maintenance::
|
||||
Each package in Fedora has maintainers who are responsible for updates, security patches, and bug fixes.
|
||||
Maintenance is handled through the Fedora package maintenance workflow and tools such as Bodhi.
|
||||
|
||||
Release cycle integration::
|
||||
Fedora release software follows the official Fedora release cycle.
|
||||
Packages are frozen at release time for stable releases and receive updates through the updates repository according to the Fedora Updates Policy.
|
||||
|
||||
Free distribution::
|
||||
All Fedora release software can be downloaded and installed at no cost through the official Fedora repositories.
|
||||
|
||||
== What is third-party software
|
||||
|
||||
Third-party software refers to packages and applications not included in the official Fedora repositories.
|
||||
|
||||
=== Why software might be absent from Fedora's repositories
|
||||
|
||||
Software might be missing from Fedora's official repositories for several reasons:
|
||||
|
||||
* It is encumbered by software patents or uses a license incompatible with Fedora's policies. See xref:fedora-and-software-patents.adoc[Fedora and software patents] for details.
|
||||
* No one has yet packaged it for Fedora. If you want to help, consider xref:package-maintainers::index.adoc[becoming a Fedora package maintainer].
|
||||
* For drivers specifically, Fedora does not package out-of-tree kernel drivers. Drivers must be submitted to and accepted by the upstream Linux kernel before Fedora will include them.
|
||||
|
||||
=== Installation methods
|
||||
|
||||
Third-party software can be installed through:
|
||||
- Third-party repositories (e.g., xref:rpmfusion-setup.adoc[RPM Fusion], Copr, or vendor-specific repositories)
|
||||
- Container images (xref:flathub-flatpak-applications.adoc[Flatpak], or xref:snap-store-applications.adoc[Snap])
|
||||
- Manual installation archives containing all dependencies (xref:appimage.adoc[AppImage])
|
||||
- xref:language-package-managers.adoc[Language package managers] such as pip (Python), npm (Node.js), or Cargo (Rust)
|
||||
- Compilation from source code (xref:third-party-software.adoc[Third Party Software])
|
||||
- Direct binary package download from vendor websites
|
||||
|
||||
=== Characteristics of third-party software
|
||||
|
||||
Independent maintenance::
|
||||
Entities outside the Fedora Project maintain third-party software.
|
||||
The maintainer or software vendor handles updates, security patches, and compatibility with Fedora releases.
|
||||
|
||||
Variable quality and support::
|
||||
The quality, testing rigor, and support availability varies widely depending on the third-party provider.
|
||||
Some third-party projects have excellent support and frequent updates, while others may be less actively maintained.
|
||||
|
||||
Licensing flexibility::
|
||||
Third-party software may use any license, including proprietary, commercial, or open source licenses.
|
||||
Some third-party software may not be redistributable or modifiable.
|
||||
|
||||
Potential compatibility issues::
|
||||
Since third-party software is developed and maintained independently, it may not be fully tested with all Fedora versions.
|
||||
Compatibility issues can arise, particularly across major Fedora releases.
|
||||
|
||||
|
||||
== Using third-party software safely
|
||||
|
||||
If you choose to use third-party software with Fedora, follow these best practices:
|
||||
|
||||
=== Verify the source
|
||||
|
||||
* Download software only from official project websites or well-known, reputable repositories
|
||||
* Avoid downloading from untrusted sources or mirrors
|
||||
* Use digital signatures to verify package authenticity when available
|
||||
|
||||
=== Check repository health
|
||||
|
||||
* For third-party repositories, verify that they are actively maintained
|
||||
* Ensure the repository's packages are compatible with your Fedora version
|
||||
* Review the repository's security and maintenance practices
|
||||
|
||||
=== Understand dependencies
|
||||
|
||||
* Be aware that third-party packages may conflict with Fedora packages
|
||||
* Carefully review dependency requirements before installation
|
||||
* Consider using containerized solutions (xref:flathub-flatpak-applications.adoc[Flatpak], xref:snap-store-applications.adoc[Snap]) for isolation from system packages, or AppImage for self-contained applications that maintain their own dependencies
|
||||
|
||||
=== Keep systems updated
|
||||
|
||||
* Enable automatic updates when possible
|
||||
* Regularly check for updates from third-party sources
|
||||
* Uninstall software you no longer use to reduce potential security risks
|
||||
|
||||
=== Use third-party repositories wisely
|
||||
|
||||
When using third-party repositories like xref:rpmfusion-setup.adoc[RPM Fusion] or others:
|
||||
|
||||
* Install only repositories from trusted sources
|
||||
* Do not enable multiple overlapping repositories simultaneously
|
||||
* Remove repositories if they are no longer needed or maintained
|
||||
* Be aware that mixing many third-party repositories can cause dependency conflicts
|
||||
|
||||
== Common third-party sources
|
||||
|
||||
Some well-known third-party software sources for Fedora include:
|
||||
|
||||
* **xref:rpmfusion-setup.adoc[RPM Fusion]** - Provides packages restricted in Fedora due to licensing concerns (multimedia codecs, drivers)
|
||||
* **xref:flathub-flatpak-applications.adoc[Flathub]** - Provides Flatpak containerized applications with sandboxing
|
||||
* **xref:snap-store-applications.adoc[Snap Store]** - Provides Snap containerized applications
|
||||
* **xref:appimage.adoc[AppImage]** - Self-contained portable applications for easy distribution
|
||||
* **Upstream projects** - Many open source projects maintain their own repositories
|
||||
* **Vendor repositories** - Commercial software vendors (e.g., JetBrains, Slack) often provide official repositories
|
||||
* **Copr** - Fedora community projects repository, hosting community-maintained packages
|
||||
* **xref:language-package-managers.adoc[Language package managers]** - Install libraries and tools directly from language ecosystems such as Python's pip, Node.js's npm, and Rust's Cargo
|
||||
|
||||
NOTE: Copr is not officially supported by Fedora infrastructure. Use packages at your own risk.
|
||||
|
||||
|
|
@ -3,7 +3,7 @@ Akshata Khedekar
|
|||
:revnumber: unknown
|
||||
:revdate: 2025
|
||||
:category: Administration
|
||||
:tags: How-to, Video
|
||||
:tags: How-to, Video
|
||||
//:page-aliases:
|
||||
|
||||
include::partial$3rdparty-message.adoc[]
|
||||
|
|
@ -18,12 +18,12 @@ In Fedora one can setup zoom using either of the following options
|
|||
|
||||
=== Download the RPM
|
||||
|
||||
If you're using Fedora Workstation Edition, you can install Zoom using the GNOME application center.
|
||||
Note that this option doesn't automatically update Zoom when a new version is released.
|
||||
If you are using Fedora Workstation Edition, you can install Zoom using the GNOME application center.
|
||||
Note that this option does not automatically update Zoom when a new version is released.
|
||||
|
||||
* Download the RPM installer file at our https://zoom.us/download?os=linux[Download Center].
|
||||
* Open the download location using a file manager.
|
||||
* Double click the RPM installer file to open it in the GNOME application center.
|
||||
* Double-click the RPM installer file to open it in the GNOME application center.
|
||||
* Click Install.
|
||||
* Enter your admin password and continue the installation when prompted.
|
||||
|
||||
|
|
|
|||