Ubuntu 14.04; 'letsencrypt: command not found'

Hey guys,

It would appear that I am unable to use the letsencrypt command on Ubuntu 14.04 LTS;

root@ns3297292:~# letsencrypt letsencrypt: command not found

It appears I can only use lets encrypt by using;

cd /etc/letsencrypt ./letsecrypt-auto

Is this normal? Or should I be able to use the letsencrypt command?

You would need to install letsencrypt ( it’s not in ubuntu repositories by default). see https://letsencrypt.readthedocs.org/en/latest/intro.html#installation

I have already installed LE using the instructions provided at that link, everything seems to work however the issue I’m having the issue with running LE via the letsencrypt, last night I issued a certificate using the ./letsencrypt-auto script located in the install directory (in my case I installed LE to /etc/letsencrypt/). Many thanks for your help though!

You can create a symlink at /usr/local/bin/letsencrypt via

ln -s /etc/letsencrypt/letsencrypt-auto /usr/local/bin/letsencrypt

Then you can run “letsencrypt”

In that case, yes it’s normal to have to change to the /etc/letsencrypt directory. You can always create an alias …

Thanks for this, I had though about doing this however just wanted to confirm that it’s not supposed to this by default. On a side note, is this possible on CentOS, to use the letsencrypt command without running this command, just curious as I have seen the docs refer to being able to use this command without any intervention.

Just ran this commend, I am getting somewhere :stuck_out_tongue:, however on running letsencrypt, the following is output;

.Could not open requirements file: [Errno 2] No such file or directory: '/usr/local/bin/py26reqs.txt'

Any suggestions?

Strange, for me this is working :smile:

Can you try to remove the symlink and create a new one ?

ln -s <userdir>/.local/share/letsencrypt/bin/letsencrypt /usr/local/bin/letsencrypt

For userdir use the path to the user home dir.

It’s normal that you cant just run letsencrypt from the command line. You’ve cloned from git, right? You did not install a deb package with a package manager. There is no deb package in the official repository yet. You could create an alias if you want to run it this way.

How to create an alias

Same issue here; if I use letsencrypt-auto via a symbolic link from /usr/local/bin (or anywhere really) then it’s trying to load files relative to the symbol link’s location, rather than the actual location of letsencrypt-auto.

py26req.txt, bootstrap and other things it may complain that are missing are located under /etc/letsencrypt for me. Looks like I’m going to have to use an alias or just a full path (since I shouldn’t be doing a lot of manual commands once things are up and running, at least I hope so!

Since there appears to be a new issue arisen here, outside the scope of the OP, I feel it would possibly be better to report this issue on GitHub, for the developers to take care of.

Or a workaround would be to put this

#!/bin/bash
path_to_git_letsencrypt/letsencrypt-auto "$@"

into /usr/local/bin/letsencrypt-auto

You could try run python setup.py install in the folder you did checkout letsencrypt. You may want to first run the following command if you don’t wanna use the current development version, but the last version marked as release on github: git checkout v0.1.0
We did that on our servers and the letsencrypt command as well as the letsencrypt-renewer command is working well.

//EDIT: We had to first install python-setuptools and python-mock to make it work on our centos7 and debian8 machines to make the installer work. You may also need to do that.

Thanks for all the messages before but I need your expert help.

I have read the article suggested by @serverco , it is very similar to Get Started)

I have done this to install:
mseleznova@webserver:~$ git clone https://github.com/letsencrypt/letsencrypt
mseleznova@webserver:~$ cd letsencrypt
mseleznova@webserver:~/letsencrypt$ ./letsencrypt-auto --help

After I have made a symlink, as @jpbe advised:
mseleznova@webserver:~/letsencrypt$ ln -s /etc/letsencrypt/letsencrypt-auto /usr/local/bin/letsencrypt
Since I try these steps second time I received reply: ln: failed to create symbolic link ‘/usr/local/bin/letsencrypt’: File exists
But it is not the point.

My problem is that command ‘letsencrypt’ does not work after all these steps. So now I have:

mseleznova@webserver:~/letsencrypt$ letsencrypt --apache
letsencrypt: command not found

Please, advice how to make this command working properly?
Thank you!

Hi @mseleznova,

The difference between letsencrypt and letsencrypt-auto has to do with how they handle obtaining other software packages that are required by the Let’s Encrypt client. The letsencrypt form does not attempt to obtain the other required software, and so is intended for use only when you get the client from your operating system (e.g., from a Debian package that you get with apt-get, or the equivalents on other operating systems). The letsencrypt-auto command also handles automatically downloading necessary software and making sure that it is up to date.

Because of this, letsencrypt-auto should always be used if you’re getting the client from a git clone rather than from something like apt-get install. In general, letsencrypt-auto and letsencrypt can be used interchangeably (you just run whichever one you have available based on the way that you obtained the software). For example, if a tutorial tells you to run letsencrypt -a standalone -d example.com, you could instead run ./letsencrypt-auto -a standalone -d example.com.

Moreover your letsencrypt-auto script seems to be in ~/letsencrypt/letsencrypt-auto and not in /etc/letsencrypt/letsencrypt-auto, so if you have created a symbolic link to a script that do not exists, it is normal you get a command not found.