Failed to create symbolic link ‘/snap/snap’: File exists

Hi there, I am configuring snapd and following the documentation, when I run the last command sudo ln -s /var/lib/snapd/snap /snap to create a symbolic link I get error

failed to create symbolic link ‘/snap/snap’: File exists

This tells me there is already a snap file? But how is there a file if I just installed snapd?

Please advise, thank you =)

To enable classic snap support

A: Do you need classic snap support?

B: If the symlink already exists, then you’re probably good. Go ahead and try whatever it is you’re trying to do. Perhaps the documentation is outdated…

1 Like

That’s a good question. I am using snapd to use certbot to make ssls that auto renew.

Thanks for the reply.

If you’re unfamiliar on how snap confinement works, I’d suggest you read these articles:


o7

1 Like

@ willnilges
Thanks for the documentation. “snap list” is useful to me. I see I have certbot classic installed.

I ran into another problem, in the instructions Step 5 says to run “sudo certbot --apache” So I run it but get “sudo: certbot: command not found”
Any ideas?

When I run “yum info certbot” I see certbot version 1.4 is installed. So when I try to run “sudo certbot --apache” Centos7 does not recognize the command?
scratches head

Yooo I found a GitHub Issue today about that! I haven’t a clue :c

My guess would be that the certbot snap might not be able to run sudo. Check on the CertBot github page.

I wonder if sudo needs to be a dependency or something.

2 Likes

try:

sudo /snap/bin/certbot ...

or:

sudo snap run certbot ...

seems like centos’ sudo does not accept changes to PATH and /snap/bin is simply not in your PATH variable.

1 Like

@orga
“sudo /snap/bin/certbot …”

usage:
certbot [SUBCOMMAND] [options] [-d DOMAIN] [-d DOMAIN] …

Certbot can obtain and install HTTPS/TLS/SSL certificates. By default,
it will attempt to use a webserver both for obtaining and installing the
certificate.
certbot: error: unrecognized arguments: …

[orca@orcacomputers ~]$ echo $PATH

/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/var/lib/snapd/snap/bin:/home/orca/.local/bin:/home/orca/bin

So looks like snapd is in PATH.

sudo snap run certbot

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Error while running apachectl configtest.

httpd: Syntax error on line 56 of /etc/httpd/conf/httpd.conf: Syntax error on line 6 of /etc/httpd/conf.modules.d/10-php.conf: Cannot load modules/libphp5.so into server: /lib64/libc.so.6: version `GLIBC_2.18’ not found (required by /snap/core18/current/usr/lib/x86_64-linux-gnu/libstdc++.so.6)

Certbot doesn’t know how to automatically configure the web server on this system. However, it can still get a certificate for you. Please run “certbot certonly” to do so. You’ll need to manually configure your web server to use the resulting certificate.

So looks like its having problems configuring my webserver to automate the renewals.

well, indeed the three dots I added to the command meant you should replace them with whatever options you want to use :slight_smile:

this looks actually like a packaging issue with the certbot snap (it seems to actually execute something from the host trying to use the libc from the snap env)

1 Like

oh right, this is still in Beta, shoot, I wonder if I should just scrap the snapd and use certbot with the Centos7 instructions. This is definitely an issue though.

you should in any case let the developer of the snap know …
a link is on the site at:

1 Like