Linux noob still learning the basics with a simple question. Got Plex and *arr suite up and running great but Jellyfin Server refuses to install. Looks like a broken link. How do I use an alternate repo or other install source? Screenshot is the end of the output from running yay -S jellyfin-server and yes I’m on my phone because I’m too high to get up right now.
Do this:
sudo pacman -Sy
And then try again.
Alternatively you can do this directly:
yay -Sy jellyfin-server
The y
is dangerous to be used without u
. Do not follow the advice above unless you know what you are doing. Instead, do pacman -Sy
u
jellyfin-server
The y
option tells pacman to update its package database.
In your case, your local database got out of sync with the database from the mirrors. This normal, newer versions of software are released all the time. Pacman then tried to get the latest locally known version of jellyfin from the mirrors, but they no longer have it, as a newer one replaced it.
By updating the database, pacman becomes aware of the newer version and can request it from the mirror. But there is now a subtle problem: the new package and some installed package could require incompatible versions of some dependency. When pacman decides to update the dependecy package, the other package is broken. This is called a “partial upgrade”, which can seriously break your system if you are not careful.
The u
option upgrades all installed packages to the latest version, so the packages and their dependencies don’t get out of sync with each other.
See Arch Wiki, System_maintenance for more explanation.
You didn’t upgrade before installing. -y updates the package list to match the mirror, -u updates your system (and you should not use them separately, so if in doubt always use -yu).
So when you try to install (without synchronising the package list first) your system looks at it’s outdated package list, then requests files that are no longer on the mirror as they are already on a higher version.
Pacman keeps a local cache of the packages that exist, so it knows that whatever you were trying to install has a version X and that depends on library Y on version Z. Except when it tried to download the library Y on version Z the package didn’t existed anymore, most likely because a new version W was released since you generated your cache. The y option updates the local database first, so it knows the proper up to date versions of things.
That being said running -Sy
is a bad idea, because for example what you’re trying to install might update a library that the system expects to be an old version and then everything breaks. If this ever happens again the correct way to fix it is to first do a system update -Syu
and afterwards install the new package.