Manual Install on Pi Error

Hi All,

I’m trying to manually install Webthings on a Raspberry Pi 4b and I’m getting the following error.
Could I get some help with this please;

npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /home/pi/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/home/pi/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/.npm/_logs/2021-12-11T17_39_44_771Z-debug.log

Here’s the log;

0 info it worked if it ends with ok
1 verbose cli [ '/home/pi/.config/nvm/versions/node/v10.24.1/bin/node',
1 verbose cli   '/home/pi/.config/nvm/versions/node/v10.24.1/bin/npm',
1 verbose cli   'start' ]
2 info using npm@6.14.12
3 info using node@v10.24.1
4 verbose config Skipping project config: /home/pi/.npmrc. (matches userconfig)
5 verbose stack Error: ENOENT: no such file or directory, open '/home/pi/package.json'
6 verbose cwd /home/pi
7 verbose Linux 5.10.63-v7l+
8 verbose argv "/home/pi/.config/nvm/versions/node/v10.24.1/bin/node" "/home/pi/.config/nvm/versions/node/v10.24.1/bin/npm" "start"
9 verbose node v10.24.1
10 verbose npm  v6.14.12
11 error code ENOENT
12 error syscall open
13 error path /home/pi/package.json
14 error errno -2
15 error enoent ENOENT: no such file or directory, open '/home/pi/package.json'
16 error enoent This is related to npm not being able to find a file.
17 verbose exit [ -2, true ]

If I go to the following page will this give me an install of buster and webthings on my RPi;
https://github.com/WebThingsIO/gateway/releases/download/1.0.0/webthings-gateway-debian-buster-amd64.deb

How do I get this on the Pi ?
I’ve tried balena which states it’s no bootable, tried changing the extension, tried unrarx, unarchiver?
Anyone tried this?

I type in: how do I install a .deb file, into Google and it came up with dozens of web pages like this one: https://linuxize.com/post/how-to-install-deb-packages-on-ubuntu/

HI @EricEdberg,

Thank you for the hint and grateful for your input, but I’m on and old mac 10.11.6 and I’ve spent all day reading and tryng and downloading all sorts of stuff with no results.
I’ve tried installing Xcode 8.2.1, 8.2, 8 and none of these will open with unarchiver. They all state the data is corrupted, yet downloaded from the Mac app store?
I’ve tried many command lines, just an example from the last hour;

Last login: Sun Dec 12 14:20:56 on ttys001
Darrens-iMac:~ darrensimms$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Darrens-iMac:~ darrensimms$ softwareupdate --list
Software Update Tool
Copyright 2002-2015 Apple Inc.

Finding available software
No new software available.
Darrens-iMac:~ darrensimms$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Darrens-iMac:~ darrensimms$ sudo apt install ./Users/darrensimms/Downloads/webthings-gateway-debian-buster-arm64.deb 
Password:
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home/bin/apt" (-1)
Darrens-iMac:~ darrensimms$ xcode-select --reset
xcode-select: error: --reset must be run as root (e.g. sudo xcode-select --reset).
Darrens-iMac:~ darrensimms$ 
Darrens-iMac:~ darrensimms$ sudo xcode-select --reset
Darrens-iMac:~ darrensimms$  sudo apt install ./Users/darrensimms/Downloads/webthings-gateway-debian-buster-arm64.deb
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home/bin/apt" (-1)
Darrens-iMac:~ darrensimms$  xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Darrens-iMac:~ darrensimms$ Software update
-bash: Software: command not found
Darrens-iMac:~ darrensimms$ softwareupdate
usage: softwareupdate <mode> [<args> ...]

** Catalog Management:
	--set-catalog <URL>	Set the new catalog URL (requires privileges)
	--clear-catalog		Clear the catalog URL back to defaults (requires privileges)

** Manage Updates:
	-l | --list		List all appropriate update labels (options:  --no-scan)
	-d | --download		Download Only
	-e | --cancel-download		Cancel a download
	-i | --install		Install
		<label> ...	specific updates
		-a | --all		All appropriate updates
		-r | --recommended	Only recommended updates
	--background		Trigger a background scan and update operation
	--ignore <label> ...	Ignore specific updates
	--reset-ignored		Clear all ignored updates

** Other Tools:
	--suspend-background (on | off)	Suspend background operations from occurring temporarily (uses --duration)
		--duration <duration>)		Optional duration in seconds to suspend background operations (defaults to 5*60 seconds)
	--dump-state		Log the internal state of the SU daemon to /var/log/install.log
** Options:
	--no-scan		Do not scan when listing or installing updates (use available updates previously scanned)
	
-v | --verbose	Enable verbose output
-h | --help	Print this help

