this post was submitted on 28 Oct 2023
15 points (100.0% liked)
Arch Linux
7773 readers
11 users here now
The beloved lightweight distro
founded 4 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Do this:
And then try again.
Alternatively you can do this directly:
Hot damn, that worked. What's the y?
The
y
is dangerous to be used withoutu
. Do not follow the advice above unless you know what you are doing. Instead, dopacman -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.
Thanks for the info... and for reminding me to run a backup.
And alternatively you can run just
yay
, choose the matching one and yay should do the right thing.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.Or you just do it as one step in general:
pacman -Syu