You are not logged in.
I tried to upgrade the system but pacman reported the package conflict.
sudo pacman -Syyuu
:: Synchronizing package databases...
core 155.1 KiB 2.07 MiB/s 00:00 [################################################################] 100%
extra 1715.1 KiB 12.9 MiB/s 00:00 [################################################################] 100%
community 6.6 MiB 14.3 MiB/s 00:00 [################################################################] 100%
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
warning: removing 'nodejs' from target list because it conflicts with 'nodejs-lts-gallium'
:: nodejs-lts-gallium and nodejs are in conflict. Remove nodejs? [y/N] N
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: nodejs-lts-gallium and nodejs are in conflict
I don't understand why pacman try to install 'nodejs-lts-gallium'.
Should I replace 'nodejs' with 'nodejs-lts-gallium'?
What should I do if I wanna stick to 'nodejs'?
Offline
Looking at https://archlinux.org/packages/communit … s-gallium/ there's one package with a runtime dep on nodejs-lts-gallium specifically :
apm (required by atom ).
Is apm installed in your system ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Looking at https://archlinux.org/packages/communit … s-gallium/ there's one package with a runtime dep on nodejs-lts-gallium specifically :
apm (required by atom ).
Is apm installed in your system ?
Yes! apm is installed for atom in my system.
Thanks for your help.
pacman -Qii apm
Name : apm
Version : 2.6.4-3
Description : Atom package manager
Architecture : x86_64
URL : https://github.com/atom/apm
Licenses : MIT
Groups : None
Provides : nodejs-atom-package-manager
Depends On : libsecret nodejs>=10 npm python
Optional Deps : None
Required By : atom
Optional For : None
Conflicts With : nodejs-atom-package-manager
Replaces : nodejs-atom-package-manager
Installed Size : 31.93 MiB
Build Date : Thu 21 Oct 2021 08:43:45 AM KST
Install Date : Fri 03 Dec 2021 03:14:40 PM KST
Install Reason : Installed as a dependency for another package
Install Script : No
Validated By : Signature
Backup Files :
(none)
Is there any best practice or approach to point out the dependent package (in this case 'apm') for none installed package ('nodejs-lts-gallium') via command line?
I'm poor at this kind of dependency problem.
Offline
pacman-contrib has several useful cli utils one fo which is pactree .
I started with
$ pactree --reverse --sync --depth 1 nodejs-lts-gallium
That command does list apm but since nodejs-lts-gallium provides nodejs it also lists anything in repos that depends on nodejs .
If i had apm installed, I could have used checkupdates (also from pacman-contrib) to try to narrow down the list.
I used the website instead and was lucky only one package explicilty depends on nodejs-lts-gallium .
Should I replace 'nodejs' with 'nodejs-lts-gallium'?
What should I do if I wanna stick to 'nodejs'?
currently atom is the only package that depends on apm and apm is the only package that depends on nodejs-lts-gallium.
Which is more important to you : atom or nodejs ?
Welcome to archlinux forums.
Last edited by Lone_Wolf (2022-04-01 09:56:31)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
The conflict seems to be that Atom needs apm to manage its plugins. So, atom needs nodejs AND apm, but apm needs nodejs-lts-gallium. Thus impossible for a full install of atom?
https://wiki.archlinux.org/title/Atom_( … ot_working
Last edited by abeowitz (2022-04-02 19:52:31)
Offline
The conflict seems to be that Atom needs apm to manage its plugins. So, atom needs nodejs AND apm, but apm needs nodejs-lts-gallium. Thus impossible for a full install of atom?
Is apm broken on your system with nodejs-lts-gallium? You could rebuild apm with the dependency changed to 'nodejs>=16'.
Offline
You're making WAY too much of this. Why not just answer 'Y' and let pacman do it's thing?
Offline
SCIMMIA, THIS is why we are IGNORING the pacman recommendation. Did you read the link or try to understand the problem? I hate reading through useless noise when looking for a solution to a problem....
https://wiki.archlinux.org/title/Atom_( … ot_working
Package Manager not working
It has been reported by some users that having an LTS version of node.js can break the package manager, some packages request an LTS version of nodejs so it is possible for a user to inadvertently change versions. see [1].
This can be rectified by installing nodejs, which should detect the conflict between the stable and LTS versions and then remove the LTS version.
FWIW, I used flatpak to install Atom, and had to reinstall my packages and environment, projects, etc. Inconvenient, but OK for now.
Last edited by abeowitz (2022-04-03 07:33:01)
Offline
abeowitz wrote:The conflict seems to be that Atom needs apm to manage its plugins. So, atom needs nodejs AND apm, but apm needs nodejs-lts-gallium. Thus impossible for a full install of atom?
Is apm broken on your system with nodejs-lts-gallium? You could rebuild apm with the dependency changed to 'nodejs>=16'.
Yes, Atom's package manager freezes when I list packages. Deprecation warning, too.
Thanks, that sounds like a possible solution, but I don't feel like managing/rebuilding nodejs each time it gets updated.
And with the --no-sandbox work around and PlatformIO strongly suggesting I migrate to VSCode, I may do just that... sigh...
Last edited by abeowitz (2022-04-03 07:42:10)
Offline
I rebuilt an updated atom with electron 11 which stopped the GPU thread crashing requiring the no sandbox work around. https://bugs.archlinux.org/task/73957#c … 31contains the changes I made.
Edit:
vscode has the resources to keep pace with electron releases cycles. atom with a single developer and the electron release interval being halved I am not optimistic about.
Last edited by loqs (2022-04-03 07:53:40)
Offline
I rebuilt an updated atom with electron 11 which stopped the GPU thread crashing requiring the no sandbox work around. https://bugs.archlinux.org/task/73957#c … 31contains the changes I made.
Edit:
vscode has the resources to keep pace with electron releases cycles. atom with a single developer and the electron release interval being halved I am not optimistic about.
I was tempted to ask about the state of Atom. Not easy to keep up with the shifting sands that is Linux & open source.
I will try your diffs tomorrow, just to honor your hard work. You have an impressive and useful post history. Thanks!
(erg, been a long time since I patched a pkgbuild, lol)
Offline
Here is an updated diff for atom against the current unreleased PKGBUILD. I did not change it from nodejs-lts-gallium but you should only need to change one reference first in apm then in atom.
diff --git a/trunk/PKGBUILD b/trunk/PKGBUILD
index 0864e69..fc9e1bb 100644
--- a/trunk/PKGBUILD
+++ b/trunk/PKGBUILD
@@ -48,9 +48,8 @@ sha256sums=('8fb62ee3aeb466d8a75fb3fd467b96836a4f2f9c594d1b701f9dcf8df12587f8'
'08ae0c93b5ec7eb7d90c65d5d2adbaca538482fba902ed1f8414024db0d21854'
'5e6e05fe09642e4a18d6c44764fb18498460b53b285420b5acc6a3622e9dc6d2')
-_electron_version=$(< /usr/lib/$_electron/version)
-
prepare() {
+ _electron_version=$(< /usr/lib/$_electron/version)
cd "$_archive"
patch -Np1 -i ../fix-$pkgname-sh.patch
patch -Np1 -i <(sed -e "s/@ELECTRON@/$_electron/" ../use-system-electron.patch)
@@ -59,15 +58,19 @@ prepare() {
patch -Np1 -i ../fix-restart.patch
patch -Np1 -i ../node-env-production.patch
patch -Np1 -i ../no-unsafe-eval-warning.patch
+}
- rm {,script/}package-lock.json
- set -x
+build() {
+ _electron_version=$(< /usr/lib/$_electron/version)
+ cd "$_archive"
+ CXXFLAGS="${CXXFLAGS/ -fexceptions/}"
env \
ATOM_RESOURCE_PATH="$PWD" \
npm_config_build_from_source=true \
npm_config_target=$_electron_version \
- apm install --cache "$srcdir/npm-cache"
+ GYP_DEFINES="openssl_fips=" \
+ apm install
# Use system ctags
pushd node_modules/symbols-view
@@ -85,25 +88,17 @@ prepare() {
# build/Release/git.node: undefined symbol: git_net_url_is_default_port
pushd node_modules/git-utils
patch -Np1 -i "$srcdir/git-utils.patch"
- popd
-
- pushd script
- npm install --cache "$srcdir/npm-cache"
-}
-
-build() {
- cd "$_archive"
- set -x
- pushd node_modules/git-utils
env \
npm_config_disturl=https://electronjs.org/headers \
npm_config_runtime=$_electron \
npm_config_target=$_electron_version \
+ GYP_DEFINES="openssl_fips=" \
node-gyp rebuild
popd
pushd script
+ npm install
# Hack to avoid using Node > 12 (https://github.com/babel/babel/issues/11216)
# Set ELECTRON_VERSION (see use-system-electron.patch)
env \
Offline
SCIMMIA, THIS is why we are IGNORING the pacman recommendation. Did you read the link or try to understand the problem? I hate reading through useless noise when looking for a solution to a problem....
https://wiki.archlinux.org/title/Atom_( … ot_working
Package Manager not working
It has been reported by some users that having an LTS version of node.js can break the package manager, some packages request an LTS version of nodejs so it is possible for a user to inadvertently change versions. see [1].
This can be rectified by installing nodejs, which should detect the conflict between the stable and LTS versions and then remove the LTS version.
FWIW, I used flatpak to install Atom, and had to reinstall my packages and environment, projects, etc. Inconvenient, but OK for now.
That was put into the wiki when the current nodejs was version 14. The -lts release in question is 16, current is 17. Think there's a chance that info is out of date? Did you bother trying?
Offline
That was put into the wiki when the current nodejs was version 14. The -lts release in question is 16, current is 17. Think there's a chance that info is out of date? Did you bother trying?
Changed PKGBUILD from LTS to regular nodejs...
█▓▒░abe@abe█▓▒░ Sun Apr 03 05:20:08pm
~/pkgbuild/ asp export apm
==> exporting apm:trunk
█▓▒░abe@abe█▓▒░ Sun Apr 03 05:20:14pm
~/pkgbuild/ cd apm
█▓▒░abe@abe█▓▒░ Sun Apr 03 05:20:17pm
~/pkgbuild/apm/ ll
.rw-r--r-- abe abe 384 B Wed Mar 30 04:01:37 2022 apm.js
.rw-r--r-- abe abe 321 B Wed Mar 30 04:01:37 2022 git-utils.patch
.rw-r--r-- abe abe 769 B Wed Mar 30 04:01:37 2022 no-scripts.patch
.rw-r--r-- abe abe 3.9 KB Wed Mar 30 04:01:37 2022 PKGBUILD
█▓▒░abe@abe█▓▒░ Sun Apr 03 05:20:18pm
~/pkgbuild/apm/ micro PKGBUILD
█▓▒░abe@abe█▓▒░ Sun Apr 03 05:21:38pm
~/pkgbuild/apm/ makepkg
==> Making package: apm 2.6.5-2 (Sun 03 Apr 2022 05:21:44 PM PDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Downloading apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 150 100 150 0 0 787 0 --:--:-- --:--:-- --:--:-- 789
100 47.1M 0 47.1M 0 0 6660k 0 --:--:-- 0:00:07 --:--:-- 7246k
-> Found apm.js
-> Found no-scripts.patch
==> Validating source files with sha512sums...
apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67.tar.gz ... Passed
apm.js ... Passed
no-scripts.patch ... Passed
==> Extracting sources...
-> Extracting apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67.tar.gz with bsdtar
==> Starting prepare()...
patching file package.json
npm WARN old lockfile
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile
npm WARN deprecated xmldom@0.1.27: Deprecated due to CVE-2021-21366 resolved in 0.5.0
npm notice
npm notice New minor version of npm available! 8.5.5 -> 8.6.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.6.0
npm notice Run npm install -g npm@8.6.0 to update!
npm notice
npm ERR! semver.simplifyRange is not a function
npm ERR! A complete log of this run can be found in:
npm ERR! /home/abe/pkgbuild/apm/src/npm-cache/_logs/2022-04-04T00_21_52_452Z-debug-0.log
==> ERROR: A failure occurred in prepare().
Aborting...
█▓▒░abe@abe█▓▒░ Sun Apr 03 05:23:03pm
~/pkgbuild/apm/ sudo npm install -g npm@8.6.0
changed 29 packages, and audited 201 packages in 2s
10 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 8.5.5 -> 8.6.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.6.0
npm notice Run npm install -g npm@8.6.0 to update!
npm notice
█▓▒░abe@abe█▓▒░ Sun Apr 03 05:23:22pm
~/pkgbuild/apm/ makepkg
==> Making package: apm 2.6.5-2 (Sun 03 Apr 2022 05:23:27 PM PDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67.tar.gz
-> Found apm.js
-> Found no-scripts.patch
==> Validating source files with sha512sums...
apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67.tar.gz ... Passed
apm.js ... Passed
no-scripts.patch ... Passed
==> Extracting sources...
-> Extracting apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67.tar.gz with bsdtar
==> Starting prepare()...
patching file package.json
npm WARN old lockfile
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.4.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated mkdirp@0.3.5: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated mkdirp@0.3.5: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated coffee-script@1.12.7: CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
npm WARN deprecated coffee-script@1.11.1: CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
npm WARN deprecated coffee-script@1.12.7: CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
npm WARN deprecated coffee-script@1.8.0: CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
npm ERR! code 7
npm ERR! path /home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/git-utils
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@5.1.1
npm ERR! gyp info using node@16.14.2 | linux | x64
npm ERR! gyp info find Python using Python version 3.10.4 found at "/usr/bin/python"
npm ERR! gyp ERR! UNCAUGHT EXCEPTION
npm ERR! gyp ERR! stack Error: Cannot find module './pubsuffix-psl'
npm ERR! gyp ERR! stack Require stack:
npm ERR! gyp ERR! stack - /home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/tough-cookie/lib/cookie.js
npm ERR! gyp ERR! stack - /home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/request/lib/cookies.js
npm ERR! gyp ERR! stack - /home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/request/index.js
npm ERR! gyp ERR! stack - /home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/node-gyp/lib/install.js
npm ERR! gyp ERR! stack - /home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/node-gyp/lib/node-gyp.js
npm ERR! gyp ERR! stack - /home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/node-gyp/bin/node-gyp.js
npm ERR! gyp ERR! stack at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
npm ERR! gyp ERR! stack at Function.Module._load (node:internal/modules/cjs/loader:778:27)
npm ERR! gyp ERR! stack at Module.require (node:internal/modules/cjs/loader:1005:19)
npm ERR! gyp ERR! stack at require (node:internal/modules/cjs/helpers:102:18)
npm ERR! gyp ERR! stack at Object.<anonymous> (/home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/tough-cookie/lib/cookie.js:35:17)
npm ERR! gyp ERR! stack at Module._compile (node:internal/modules/cjs/loader:1103:14)
npm ERR! gyp ERR! stack at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
npm ERR! gyp ERR! stack at Module.load (node:internal/modules/cjs/loader:981:32)
npm ERR! gyp ERR! stack at Function.Module._load (node:internal/modules/cjs/loader:822:12)
npm ERR! gyp ERR! stack at Module.require (node:internal/modules/cjs/loader:1005:19)
npm ERR! gyp ERR! System Linux 5.17.1-arch1-1
npm ERR! gyp ERR! command "/usr/bin/node" "/home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/.bin/node-gyp" "rebuild"
npm ERR! gyp ERR! cwd /home/abe/pkgbuild/apm/src/apm-ade8fbe124b18f5949a6b20b8e02a551d5405d67/node_modules/git-utils
npm ERR! gyp ERR! node -v v16.14.2
npm ERR! gyp ERR! node-gyp -v v5.1.1
npm ERR! gyp ERR! Node-gyp failed to build your package.
npm ERR! gyp ERR! Try to update npm and/or node-gyp and if it does not help file an issue with the package author.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/abe/pkgbuild/apm/src/npm-cache/_logs/2022-04-04T00_23_27_955Z-debug-0.log
==> ERROR: A failure occurred in prepare().
Aborting...
Successfully attempted patches as linked above, but builds fail.
Too complicated to debug. I have no clue about js environments/libraries/dependencies.
Giving up. Using flatpak Atom, considering vscode with PlatformIO...
Still, Thanks for the info/help.
Offline
smh
So the answer to my question of "Did you bother trying?" is 'no'. Seriously, people are overcomplicating this to a ridiculous extreme.
Offline
So the answer to my question of "Did you bother trying?" is 'no'. Seriously, people are overcomplicating this to a ridiculous extreme.
Rebuilt apm and atom worked for me with nodejs from a very superficial test.
Offline
And they would both work as-packaged with nodejs-lts-gallium
Offline
HOWTO: install latest atom/apm AND nodejs (v17.X) at the same time
Using remakepkg, I replace nodejs-lts-gallium by nodejs in latest apm package dependencies.
In a REPKGBUILD file I wrote the following:
remove-depend nodejs-lts-gallium
add-depend nodejs
Then I apply it like this:
# repkg -i ./apm-2.6.5-2-x86_64.pkg.tar.zst -r REPKGBUILD
>>> Removing dependency nodejs-lts-gallium
>>> Adding dependency nodejs
>>> Adding provision apm=2.6.5-2
>>> Successfully created /root/apm-2.6.5-2.1-x86_64.pkg.tar.xz
Finally I install it with pacman -U, then I was able to replace nodejs-lts-gallium by regular nodejs using pacman -S nodejs and agree the replacement.
If you install this modified apm package while nodejs v17.X is installed on your system, you are probably free to go.
But if you install it while nodejs-lts-gallium is installed on your system, there is still a last problem to solve: apm is using js packages built against nodejs v16.X while you are now using v17.X.
Fortunately, all you have to do is run npm i (or yarn, as you prefer) in /usr/lib/node_modules/atom-package-manager then remove the produced .lock file.
After that, atom and apm are perfectly working with the latest nodejs version!
So, at the end, all we need is someone with write access on community repository to simply replace nodejs-lts-gallium by nodejs in the latest apm package dependencies
Last edited by M1CK431 (2022-04-07 22:17:42)
Offline
I had the same problem. After cloning & installing remakepkg, I followed M1CK431's instructions and it went through. Thank you.
Offline