Darrens-iMac:~ darrensimms$ xcode-select --switch /Applications/Xcode.app
xcode-select: error: invalid developer directory '/Applications/Xcode.app'
Darrens-iMac:~ darrensimms$ xcode-select --switch /Library/Developer/CommandLineTools
xcode-select: error: --switch must be run as root (e.g. sudo xcode-select --switch <xcode_folder_path>).
Darrens-iMac:~ darrensimms$ sudo xcode-select --switch /Library/Developer/CommandLineTools
Darrens-iMac:~ darrensimms$  sudo apt install ./Users/darrensimms/Downloads/webthings-gateway-debian-buster-arm64.deb
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home/bin/apt" (-1)
Darrens-iMac:~ darrensimms$ ar -x /Users/darrensimms/Downloads/webthings-gateway-debian-buster-arm64.deb 
Darrens-iMac:~ darrensimms$ dpkg -L webthings
-bash: dpkg: command not found
Darrens-iMac:~ darrensimms$ ar vx/Users/darrensimms/Downloads/webthings-gateway-debian-buster-arm64.deb 
usage:  ar -d [-TLsv] archive file ...
	ar -m [-TLsv] archive file ...
	ar -m [-abiTLsv] position archive file ...
	ar -p [-TLsv] archive [file ...]
	ar -q [-cTLsv] archive file ...
	ar -r [-cuTLsv] archive file ...
	ar -r [-abciuTLsv] position archive file ...
	ar -t [-TLsv] archive [file ...]
	ar -x [-ouTLsv] archive [file ...]
Darrens-iMac:~ darrensimms$ ar vx /webthings-gateway-debian-buster-arm64.deb
ar: /webthings-gateway-debian-buster-arm64.deb: No such file or directory
Darrens-iMac:~ darrensimms$ 

Why is this so damn hard to do, surely theres and easier way?

@EricEdberg, Sorry I’d listed the wrong file previously its the arm version not the amd version.
If Im on my RPi running Buster, can I just goto the page I downloaded the file from and download it on the RPI, then sudo apt install webthings-gateway-debian-buster-arm64.deb.
Would this work?

You are on the right track now that the right architecture is selected. I’ve personally not installed WT that way so cannot provide details.

I’ve run WT using the Docker image w/o issue for a couple years. I was familiar on installing Docker, starting/managing the docker image, and mapping the WT config folder to a USB drive (to avoid excessive SD writes and provide data persistence).

EDIT:
If you want to see a previous discussion about Docker see:

Hi all,

Happy new year to everyone, be safe and keep smiling.

@EricEdberg, I think I’ve finally installed the webthings-gateway-raspian-buster-armhf.deb, after many failed attempts, and many complete reinstalls of both Buster and webthings.
I know this isn’t what you have installed and running, but I could use your experience and advice on a few things. Heres where I’m at, at the moment and daren’t do anything eles before I know what to do next;

pi@raspberrypi:~/Downloads $  sudo dpkg -i webthings-gateway-raspbian-buster-armhf.deb
(Reading database ... 110034 files and directories currently installed.)
Preparing to unpack webthings-gateway-raspbian-buster-armhf.deb ...
Unpacking webthings-gateway (1.0.0-1) over (1.0.0-1) ...
Setting up webthings-gateway (1.0.0-1) ...
pi@raspberrypi:~/Downloads $ 

Firstly has this fully installed, where is it installed, how do I run it, and can I create a desktop icon?
Sorry for all the questions.

On some of the previous attempts I had it running of sorts, but wouldn’t detect any things, or when I closed webthings or rebooted I’d get nothing or can’t open that page.

Thank you for your guidance.

Hi Guy’s, @EricEdberg

I’ve found that webthings is now installed, but what do i do now and how do I get it running?

Sorry, I am a novice.

Hi guy’s, @EricEdberg,

Has no one else done this?

I don’ see anything in the build literature on how to open or run Webthigs once manually installed.

I’d be grateful for some help.

I would have assume that one of the legacy WebThings developers would have commented by now with at least a URL to related article showing how to manually start WebThings OR a warning not to attempt this feat unless your an experienced developer.

Note that attempting to manually start WT in an unsupported manner is not the best idea for newby users. I’m just slightly above a newby myself.

Anyway, I was bored, and just reviewed how Docker starts the WT gateway.

See: https://github.com/WebThingsIO/gateway-docker/blob/master/init.sh

It executes “node” to run “run-app.sh” (see url above)

I wonder if there is an “init.sh” somewhere in your installation that you could execute?

I think there’s a misconception here that WebThings is a desktop application which can be launched, it can’t. It’s a headless service which runs in the background and serves a web interface via an HTTP server.

I’m afraid I don’t use the Debian package and it currently doesn’t have a maintainer, but it looks to me like it includes a systemd unit file which runs /usr/bin/webthings-gateway on startup (i.e. it should run automatically).

If you’re running a graphical desktop on the same Raspberry Pi, have you tried loading http://localhost or http://localhost:8080 in a web browser?