Choose a provider for nodejs<20

Hi ! I get this:

➜  ~ pamac update
Preparing...
==== AUTHENTICATING FOR org.manjaro.pamac.commit ====
Authentication is required to install, update, or remove packages
Authenticating as: sum
Password: 
==== AUTHENTICATION COMPLETE ====
Synchronisation des bases de données des paquets...
Actualisation de core.db...                                                     
Actualisation de extra.db...                                                    
Actualisation de community.db...                                                
Actualisation de multilib.db...                                                 
Choose a provider for nodejs<20:                                                
1:  nodejs-lts-gallium   16.20.2-1  extra
2:  nodejs-lts-hydrogen  18.18.0-1  extra

Enter a number (default=1): 

At this stage I have no nodejs-lts installed, but the 20 version

What should I do ?

You may have an AUR or third-party package that requires nodejs<20. Update only repo packages first:

pamac update --no-aur

Then try again and see what packages are left to update.

1 Like

Thank you for caring.

Seems not simple:

➜  ~ pamac update --no-aur                                             
Preparing...
==== AUTHENTICATING FOR org.manjaro.pamac.commit ====
Authentication is required to install, update, or remove packages
Authenticating as: sum
Password: 
==== AUTHENTICATION COMPLETE ====
Synchronisation des bases de données des paquets...
Choose a provider for nodejs<20:
1:  nodejs-lts-gallium   16.20.2-1  extra
2:  nodejs-lts-hydrogen  18.18.0-1  extra

Enter a number (default=1): 

Is there any different output using Pacman?

sudo pacman -Syu

Either way, we need to know what depends on nodejs to determine what program has the new requirement :

pacman -Qi nodejs | grep 'Required By\|Optional For'

Here you are:

➜  ~ pacman -Qi nodejs | grep 'Required By\|Optional For'
Required By     : babel-cli  babel-core  coffeescript  node-gyp  nodejs-emojione  nodejs-material-design-icons  nodejs-nativefier  nodejs-nopt  nodejs-yaml  npm  pnpm  semver  web-ext  yarn
Optional For    : None
➜  ~ 

Could this interfere ?

➜  ~ cat ~/.bashrc                                       
(...)

export PATH="$HOME/.gem/ruby/3.0.0/bin:$PATH"

# pnpm
export PNPM_HOME="/home/sum/.local/share/pnpm"
export PATH="$PNPM_HOME:$PATH"
# pnpm end
[ -d /home/linuxbrew/.linuxbrew ] && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
eval "$(rbenv init -)"
source ~/.profile
export PATH="/opt/homebrew/bin:$PATH"
export PATH=~/.npm-global/bin:$PATH
➜  ~ 
➜  ~ cat ~/.zshrc
ZSH=$HOME/.oh-my-zsh

# You can change the theme with another one from https://github.com/robbyrussell/oh-my-zsh/wiki/themes
ZSH_THEME="robbyrussell"

# Useful oh-my-zsh plugins for Le Wagon bootcamps
plugins=(git gitfast last-working-dir common-aliases zsh-syntax-highlighting history-substring-search ssh-agent)

# (macOS-only) Prevent Homebrew from reporting - https://github.com/Homebrew/brew/blob/master/docs/Analytics.md
# export HOMEBREW_NO_ANALYTICS=1

# Disable warning about insecure completion-dependent directories
ZSH_DISABLE_COMPFIX=true

# Actually load Oh-My-Zsh
source "${ZSH}/oh-my-zsh.sh"
unalias rm # No interactive rm by default (brought by plugins/common-aliases)
unalias lt # we need `lt` for https://github.com/localtunnel/localtunnel

# Load rbenv if installed (to manage your Ruby versions)
export PATH="${HOME}/.rbenv/bin:${PATH}" # Needed for Linux/WSL
type -a rbenv > /dev/null && eval "$(rbenv init -)"

# Load pyenv (to manage your Python versions)
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
type -a pyenv > /dev/null && eval "$(pyenv init -)" && eval "$(pyenv virtualenv-init - 2> /dev/null)" && RPROMPT+='[🐍 $(pyenv version-name)]'

# Load nvm (to manage your node versions)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

# Call `nvm use` automatically in a directory with a `.nvmrc` file
autoload -U add-zsh-hook
load-nvmrc() {
  if nvm -v &> /dev/null; then
    local node_version="$(nvm version)"
    local nvmrc_path="$(nvm_find_nvmrc)"

    if [ -n "$nvmrc_path" ]; then
      local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

      if [ "$nvmrc_node_version" = "N/A" ]; then
        nvm install
      elif [ "$nvmrc_node_version" != "$node_version" ]; then
        nvm use --silent
      fi
    elif [ "$node_version" != "$(nvm version default)" ]; then
      nvm use default --silent
    fi
  fi
}
type -a nvm > /dev/null && add-zsh-hook chpwd load-nvmrc
type -a nvm > /dev/null && load-nvmrc

# Rails and Ruby uses the local `bin` folder to store binstubs.
# So instead of running `bin/rails` like the doc says, just run `rails`
# Same for `./node_modules/.bin` and nodejs
export PATH="./bin:./node_modules/.bin:${PATH}:/usr/local/sbin"

# Store your own aliases in the ~/.aliases file and load the here.
[[ -f "$HOME/.aliases" ]] && source "$HOME/.aliases"

# Encoding stuff for the terminal
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

export BUNDLER_EDITOR=code
export EDITOR=code

# Set ipdb as the default Python debugger
export PYTHONBREAKPOINT=ipdb.set_trace
eval "$(rbenv init - zsh)"
PATH="${HOME}/.rbenv/shims:$PATH"

# pnpm
export PNPM_HOME="/home/sum/.local/share/pnpm"
export PATH="$PNPM_HOME:$PATH"
# pnpm end
# export NODE_OPTIONS=--openssl-legacy-provider

alias codecode="unset NODE_OPTIONS; code ."

export PATH="/opt/brew/bin:$PATH"
export PATH=~/.npm-global/bin:$PATH
➜  ~ 

Slightly off-topic but I see you still have the community repository, which was discontinued months ago.

1 Like

This package need an older version of nodejs. But maybe there are others, I only recognised this one.

1 Like

Yes, web-ext out of that list is the culprit:

❯ pacman -Si web-ext | grep 'Depends On'
Depends On      : nodejs>=16.0.0  nodejs<20

Notice it’s not required by anything in the repos.

1 Like

Thank you all, removed the culprit web-ext and all update rolled !

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.