Hello, I yet again come, hat in hand, for assistance from those wiser in the ways of the Linux. I’m having a bit of an issue downloading Jellyfin on my ElementaryOS laptop. I’ve tried all the guide on the first few pages of ddg only to receive errors after entering the comman “ sudo apt-get update “. I get ERR:3 https//repo.jellyfin.org/debian circle Release 404 Not found.
If someone can point me the way I’d be most appreciative
Seems like you followed some random AI generated guide like this one:
https://www.ipv6.rs/tutorial/Elementary_OS_Latest/Jellyfin/
Whenever you’re downloading a Linux (or any) package, always try to look for the official documentation, like here:
https://jellyfin.org/docs/general/installation/linux#debian--ubuntu-and-derivatives
Where it will tell you to install Jellyfin on a Debian/Ubuntu based system is simply:
curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash
and it also tells you that if you don’t have curl already installed, either install it first or instead run:
wget -O- https://repo.jellyfin.org/install-debuntu.sh | sudo bash
which is their official installer.
If you want to undo what you did before installing (assuming you followed the bad guide linked above), just remove the file it created here first:
/etc/apt/sources.list.d/jellyfin.list
I just wanted to add a small follow up comment because I remember being young and copy-pasting commands into Linux and eventually getting really frustrated. Therefore, he’s a (brief) explanation of the commands:
curl
is just an open source tool for making Web requests from the command line. It’s a great tool to have in general.https://repo.jellyfin.org/install-debuntu.sh
the URL of a shell script from repo.jellyfin.org (Jellyfin’s official website)
What is a shell script? It’s a script that runs a whole bunch of commands by itself, so you don’t have to copy-paste them from the internet. Basically the official Jellyfin people in this case made a file with all of the commands the computer needs to run to install the package. This is great because it means the people who made Jellyfin tested these commands and they’re responsible for keeping it up to date if anything changes.
| bash
The ‘pipe’ or|
symbol in Linux is a cool Unix philosophy of ‘connecting’ programs together. You run one program, and tell it to pass the results to another program. In this case, you’re tellingcurl
to download the script athttps://repo.jellyfin.org/install-debuntu.sh
and then passing that file tobash
(which is the shell program in the terminal that runs commands) and to run it assudo
or ‘super-user’.Hope this was helpful. The last thing you should know is the command you probably copy-pasted before made you add a source to the
/etc/apt/sources
files, which are basically just a list of sources forapt
, the package manager to download from, and since the command was wrong or outdated,apt
is complaining that the Jellyfin source was not found.GOOD FOLLOW UP!!
I was about to shit a brick that you went from “go to the official trusted source” to “just trust me: curl [x] | sudo bash”
You can do some wild shit with pipes:
head -10 /var/log/syslog
- Look at the first ten lines of one of your log files, with timestamps on the frontcat /var/log/syslog | cut -d' ' -f1
- Splits the lines by a space delimiter (the-d' '
part), and grabs the first “field” (the one with the timestamp, using-f1
)cat /var/log/syslog | cut -d' ' -f1 | cut -dT -f1
- Splits the timestamp at the “T”, and leaves only the datecat /var/log/syslog | cut -d' ' -f1 | cut -dT -f1 | sort | uniq -c
- Gives you a count of each dategrep systemd /var/log/syslog | cut -d' ' -f1 | cut -dT -f1 | sort | uniq -c
- For only the lines with ‘systemd’ on it, gives you a count of each date
The standard GNU toolkit has a ton of utilities like that for doing stuff with text files.
At work whenever we need to build little command line tools, my team is always vexxed by my guideline to have the meat+potatoes in a script that reads well-formatted data off stdin , and outputs well formatted-data to stout. They always wanna have some stupid interactive prompts and saving to files baked right in.
This is exactly why. You wanna save to a file?? > file
You want to read from a file? cat |
You want to save to a file but swap commas for colons? Sed.
You get so much FOR FREE w/ the GNU toolkit, even for what you build yourself, by thinking in streams.
When trying to explain that concept, I like showing people this: https://www.youtube.com/watch?v=tc4ROCJYbm0&t=296
Wow, this was a treat to watch. Never would have imagined Brian Kernighan would be explaining shell pipeline to me in such a cosy setting
Me, a simpleton,
“Wut dat mean”
The one thing I’d add is to say don’t run a shell script from the Internet unless you’re damn sure that (a) you trust the entity providing it, and (b) you’re downloading via https and haven’t typo’d the URL.
How the fuck did you deduce that from the post above?
I’m not doubting you at all, you’ve got the Linux aura, but please share so more people can hope to do this
He had added a Jellyfin repo to his apt
sources.list
file for some reason, which is weird and likely not the right way to do it these days. But it might have been in the past, so it could be OP was following some obsolete procedure (or one AI-hallucinated from an obsolete procedure).After realizing that OP was completely going about it the wrong way, the guy you replied to just looked up the correct way and relayed that to him.
See also: https://wiki.debian.org/DontBreakDebian
Grue, I only really see you when it has to do with Linux.
Come hang out more with the degens, you’d be appreciated
Not OP, but it was very simple if you have already seen that error.
First of all, there is one single easily parsable error.
https://repo.jellyfin.org/debian produced a 404 error, thus the URL is invalid.
Let’s ignore why it’s invalid for a second.
This error happens after
apt update
, thus we can deduce the following:- It’s supposed to be an apt repository URL (To experienced users, it effectively looks like a repository URL)
- This repository URL does not work
- As in 99% of cases, this URL is likely located in a configuration file in the standard location,
/etc/apt/sources.list.d/
Back to why it’s invalid, maybe it used to be valid in the past, or there is a temporary server error, this can be verified with the official documentation.
If the documentation does not mention this repository URL, then it’s a mistake to use it.
This is a good moment to google this URL and find out why/which guide tells you to use it, and to analyze which steps they made you take.
From there, reverse those steps.
Even if you hadn’t found this guide, you can be sure that by looking into
/etc/apt/sources.list.d
you would’ve found that file containing that URL, simply removing the file or URL would’ve removed the error.Lastly, you look for either the official documentation, or a more reliable guide.
This was cool, thank you for doing it.
Sometimes it’s hard to switch gears and understand this OS/language, but you did an excellent job of bridging that gap. Thank you.
Is there a reason you’re not using Docker?
This is the question and answer
To be completely honest, I installed Jellyfin “bare-metal” and have been using it that way since after attempting to skim the Docker documentation and failing to understand how Docker works.
My friend, i would like to introduce you to the wonders of Portainer. Go forth and watch a video on youtube and you’ll get it.
Use Portainer if you don’t want anything to be portable. There are other issues too. Just use Docker Compose.
Probably not interested in dealing with endless permission and proxy problems. Me I just run everything as root and password 543211111111111111Aa±
Add yourself to the docker group
Op please don’t ignore the above.
Learn docker once and you’ll be able to install almost anything, rather than having to learn every individual app and how it installs on specific operating systems.
It seems to have picked up “circle” as the distro. You’ll need to replace that with the matching Ubuntu or Debian version of what this version of ElementaryOS is.
Find out by running
lsb_release -c
in the terminal.I entered that and got a result of
No LSB modules are available Codename: circe
Elementary 8 circe is based on Ubuntu 24.04 LTS, which is based in debian 13, which has a codename “trixie”.
I’m sorry I’m a super noob but I think I see where I have to fix it. I just don’t know what version of Ubuntu is Elementary 8.0 is. I found a guide that says Ubuntu 20.04(focal) is 6.1(jolnir)
Are you trying to install jellyfin server or client?
Jellyfin server
Install docker, grab the official docker compose file, then
docker compose up -d
.Details: Look up how to install docker on elementary (I guess it’s
sudo apt install docker
), than you don’t have to care about the distro after that, docker works the same way everywhere. You can find countless tutorials on this, and they should workThanks, I’ve been seeing that rec a lot recently. I’ll give that a try
Once you know how to use docker/containerization it’ll be the only way you want to deploy applications. Most popular applications will also have good guides on how to setup/config the container, but sometimes you’ll need to read up on docker and Linux to figure things out.
Containers are often simple enough you don’t even need a guide. I don’t trust myself to configure anything on the host system correctly, and using Docker containers completely solves concerns of conflicting dependencies during updates. I personally avoid hosting anything that isn’t available with Docker anymore. It’s just too much work for a worse result.
Yeah I really need to do more reading. My lack of knowledge on Linux is my main issue I think. Just jumped the gun to Linux like a month ago, played around in elementary for a bit and was like “now is the time to set up my media server”. Prob needed more time, reading, and texting but eh.
I appreciate the advice I’ve been getting here big time!
Some of the commands I use a lot for debugging containers, in case you go down that route:
docker run --rm -it --entrypoint bash <image_name>
- This command let’s you enter a docker image with bash so you can test commands and treat it like a temporary VM. Great way to see how the image is setup
docker exec -it <container_name>
- This let’s you enter a running container with bash. A great way to inspect why something might not be working or check mounted volumes, etc.
Yeah using docker is the most reliable way to do it