Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Install node.js on fedora (23+).(v5.10.1)
#!/usr/bin/env bash
func_check_for_root() {
if [ ! $( id -u ) -eq 0 ]; then
echo "ERROR: $0 Must be run as root, Script terminating" ;exit 7
cd /usr/lib
if [[ ! -e "${NODE_FOLDER}" ]]; then
#install DevTools for NPM
dnf groupinstall -y 'Development Tools'
dnf install -y gcc-c++
# get node
wget ${NODE_URI}
# extract
tar xvf ${NODE_FILE}
# remove tar
rm ${NODE_FILE} -f
# install alternatives
update-alternatives --install /usr/bin/node node /usr/lib/${NODE_FOLDER}/bin/node ${NODE_INT_VERSION}
update-alternatives --install /usr/bin/npm npm /usr/lib/${NODE_FOLDER}/bin/npm ${NODE_INT_VERSION}
# update $PATH to make `npm install -g` visible
cat <<EOF >> /home/${SUDO_USER:-$USER}/.bashrc
# added by - NodeJs 'installer'
export PATH=\$PATH:/usr/lib/${NODE_FOLDER}/bin
echo Looks like node is already installed:
echo ""
update-alternatives --display node
Copy link

run this with:
wget -qO-|sudo bash

Copy link

jbrosan commented Nov 17, 2015

Hi trajakovic,

Thank you for posting this! I'm new to node.js and found this helpful. Could you possibly post something on setting permissions and exporting the paths for this for Fedora 23?

Thank you again, GREAT WORK!

Copy link

thanks for the tip

Copy link

lemming commented Feb 19, 2016

Looks like packages installed this way create wrong link to binary:

[root@localhost ~]# npm install -g browser-sync
/usr/lib/node-v5.6.0-linux-x64/bin/browser-sync -> /usr/lib/node-v5.6.0-linux-x64/lib/node_modules/browser-sync/bin/browser-sync.js

So you have to add /usr/lib/node-v5.6.0-linux-x64/bin to your $PATH in order to have browser-sync command working.

You can install Node.js v5 with RPM package though:

Copy link

Oh, honestly didn't have clue anyone would use this, it was more like note for myself.

@jbrosan - sorry for late reply
@lemming - you're right, i've updated script.

Copy link

ghost commented Jun 30, 2016

Thank you, great work!

Copy link

Thanks for this script. If you are interested I extended your work into an install script that accepts a command line option for the nodejs version number. And it now has command options for install, uninstall, and a path or removepath command to use as a normal user to add the PATH settings to the user's bashrc settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment