Can't install Ghost-CLI ( permission trouble?)

npm i -g ghost-cli@latest
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules’
npm ERR! { Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules’
npm ERR! stack: ‘Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules’’,
npm ERR! errno: -13,
npm ERR! code: ‘EACCES’,
npm ERR! syscall: ‘access’,
npm ERR! path: ‘/usr/local/lib/node_modules’ }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

npm ERR! A complete log of this run can be found in:
npm ERR! /home/spore/.npm/_logs/2018-10-08T18_03_02_629Z-debu

You need to use sudo in linux to install node modules

So it would be sudo npm i -g ghost-cli@latest

thanks so much

Quick question. Manual says to install Ghost in an empty directory. What’s your suggestion for where to create this directory on a system?

The docs use /var/www/ghost so that’s probably the best place since it will make following along a lot easier :slight_smile:

Thanks. Even in a local install?

For theme development, I use this folder structure (note this is on Windows where folders in the root directory are acceptable):

/code
├─── git // code which uses version control
├────── theme // specific theme
├───────── src //theme code
├───────── instance // Ghost instance

Thanks. Do you know how this will look on linux?

Also, someone mentioned Docker for theme development. How useful is this?

You could use that folder structure in your home directory, and everything should be functional

I don’t use docker much, but imo it’s an unneeded abstraction. Unless you’re trying to manage multiple running instances (which even then, you might not need docker), the CLI is fully functional and makes managing your Ghost instance painless. All you have to do is run ghost install local, (sometimes) ghost restart and ghost update and you will get an instance, be able to manage the state of it, and update it super easily.

Docker would require more resources to run and provide no tangible benefits, other than you don’t need to install node. However, you would need to install docker… :upside_down_face: Moreover, you’re not going to get any Docker support from Ghost - you might find people that know docker and can help you here, but the CLI is maintained and developed by the Ghost Core team.

Hold on one second please. /code is a directory name? What about git, theme, src, instance? Is that all directory names?

Yep, sorry if that wasn’t clear :grimacing: That’s the directory structure I use, since I have more projects which I contribute to than just Ghost Themes

Oh, you shouldn’t be sorry :slight_smile: I’ll do the directory as you suggested, thanks so much

One more question. “Instance” is the directory on which I run ghost install local?

Yep!

Great

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