./jcli: command not found

After following the coincashew guide step 18.7, I am getting an error message saying:

node1:~/cardano-my-node$ sudo ./jcli key sign --secret-key itn_owner.skey stakepoolid.txt --output stakepoolid.sig
sudo: ./jcli: command not found

But when I do jcli version, it shows it is installed:
node1:~/cardano-my-node$ jcli version
Jenkins CLI (jcli) manage your Jenkins
Version: v0.0.26
Commit: 94dd6c7

Can someone help me where is the correct path to copy jcli to $NODE_HOME?



This step is optional.

“In order to defend against spoofing and hijacking of reputable stake pools, a owner can verify their ticker by proving ownership of an ITN stake pool.”

So this step is for stake pool owners who participated in the ITN phase - more info about it: Incentivized Testnet: what is it and how to get involved - IOHK Blog

Thanks for that article. However I am looking for the correct binary path for jcli so I can copy it to my $NODE_HOME?

ok, so have you participated in the ITN phase as a pool operator?

no i havent

ok, so that means you can skip this step, since you dont have pool ticker from ITN.
but if you need the jcli command line tool you can get it from github:

@coin Provided jcli binary is in your $PATH then you should get its path with the following command line

$ which jcli

When you call ./jcli it means you want jcli file in current directory

thanks for this, you might want to read between the lines next time.

awesome thank you, this is just what i was looking for!

Ok, let us know when you finished this step without having an ITN pool id.

Is it the only use case for ‘jcli’ ? I doubt it but just in case, @coinz for the command line you gave us, you might not have to copy jcli into your $NODE_HOME, it should be enough to call it without the ‘./’ prefix, that way you would have only one version of ‘jcli’ on your system which can save a few surprises when you’ll need to update it :wink:

yes, that is the only use case when you start operating a stake pool on shelley mainnet network. But that is optional if you did not operate a pool on ITN.
but since this topic is about jcli not found - then to fix that, you need to download the jcli from github and place it into $NODE_HOME folder.

this is another tool already installed on your system. So to save few surprises call jcli from $NODE_HOME with ./jcli - this way you defined the exact path of the command not messing up with other commands installed on the system.

Oh ok, I did not know there were two different jcli instances. That said for one it is not considered a good practice to release a binary under the name of a previously released one (but that can happen, obviously) and secondly it is not a good practice either to put binaries everywhere, they should remain in appropriate directories (like /bin, /usr/bin, /usr/local/bin) so there is also the possibility to define a bin directory in $HOME and add something like ~/bin in front of your $PATH, then you let the OS choose which binary will be used. But by all means, forcing the binary choice with ‘./’ makes for a quicker workaround.