Failed installation on Ubuntu UserLAnd Android

I followed the instructions on How to install Ghost locally on Mac, PC or Linux, creating a fresh directory. When I tried to install Ghost in that directory, the installation ran for a while but it eventually said the directory wasn’t empty. (It was empty when I created it.)

Steps to Reproduce

  1. sudo apt-get install nodejs -y
  2. npm install ghost-cli@latest -g
  3. ghost install local

An error occurred.

Message: ‘ENOTEMPTY: directory not empty, rmdir ‘versions/5.86.2/node_modules/sharp/vendor/8.14.5/linux-arm64v8/include/libpng16’’


Setup information

Debug Information:

OS: Ubuntu, v22.04.4 LTS

Node Version: v18.20.3

Ghost-CLI Version: 1.26.0

Environment: development

Command: ‘ghost install local’

Ghost Version I’m trying to install: 5.86.2

How did you install Ghost?

I followed the instructions on How to install Ghost locally on Mac, PC or Linux. It worked on WSL2 with Ubuntu 22 on Windows 11.

Provide details of your host & operating system

*Include further details about your hosting and OS.

UserLAnd Linux app for Android version 24.04.03

On Android 11

Relevant log / error output

After the failed install, the directory contained ~/ghost/versions/5.86.2

Error message:


Message: 'ENOTEMPTY: directory not empty, rmdir 'versions/5.86.2/node_modules/sharp/vendor/8.14.5/linux-arm64v8/include/libpng16''```
userland@localhost:~/spectre$ cat /home/userland/.ghost/logs/ghost-cli-debug-2024-06-27T04_19_38_239Z.log
Debug Information:
    OS: Ubuntu, v22.04.4 LTS
    Node Version: v18.20.3
    Ghost-CLI Version: 1.26.0
    Environment: development
    Command: 'ghost install local'
An error occurred.
Message: 'ENOTEMPTY: directory not empty, rmdir 'versions/5.86.2/node_modules/sharp/vendor/8.14.5/linux-arm64v8/include/libpng16''

Stack: Error: ENOTEMPTY: directory not empty, rmdir 'versions/5.86.2/node_modules/sharp/vendor/8.14.5/linux-arm64v8/include/libpng16'
    at Object.rmdirSync (node:fs:1222:10)
    at _rmdirSync (node:internal/fs/rimraf:260:21)
    at rimrafSync (node:internal/fs/rimraf:193:7)
    at node:internal/fs/rimraf:253:9
    at Array.forEach (<anonymous>)
    at _rmdirSync (node:internal/fs/rimraf:250:7)
    at rimrafSync (node:internal/fs/rimraf:193:7)
    at node:internal/fs/rimraf:253:9
    at Array.forEach (<anonymous>)
    at _rmdirSync (node:internal/fs/rimraf:250:7)
    at rimrafSync (node:internal/fs/rimraf:193:7)
    at node:internal/fs/rimraf:253:9
    at Array.forEach (<anonymous>)
    at _rmdirSync (node:internal/fs/rimraf:250:7)
    at rimrafSync (node:internal/fs/rimraf:193:7)
    at node:internal/fs/rimraf:253:9
Code: ENOTEMPTY
Path: versions/5.86.2/node_modules/sharp/vendor/8.14.5/linux-arm64v8/include/libpng16
userland@localhost:~/spectre$

Userland is powered by PRoot which is very unlikely to make Ghost work on that such environment.

Learn More: PRoot - Termux Wiki