title: Installing npm in Ubuntu
body: <p>I am truly struggling to install <code>npm</code>. I have installed the <code>nodejs</code> package successfully, but still my operating system <a href="https://en.wikipedia.org/wiki/Ubuntu_version_history#Ubuntu_15.10_.28Wily_Werewolf.29" rel="nofollow noreferrer">Ubuntu 15.10</a> (Wily Werewolf) doesn't recognize the <code>npm</code> command like it is shown below, even though after several update attempts with <code>sudo apt-get update</code>:</p>
  <pre class="lang-none prettyprint-override"><code>user@user-T420:~$ sudo apt-get install nodejs
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  nodejs is already the newest version.
  The following packages were automatically installed and are no longer required:
    authbind diffstat hardening-includes libapt-pkg-perl libarchive-zip-perl
    libbonobo2-0 libbonobo2-common libcamel-1.2-29 libclass-accessor-perl
    libclone-perl libedataserver-1.2-15 libemail-valid-perl libgles1-mesa
    libgnome2-0 libgnome2-bin libgnome2-common libidl-common libidl0
    libindicate5 libio-pty-perl libio-string-perl libipc-run-perl
    libnet-dns-perl libnet-domain-tld-perl libnet-ip-perl liborbit2
    libperlio-gzip-perl libpoppler19 libqt5x11extras5 libsdl-image1.2
    libtext-levenshtein-perl libtiff4 libva-drm1 libxcb-composite0 libxcb-xv0
    linux-headers-4.2.0-16 linux-headers-4.2.0-16-generic
    linux-image-4.2.0-16-generic linux-image-extra-4.2.0-16-generic patchutils
    t1utils vlc-plugin-notify vlc-plugin-samba
  Use 'apt-get autoremove' to remove them.
  0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
  user@user-T420:~$ npm -v
  The program 'npm' is currently not installed. You can install it by typing:
  sudo apt-get install npm
  
  user@user-T420:~$ sudo apt-get install npm
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  Some packages could not be installed. This may mean that you have
  requested an impossible situation or if you are using the unstable
  distribution that some required packages have not yet been created
  or been moved out of Incoming.
  The following information may help to resolve the situation:
  
  The following packages have unmet dependencies:
   npm : Depends: nodejs-dev but it is not going to be installed
  E: Unable to correct problems, you have held broken packages.
  
  user@user-T420:~$ sudo apt-get install nodejs-dev
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  Some packages could not be installed. This may mean that you have
  requested an impossible situation or if you are using the unstable
  distribution that some required packages have not yet been created
  or been moved out of Incoming.
  The following information may help to resolve the situation:
  
  The following packages have unmet dependencies:
   nodejs-dev : Depends: libssl-dev (&gt;= 1.0.0g) but it is not going to be installed
  E: Unable to correct problems, you have held broken packages.
  
  user@user-T420:~$ sudo apt-get install libssl-dev
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  Some packages could not be installed. This may mean that you have
  requested an impossible situation or if you are using the unstable
  distribution that some required packages have not yet been created
  or been moved out of Incoming.
  The following information may help to resolve the situation:
  
  The following packages have unmet dependencies:
   libssl-dev : Depends: libssl1.0.0 (= 1.0.1-4ubuntu5.36) but 1.0.2d-0ubuntu1.4 is to be installed
                Depends: zlib1g-dev but it is not going to be installed
                Recommends: libssl-doc but it is not going to be installed
  E: Unable to correct problems, you have held broken packages.
  
  user@user-T420:~$ sudo apt-get install zlib1g-dev
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  Some packages could not be installed. This may mean that you have
  requested an impossible situation or if you are using the unstable
  distribution that some required packages have not yet been created
  or been moved out of Incoming.
  The following information may help to resolve the situation:
  
  The following packages have unmet dependencies:
   zlib1g-dev : Depends: zlib1g (= 1:1.2.3.4.dfsg-3ubuntu4) but 1:1.2.8.dfsg-2ubuntu4 is to be installed
  E: Unable to correct problems, you have held broken packages.
  </code></pre>
  <p>It looks an infinite tree of dependencies. Is there a solution to fix it?</p>
  <p>If this would be of any help, here's my <em>sources.list</em> file:</p>
  <pre class="lang-none prettyprint-override"><code>#############################################################
  ############### OFFICIAL UBUNTU REPOSITORIES ################
  #############################################################
  
  ###### Ubuntu Main Repositories
  deb http://us.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
  deb-src http://us.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
  
  ###### Ubuntu Update Repos
  deb http://us.archive.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
  deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
  deb http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
  deb-src http://us.archive.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
  deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
  deb-src http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
  
  ###### Ubuntu Partner Repository
  deb http://archive.canonical.com/ubuntu precise partner
  deb-src http://archive.canonical.com/ubuntu precise partner
  
  ###### Ubuntu Extras Repository
  deb http://extras.ubuntu.com/ubuntu precise main
  deb-src http://extras.ubuntu.com/ubuntu precise main
  </code></pre>