Hi everyone,
so I'm pretty new to Fedora and Linux in general and I have some questions in regard to how packages and package installation work.
Firstly, when using #dnf install packagename can you assume that whatever repository the package is being sourced from, is safe to install from and how do I check which repositories that are being searched for the package.
Secondly, is it ok to assume that packages from online sites like koji.fedoraproject.org or src.fedoraproject.org are safe. It seems to me like not just anyone can upload packages there, but I haven't found a definitive answer yet.
Thanks in advance for the help!
I'm new to Fedora and so far I knew a few ways of installing application:
-
Use the "dnf install $appname"
-
Download the RPM package then "dnf install $the-rpm-package"
-
Use the flatpak
-
Use the tarball, extract then run the .sh file
-
And using appimage (Yup, I know this is not technically called an "install")
I'm pretty sure the dnf upgrade won't affect the appimage, but does it helps upgrade the apps from flatpak, tarball and rpm? if there are options available in all of them what method should I choose to install an app
Videos
I am a new fedora workstation user, where I am exploring various different ways to install an application.
I thought it is better to contribute my learning to the community, it might be helpful for others, who are coming to fedora
Update: for the post
I have learned a few terminology, what to share with others.
-
DNF-> Official Package Manager for Fedora. -
There might be a case, where DNF does not have the application, you're looking for. i.e CLOSED Source Applications.
-
Then RPM Fusion Repo, comes to the picture.
-
Contains the Non-Licensed applications, Like: Drivers, media encoders/codecs.
-
PRO TIP: If you have enabled the RPM Fusion Repo, then when you run dnf will likely to find it.
-
-
Flatpak-> It is used when there is no choice to install it via native app(DNF or RPM Fusion).-
Advantage-
It is sand-boxed, meaning it is isolated from the system files.
-
Contains the latest Version of application
-
-
Disadvantage: Takes More space than the dnf.
-
-
GNOME Software-> If you are a newbie and do not want the terminal to install then the application-
Advantage: It has both DNF, Flatpaks, Other sources(which you might have added) -
It
issame as the installing application via DNF, RPM Repo, Flatpak
-
-
Adding repositories-> If the above option does not work then, try looking for the official website, to --import it to the system repo, to make it trustworthy to install the application via dnf-
Underneath the hood it is using the .rpm files to install, but it does it automatically.
-
-
Standalone .rpm file download-> The last means of installing application, not recommended but download the application.rpmfile and install it to/opt. -
SNAP-> Better not to install it viaSNAP, since these are mainly developed for the Ubuntu Based Distros -
COPR Repo-
I have heard that it contains user specific versions of applications, sometimes it is better to have customized applications.
-
These are my personal thoughts, If you have any suggestions, please share. I am open to learning :)
I'm trying to figure out about the packages that are required after doing the minimal Fedora installation (to set/configure other things on top of that).
For example, every time I face this issue of my WiFi interface not getting listed (even after being turned on and unblocked). And commands like lspci etc aren't installed as well. So I can't do anything if I'm not connected to internet.
Please don't mention about installing any DE as it pulls tons of packages on it own. Don't want that.
Thanks a lot in advance!
Hi r/Fedora
I use Fedora for about two years now and I noticed I can install packages without beeing root (or su) if I try to start uninstalled applications via terminal and accept their download and installation in the following dialog.
But if I try to dnf install something I have to have privileges.
Why are privileges required for dnf install but not for a "straight install" and how does it work?
Hi everyone, I using Fedora 36 in a virtualbox, but I need to install packages for my research that are compatible with Fedora 35 but not supported for 36. Here is the link to the package installation instructions:
https://www.eso.org/sci/software/pipelines/installation/rpm.html
I was successful in configuring the ESO repository, but when I tried to list all the top level packages in the second step, it yielded this error, likely because their RPM package does not work with 36.
```
European Southern Observatory RPM repository for Fedora 36 0.0 B/s | 0 B 00:05
Errors during downloading metadata for repository 'esorepo':
- Curl error (9): Access denied to remote resource for ftp://ftp.eso.org/pub/dfs/pipelines/repositories/stable/fedora/36/x86_64/repodata/repomd.xml [Server denied you to change to the given directory]
Error: Failed to download metadata for repo 'esorepo': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
Ignoring repositories: esorepo
Last metadata expiration check: 0:27:15 ago on Fri 11 Nov 2022 03:53:23 PM CST.
Error: No matching Packages to list
```
Is there a way to get around this?
I would use toolbox/distrobox/podman with a supported OS version. In this case:
toolbox create fedora-toolbox-35 -r 35toolbox enter fedora-toolbox-35
An alternative would be to edit /etc/yum.repos.d/esorepo.repo to change $releasever to 35 and hope it works. I tried this in a fedora 37 toolbox and it seems to work fine.
Well modify /etc/yum.repos.d/esorepo.repo and replace $releasever with 35. This will install the older packages but maybe they will not work becaouse of missing dependencies.
This is the one thing keeping me from switching to Fedora from Manjaro. The AUR/yay is so good, is there anything like it for here?
COPR and rpmfusion? Flatpak and rpmfusion? Also on COPR how do I know which one is right? Like for Minecraft or Spotify for example on COPR when I searched for those I had no idea which one was right
Rpm fusion are like the different package types in Arch(community, extra, multilib etc). IMO they should be included by default but the Fedora team has their reasons not to.
With the stock repos and the RPM fusion repos, we like to use the Flatpak repos for additional packages.
Those three sources should be enough.
Copr is like the AUR but more experimental. It's where a lot of developers use to test their software.
Use flatpak and dnf
Hi,
I am very close to switching to Fedora. But I have a question in advance.
As I understand, there is no solid GUI for dnf (comparable to Synaptic or Yast Packages for example). I have been using Linux for quite a while, but always enjoyed the ability to quickly search through packages, read their descriptions, in short, do package managing completely in a GUI.
But I want to be open to new approaches. How do you use dnf? How do you go about package management? Maybe I could be convinced, otherwise this would be a major counter argument for me. It seems ultra slow to, for example, first do "dnf search" for the package, then not having the ability to read descriptions, and then typing all the package names you want to do "dnf install".
[EDIT: I am not taking about software that is typically shown in GNOME Software.]
What are your must-to-have softwares you would recommand for all Fedora users?
I would like to try Fedora but supposedly it’s not as user friendly as something like Ubuntu. Is there an installation guide I can follow that shows me how to not only install Fedora but also how to install all the packages one might need on a modern computer these days that people take for granted or are already installed on Ubuntu by default? Eg, drivers, but also other software components one will overlook or take for granted?
Hi,
Is there a list somewhere where I can see what packages come pre-installed with Fedora Workstation ?
Thank you.
How to list manually installed package using dnf? I want to install fresh system then install the other packages from list
Thanks
Ubuntu or more specifically, debian packages are very widespread and supported almost everywhere or at least has a package for everything. Fedora uses dnf and .rpm but I'm wondering will I find myself not having access to a specific package I need in fedora compared to say Ubuntu or arch Linux?
I just switched to fedora and realized Red Hat installation is quite different unlike Debian installation .deb files where we input sudo dpkg -i xxx.deb for installation/ sudo apt-get purge for full removal. I just wanna know how the installation/deletion for red hat is performed.
Could someone kindly guide me on the best practices or methods to install packages on Fedora Sway Atomic without interfering with the core system?
Thanks in advance for your help!
I love fedora, but ever since moving to it, the one thing I haven't been the biggest fan of is frequently finding a package isn't available in fedora. Granted, I'm not expecting the AUR, but far too often I feel like fedora doesn't have a specific package I need, when openSUSE TW and even void linux have it.
To top it all off, this happens often when those distros have far less packages according to here.
A couple of examples off the top of my head:
-
keyd
-
xone (not on TW either but surprisingly on void)
-
lazygit
-
ghostty
It's a common theme I'm seeing where the software is on distros with far less packages on paper, but missing on fedora. I get that flatpaks are a thing, and I have no problem using them, but the software I'm listing aren't meant for flatpak. To get them, your only choice is pretty much COPR, which I try not to use because of bad experiences with PPAs.
Is there something I'm missing here? How is software often not on fedora despite fedora having so many packages.
Edit: I ended up going with COPR, and everything seems OK! I must admit, I'm not a fan of how hard it is to read the specs compared to say ebuilds or pkgbuilds, but other than that it works fantastic!
Hi,
Just a PSA more than anything, I didn't create this, but I wanted to give it a shout out since I've found it incredibly useful to setup new Fedora systems, especially for users that only care about things working: https://github.com/wz790/Fedora-Noble-Setup
There are various reasons why Fedora doesn't include certain packages (some legal), but this is something new Linux users might not understand (or care about). I keep seeing Fedora being recommended to new users (who might have an nvidia card and just want to install steam and play for example, and are left incredibly frustrated by their experience), so sharing this in the hopes they might realise there are some extra things they need to install to get the experience they want out of the distro.
Also, if you are a new Linux user, don't just copy commands from guides (including this one), try to understand what they do first. You could break your install, or worse, run something malicious (hasn't happend to me afaik in over 20 years of using Linux, but could happen).
Hope it helps!
Edit: As someone else has pointed out, there might be some issues with this guide, see this comment https://www.reddit.com/r/Fedora/comments/1rlh25j/comment/o8sg2h5/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button so, as Ie mentioned above, always try to understand what you are executing and the impact that might have on your system.
This is for everyone who has ever wondered about how packages are developed and distributed on Fedora. I wrote this as a comment for someone who was curious, and figured that it could be interesting and educational as a standalone post instead. It will give you insight into where to look for package news and changelogs, and where to report issues!
Bug Reports
First, there's bugzilla.redhat.com where issues are reported, and their fixes are often discussed and developed here. For example, the current GRUB2 "can't boot Windows" bug is discussed in https://bugzilla.redhat.com/show_bug.cgi?id=2115202
If you have any bug reports, you should search bugzilla first, and if you don't find any existing discussions, you should start your own here. It's the best way to reach Fedora's/RedHat's developers.
Package Source Code
Next, the src.fedoraproject.org website has all the "source code" for all the packages.
Simply search for a package name, and you'll be able to explore the source code. Keep in mind that package names are often a bit different than your system packages, since there are often "multi-packages" built from a single repo. For example, the "grub2" repo builds about a dozen different packages. Usually, you'll just have to search for the core/base name of the software to find the actual repo.
Next, on the package's page, click on "Files" and then be sure to click on the "F36" branch or whatever version of Fedora you are running, since the website defaults to showing the "Rawhide" (unstable test-distro) files.
You can see the latest changes at this site before they even go out for testing. And you can read what the ACTUAL changes are. For example GRUB2's "Try reserving less RAM to fix windows booting" patch, which is the fix for the latest problem that I mentioned above.
You can also read the revision number in the fixed file in the link I just gave; it currently says Version: 2.06 and Release: 47%{?dist}. Which means that the version information for the fixed package will be 2.06-47.
Build-System
Next there is koji.fedoraproject.org/koji/builds where the "spec files" from the previous "src" site actually go to get built.
The package names on this site match the names on the src site. So for GRUB2 it's this package on Koji.
On the package's listing page, you can see the latest builds in chronological order, with suffixes that indicate which Fedora version they are for.
We see grub2-2.06-47.fc36 (here), which means that the revision with the GRUB2 fixes that I mentioned earlier, has been built for Fedora 36.
Update-System
All new builds are first tested internally, where contributors have to vote "works for me" until a vote-threshold has been hit. If the tests are successful for enough people (or there aren't enough upvotes but two weeks pass without any negative reports), then the new package is finally marked for public distribution.
The testing and discussion happens at the bodhi.fedoraproject.org site. You can search for a package there, such as grub2, to find the latest news about test results.
Find the package revision for your own Fedora version, such as "fc36" packages which are for Fedora 36. For example, this test labeled grub2-2.06-47.fc36 and grubby-8.40-64.fc36. As you see, multiple packages can be tested at the same time there. You'll have to read through the search results and find the correct one yourself. But it's always named after the new package revision, so it's easy to find.
When you read the test results, you can see the current and required vote totals, developer/tester comments, and whether the update has been accepted for public distribution.
Package Mirrors
Finally, after an update has been accepted, the new packages start replicating onto the CDN mirrors for the Fedora package repositories, for public download. This takes a while.
Users will not see the new packages until they have been uploaded to the package mirror you are using.
Also note that this is why Fedora's developers say that it's a very stupid idea to add the easily-misunderstood DNF fastestmirror=True option to your DNF config, because that harmful option re-orders your mirror list based on their basic ping (not bandwidth) and has absolutely zero understanding of mirror priority whatsoever. Which means that you can end up with a terrible/inactive mirror (having "low ping" simply because nobody uses it), and therefore get your package updates later than other people.
DNF's default behavior (fastestmirror=False) is the best, since its mirror list is instead intelligently ordered by package availability, giving you the best mirrors with the best package availability, which is a much more interesting metric and guarantees that you get updates as soon as they are available on a mirror.
As another sidenote; people who want to speed up their DNF downloads should definitely use max_parallel_downloads=10 (in /etc/dnf/dnf.conf) since it helps saturate your download bandwidth even across long-distance/high-latency mirrors, unlike the default of just 3 parallel RPM downloads.
Checking For Updates
Lastly, if you want to do a dummy check to see if a package has reached your own local package mirrors yet, you can always use DNF to ask for info about a package while forcing a metadata refresh.
It will then tell you if a new version is available. For example, sudo dnf info grub2-pc --refresh. As of this writing, that command will show the availability of grub2-2.06-47.fc36 which is the fixed and eagerly-awaited version of GRUB2!
Conclusion
Now you know the entire pathway from package source to your machine! Have fun! :)
And if you want a "portal site" which can simplify some of these package lookups, you should read this comment chain to learn how to use the "Fedora Packages" site. It's basically a portal which links to all the other sites. But it has a bunch of quirks and will definitely confuse most people unless you read the comment chain first, though! ;)