• Heute auf die neue Version aktualisiert, so wie immer

    git fetch
    git reset --hard origin/v1.18.x    
    ./nodebb upgrade
    ./nodebb start
    

    Bei

    ./nodebb upgrade
    

    kommt dieser Fehler

    nodebb@webserver:~/nodebb$ ./nodebb upgrade
    
    Updating NodeBB...
    
    1. Updating package.json file with defaults...  OK
    
    2. Bringing base dependencies up to date...  started
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/chokidar/node_modules/fsevents):
    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
    npm WARN textcomplete.contenteditable@0.1.1 requires a peer of textcomplete@^0.14.2 but none is installed. You must install peer dependencies yourself.
    
    npm ERR! code EEXIST
    npm ERR! path /user/nodebb/node_modules/.bin/nanoid
    npm ERR! Refusing to delete /user/nodebb/node_modules/.bin/nanoid: is outside /user/nodebb/node_modules/nanoid and not a link
    npm ERR! File exists: /user/nodebb/node_modules/.bin/nanoid
    npm ERR! Remove the existing file and try again, or run npm
    npm ERR! with --force to overwrite files recklessly.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /user/.npm/_logs/2021-10-09T15_39_29_779Z-debug.log
    Error installing dependencies!
    message: Command failed: npm install --production
    stdout: null
    stderr: null
    Error occurred during upgrade: Error: Command failed: npm install --production
        at checkExecSyncError (child_process.js:790:11)
        at Object.execSync (child_process.js:863:15)
        at Object.installAll (/user/nodebb/src/cli/package-install.js:73:9)
        at Object.handler (/user/nodebb/src/cli/upgrade.js:21:19)
        at runSteps (/user/nodebb/src/cli/upgrade.js:54:16)
        at processTicksAndRejections (internal/process/task_queues.js:95:5)
        at async Object.runUpgrade [as upgrade] (/user/nodebb/src/cli/upgrade.js:84:3)
    (node:36405) UnhandledPromiseRejectionWarning: Error: Command failed: npm install --production
        at checkExecSyncError (child_process.js:790:11)
        at Object.execSync (child_process.js:863:15)
        at Object.installAll (/user/nodebb/src/cli/package-install.js:73:9)
        at Object.handler (/user/nodebb/src/cli/upgrade.js:21:19)
        at runSteps (/user/nodebb/src/cli/upgrade.js:54:16)
        at processTicksAndRejections (internal/process/task_queues.js:95:5)
        at async Object.runUpgrade [as upgrade] (/user/nodebb/src/cli/upgrade.js:84:3)
    (Use `node --trace-warnings ...` to show where the warning was created)
    (node:36405) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
    (node:36405) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
    

    Ok, da bekommt man dann immer feuchte Hände. Ist aber mit Proxmox nicht so schlimm, ich mache vorher immer Snapshots.

    Ok, aufmerksam lesen, hilft hier meistens.

    npm ERR! File exists: /user/nodebb/node_modules/.bin/nanoid
    npm ERR! Remove the existing file and try again, or run npm
    npm ERR! with --force to overwrite files recklessly.
    

    Ich lese, das man zwei Möglichkeiten hat.

    • Wir löschen das File von Hand
    • Wir nutzen die Option --force

    Ich habe die erste Option getestet. Zur Sicherung verschiebe ich das File.

    mv /user/nodebb/node_modules/.bin/nanoid /home/user
    

    Danach wieder

    ./nodebb upgrade
    

    Diesmal funktioniert es einwandfrei.