Hi all, I'm using npm to build an application (tryton-sao, the web client for Tryton ERP) and it fails when run as a regular user because of being unable to create a sub-directory in /tmp/, although the permissions on /tmp look ok to me. Running npm as root using sudo successfully completes, although npm issues warnings that using sudo is not necessary, not recommended, and that I should fix my system.
From my notes, I was able to successfully run npm as a regular user in May 2022 (FreeBSD-13.0), and I first found I needed to run npm using sudo in Feb 2024 (FreeBSD-14.0)
Can anyone point me towards the likely cause and solution? I'm sure it will be obvious in hindsight. TIA!
System
Permissions on /tmp
Failure running npm as regular user
Success running npm using sudo
From my notes, I was able to successfully run npm as a regular user in May 2022 (FreeBSD-13.0), and I first found I needed to run npm using sudo in Feb 2024 (FreeBSD-14.0)
Can anyone point me towards the likely cause and solution? I'm sure it will be obvious in hindsight. TIA!
System
Code:
dale@whizzer:~ % uname -a
FreeBSD whizzer 14.0-RELEASE-p6 FreeBSD 14.0-RELEASE-p6 #0: Tue Mar 26 20:26:20 UTC 2024 root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
dale@whizzer:~ % npm --version
10.5.1
dale@whizzer:~ %
Permissions on /tmp
Code:
dale@whizzer:~ % ll -d /tmp
drwxrwxrwt 86 root wheel 1000 Jun 6 08:08 /tmp/
Failure running npm as regular user
Code:
[tryton@whizzer ~/trytond/sao]$ npm install --production --legacy-peer-deps
npm WARN config production Use `--omit=dev` instead.
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
> tryton-sao@7.0.11 postinstall
> npx bower install
bower bootstrap#^3.3.7 cached https://github.com/twbs/bootstrap.git#3.4.1
bower bootstrap#^3.3.7 validate 3.4.1 against https://github.com/twbs/bootstrap.git#^3.3.7
bower qunit#^1.18 cached https://github.com/jquery/qunit.git#1.23.1
...<snip>...
bower Sortable#^1.8.4 resolve https://github.com/RubaXa/Sortable.git#^1.8.4
bower moment#^2.10 EACCES EACCES: permission denied, mkdir '/tmp/tryton/bower/673d4f049f0db3d188488f447477968a-75940-tGGj4Z'
Stack trace:
Error: EACCES: permission denied, mkdir '/tmp/tryton/bower/673d4f049f0db3d188488f447477968a-75940-tGGj4Z'
...<snip>...
[tryton@whizzer ~/trytond/sao]$
Success running npm using sudo
Code:
dale@whizzer:/home/tryton/trytond/sao % sudo npm install --production --legacy-peer-deps
npm WARN config production Use `--omit=dev` instead.
> tryton-sao@7.0.11 postinstall
> npx bower install
bower ESUDO Please do not run with sudo
Additional error details:
Since bower is a user command, there is no need to execute it with superuser permissions.
If you're having permission errors when using bower without sudo, please spend a few minutes learning more about how your system should work and make any necessary repairs.
http://www.joyent.com/blog/installing-node-and-npm
https://gist.github.com/isaacs/579814
You can however run a command with sudo using "--allow-root" option
bower jquery#^3 cached https://github.com/jquery/jquery-dist.git#3.7.1
bower jquery#^3 validate 3.7.1 against https://github.com/jquery/jquery-dist.git#^3
bower bootstrap#^3.3.7 cached https://github.com/twbs/bootstrap.git#3.4.1
...<snip>...
bootstrap#3.4.1 bower_components/bootstrap
└── jquery#3.7.1
jquery#3.7.1 bower_components/jquery
papaparse#5.4.1 bower_components/papaparse
c3#0.7.20 bower_components/c3
└── d3#5.16.0
gettext.js#0.7.0 bower_components/gettext.js
mousetrap#1.6.5 bower_components/mousetrap
moment#2.30.1 bower_components/moment
qunit#1.23.1 bower_components/qunit
Sortable#1.15.2 bower_components/Sortable
fullcalendar#3.10.5 bower_components/fullcalendar
├── jquery#3.7.1
└── moment#2.30.1
bootstrap-rtl-ondemand#3.3.4-ondemand bower_components/bootstrap-rtl-ondemand
└── bootstrap#3.4.1
d3#5.16.0 bower_components/d3
up to date, audited 137 packages in 5s
12 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 10.5.1 -> 10.8.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.8.1
npm notice Run npm install -g npm@10.8.1 to update!
npm notice
dale@whizzer:/home/tryton/trytond/sao %