I recently got handed a pretty decent Vista-era Lenovo laptop, which on inspection, turned out to have no hard disk in it. I invested $30 in a 250GB SATA disk, and decided I’d have a go at setting up Kali Linux just to check it out.
I’m very impressed. It’s well-put-together and well-documented, there’s a good IRC channel on freenode, and it’s got most of what I want in a development workstation.
I did run into one little problem setting some things up, though. Apparently, prior version 1.0.8, lsb_release reported a codename of “n/a”, which causes the nodesetup.sh script to barf. That was reported as fixed, but it seems to have regressed in the latest version, 1.0.9a.
After fooling around with a couple of candidates to fix the problem — and does anyone know the right way to fix this…? Ugly details below — I broke down and just hacked the setup script.
The core problem is that lsb_release -c -s
is returning “n/a”, and causing the script to decide that this isn’t a distro it knows how to support. Here’s the (stupid) fix.
First, pull down the setup script from the NodeJS site and save it to a file so we can patch it:
curl -sL https://deb.nodesource.com/setup > nodesetup.sh
Next, open nodesetup.sh in an editor and look for the following section:
check_alt "Linux Mint" "rebecca" "Ubuntu" "trusty" check_alt "Linux Mint" "qiana" "Ubuntu" "trusty" check_alt "Linux Mint" "maya" "Ubuntu" "precise" check_alt "elementaryOS" "luna" "Ubuntu" "precise" check_alt "elementaryOS" "freya" "Ubuntu" "trusty"
Edit it to all a line to the end as follows:
check_alt "Linux Mint" "rebecca" "Ubuntu" "trusty" check_alt "Linux Mint" "qiana" "Ubuntu" "trusty" check_alt "Linux Mint" "maya" "Ubuntu" "precise" check_alt "elementaryOS" "luna" "Ubuntu" "precise" check_alt "elementaryOS" "freya" "Ubuntu" "trusty" check_alt "Kali" "n/a" "Debian" "wheezy"
Now, pass the script to bash as intended. This will set up the repos correctly to get node.js and its dependencies as though you were running on a stock Debian “wheezy” system.
cat nodesetup.sh | bash -
It should complete without a problem. Now, you can install nodejs and npm:
apt-get install nodejs
Gory Details
I’m unclear on where the code name reported by lsb_release gets set up. A couple of candidates which didn’t work: attempting various edits to /etc/os-release
didn’t help nor did modifications /etc/dpkg/origins/default
which is an aliased for /etc/dpkg/origins/kali
. Anyway, it worked, nodes and npm are in and check out.