# Installing certbot via apt vs snap vs pip

**URL:** <https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110>\
**Category:** Help\
**Created:** [January 16, 2025, 9:53pm UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110 "2025-01-16T21:53:00Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![karoshi](https://avatars.discourse-cdn.com/v4/letter/k/439d5e/32.png) [@karoshi](https://community.letsencrypt.org/u/karoshi)\
**Post date:** [January 16, 2025, 9:53pm UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/1 "2025-01-16T21:53:00Z")

</div>

I'm trying to understand the ever-evolving installation requirements for certbot (which I have used since around 2015/16 or so) . I don't use snapd for many reasons but a main one is the fact that most of my servers are plain headless servers running Ubuntu Server rather than Ubuntu Desktop, so I'm trying to understand why it is that certbot installation is currently through snap or pip now? I will be upgrading an older apache server with quite a few vhosts at some point and I do use letsencrypt extensively on it so I'd rather not run into any unpleasant surprises.

---

<div class="post-metadata">

**Author:** ![MikeMcQ](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/mikemcq/32/52772_2.png) [@MikeMcQ](https://community.letsencrypt.org/u/MikeMcQ)\
**Post date:** [January 16, 2025, 10:09pm UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/2 "2025-01-16T22:09:00Z")

</div>

It is a fair question but one probably best asked at the EFF's github for Certbot. Their dev team monitors activity there more closely than here. See: [Issues · certbot/certbot · GitHub](https://github.com/certbot/certbot/issues?q=is%3Aissue%20)

I don't speak for the EFF but I think their recent website change about install options is to only show options that gives you ability to keep Certbot current. Relying on apt or other packaging systems can often leave you far behind the current version.

---

<div class="post-metadata">

**Author:** ![karoshi](https://avatars.discourse-cdn.com/v4/letter/k/439d5e/32.png) [@karoshi](https://community.letsencrypt.org/u/karoshi)\
**Post date:** [January 16, 2025, 10:11pm UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/3 "2025-01-16T22:11:31Z")

</div>

OK, thanks for the redirect. Keeping super current, I suppose that's fair, OTOH I generally run LTS distros so I'm always a little behind the latest and greatest anyway, which I'm okay with. I like to watch other people on the bleeding edge before it's my turn to shed blood 😉

---

<div class="post-metadata">

**Author:** ![rmbolger](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/rmbolger/32/27474_2.png) [@rmbolger](https://community.letsencrypt.org/u/rmbolger)\
**Post date:** [January 16, 2025, 10:43pm UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/4 "2025-01-16T22:43:27Z")

</div>

> [@karoshi](#):
>
> plain headless servers running Ubuntu Server

I didn't think Ubuntu Desktop was a requirement for snap. I've got it available on headless Ubuntu Server installs as old as as 20.04 LTS.

---

<div class="post-metadata">

**Author:** ![mcpherrinm](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/mcpherrinm/32/59604_2.png) [@mcpherrinm](https://community.letsencrypt.org/u/mcpherrinm)\
**Post date:** [January 16, 2025, 10:59pm UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/5 "2025-01-16T22:59:42Z")

</div>

Snap is advised as the "basic" option because all the dependencies are managed and updated automatically.

pip is supported, but users who don't understand pip may run into issues. If you have configuration management or other tooling and can manage pip and upgrades, that works fine. [Certbot pip instructions](https://certbot.eff.org/instructions?ws=other&os=pip)

apt packages from your OS aren't directly supported by the certbot team, as they can get out of date (especially, eg, in an LTS distro). But generally still works.

---

<div class="post-metadata">

**Author:** ![linkp](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/linkp/32/60089_2.png) [@linkp](https://community.letsencrypt.org/u/linkp)\
**Post date:** [January 17, 2025, 8:26pm UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/6 "2025-01-17T20:26:52Z")

</div>

> [@karoshi](#):
>
> upgrading an older apache server

I recommend you look into Apache `mod_md`. I moved all of my Apache vhosts from certbot to `mod_md` years ago and it is definitely the way to manage certificates used by Apache.

On the one Debian host where I run certbot to create a certificate used by services other than Apache, I use pip with a cron job that keeps it up to date. It's a better option for me than installing snapd on a server that otherwise would have no need for it.

---

<div class="post-metadata">

**Author:** ![karoshi](https://avatars.discourse-cdn.com/v4/letter/k/439d5e/32.png) [@karoshi](https://community.letsencrypt.org/u/karoshi)\
**Post date:** [January 22, 2025, 6:02pm UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/7 "2025-01-22T18:02:12Z")

</div>

Ah, gotcha. My basic LTS server installs up to 24.04 don't have any snap installs. I'm sure it _could_ be installed, if something using snap were installed on them, but the basic install w/nothing added doesn't have snap so far.

---

<div class="post-metadata">

**Author:** ![karoshi](https://avatars.discourse-cdn.com/v4/letter/k/439d5e/32.png) [@karoshi](https://community.letsencrypt.org/u/karoshi)\
**Post date:** [January 22, 2025, 6:02pm UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/8 "2025-01-22T18:02:48Z")

</div>

ooooooooohhhhh... this will motivate me to upgrade that server more quickly! how did i miss this? thanks for the pointer!

---

<div class="post-metadata">

**Author:** ![Bachsau](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/bachsau/32/81693_2.png) [@Bachsau](https://community.letsencrypt.org/u/Bachsau)\
**Post date:** [January 23, 2025, 1:01am UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/9 "2025-01-23T01:01:01Z")

</div>

> [@mcpherrinm](#):
>
> Snap is advised as the "basic" option because all the dependencies are managed and updated automatically.

Unfortunately, all this sandboxing comes with a lot of overhead, especially if you're not already using Snap for other things. Not as much as a Docker container, but still. I've been running the pip release for two years now without any issues.

After following the initial instructions to set up the `venv`, I've created a small script that I run after python upgrades and whenever it's time to update certbot:

```nohighlight
#!/bin/sh -eu
python3 -m venv --upgrade /opt/certbot
python3 -m venv --upgrade-deps /opt/certbot
/opt/certbot/bin/pip install --upgrade certbot

```

--

> [@linkp](#):
>
> I recommend you look into Apache `mod_md`. I moved all of my Apache vhosts from certbot to `mod_md` years ago and it is definitely the way to manage certificates used by Apache.

I don't think certificate management is a job for a web server. Apache is there to serve websites, and I wouldn't want it to mess with my certificates. To quote the Unix philosophy: "Do one thing and do it right". Furthermore, I'm generally using one wildcard certificate for a domain and its sub-domains, so the virtual host configuration is and should stay independent of the certificates, and the certificates might also be used by a mail or ftp server.

---

<div class="post-metadata">

**Author:** ![linkp](https://sea3.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/linkp/32/60089_2.png) [@linkp](https://community.letsencrypt.org/u/linkp)\
**Post date:** [January 23, 2025, 1:56am UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/10 "2025-01-23T01:56:56Z")

</div>

> [@Bachsau](#):
>
> Do one thing and do it right.

That's what `mod_md` does. It gets certs and it is good at it. I use it for certs that are only used by Apache web sites.

Your reason for not wanting to use `mod_md` is similar for my reason for not allowing certbot to touch my Apache configs, so I can appreciate it even if I disagree. 😏

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/letsencrypt/original/3X/c/a/ca6c06ea1ea201324bba7048c6841ce60236468d.png) [@system](https://community.letsencrypt.org/u/system)\
**Post date:** [February 22, 2025, 1:57am UTC](https://community.letsencrypt.org/t/installing-certbot-via-apt-vs-snap-vs-pip/232110/11 "2025-02-22T01:57:42Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
