如何在Python虚拟环境中正确安装与Node.js兼容的最新版本的npm。

3

Ubuntu 16.04

我想要安装npm 5.4.2和node 8.7.0。也就是说,当我运行npm --version时,应该显示5.4.2,运行node --version时应该显示8.7.0

步骤1:

sudo apt install nodejs npm
sudo npm cache clean -f
sudo npm install -g n
sudo n stable

第二步:
(setup) vivek@vivek:~/PROJECT$ sudo npm install -g n
    /usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
    + n@2.1.8
    updated 1 package in 1.045s
    (setup) vivek@vivek:~/PROJECT$ sudo n stable

        install : node-v9.0.0
          mkdir : /usr/local/n/versions/node/9.0.0
          fetch : https://nodejs.org/dist/v9.0.0/node-v9.0.0-linux-x64.tar.gz
    ######################################################################## 100.0%
      installed : v9.0.0

步骤三:
(setup) vivek@vivek:~/PROJECT$  npm --version
3.5.2  

(setup) vivek@vivek:~/PROJECT$ sudo apt-get install npm
Reading package lists... Done
Building dependency tree
Reading state information... Done
npm is already the newest version (3.5.2-0ubuntu4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 

问题1:为什么安装3.5.2版本时会显示它是最新版本,而当前版本已经是5.x.x左右了?
问题2:为什么安装node v9.0.0时,它明显不兼容npm的当前发布版本?
(https://github.com/npm/npm/issues/19019)

到目前为止,我找到的解决方法是:

# Complete Un-install
sudo apt-get purge nodejs npm
sudo apt-get autoremove
sudo apt-get update



  # Fresh install
    sudo npm install -g npm
(setup) vivek@vivek:~/PROJECT$  npm --version
5.5.1  

第1步和第2步中运行相同的命令集,所有其他团队成员默认安装npm 5.4.2和node 8.7.0版本,但我没有。这让我很疯狂,因为错误的版本正在安装,并且它们不兼容。

更新:尝试https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs 

失败原因:

    curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
[sudo] password for vivek: 

## Installing the NodeSource Node.js v8.x repo...


## Populating apt-get cache...

+ apt-get update
Get:1 file:/var/cuda-repo-8-0-local-ga2  InRelease
Ign:1 file:/var/cuda-repo-8-0-local-ga2  InRelease
Get:2 file:/var/cuda-repo-8-0-local-ga2  Release [574 B]
Get:2 file:/var/cuda-repo-8-0-local-ga2  Release [574 B]
Hit:4 http://us.archive.ubuntu.com/ubuntu xenial InRelease                                                                                  
Ign:5 http://dl.google.com/linux/chrome/deb stable InRelease                                                                                                                          
Get:6 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]                                                                                                           
Hit:7 http://dl.google.com/linux/chrome/deb stable Release                                                                    
Get:8 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]                                
Hit:9 http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu xenial InRelease                                            
Get:11 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]                                                                  
Hit:12 https://download.docker.com/linux/ubuntu xenial InRelease                                                                               
Get:13 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [653 kB]                         
Get:14 http://us.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages [618 kB]                                                           
Get:15 http://us.archive.ubuntu.com/ubuntu xenial-updates/main Translation-en [274 kB]                                               
Get:16 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 DEP-11 Metadata [307 kB]                                          
Get:17 http://us.archive.ubuntu.com/ubuntu xenial-updates/main DEP-11 64x64 Icons [216 kB]                                               
Get:18 http://us.archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [8,076 B]                                       
Get:19 http://us.archive.ubuntu.com/ubuntu xenial-updates/restricted i386 Packages [8,068 B]                                        
Get:20 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [544 kB]                                         
Get:21 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe i386 Packages [517 kB]                                              
Get:22 http://security.ubuntu.com/ubuntu xenial-security/main amd64 DEP-11 Metadata [60.2 kB]                                          
Get:23 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe Translation-en [221 kB]                                                                
Get:24 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 DEP-11 Metadata [174 kB]                                              
Get:25 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe DEP-11 64x64 Icons [245 kB]                                                    
Get:26 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [16.2 kB]                                               
Get:27 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse i386 Packages [15.3 kB]                                               
Get:28 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 DEP-11 Metadata [5,888 B]                                        
Get:29 http://us.archive.ubuntu.com/ubuntu xenial-backports/main amd64 DEP-11 Metadata [3,328 B]                                                    
Get:30 http://us.archive.ubuntu.com/ubuntu xenial-backports/universe amd64 DEP-11 Metadata [4,588 B]                                                
Get:31 http://security.ubuntu.com/ubuntu xenial-security/main DEP-11 64x64 Icons [62.1 kB]                                                       
Get:32 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 DEP-11 Metadata [51.4 kB]                      
Get:33 http://security.ubuntu.com/ubuntu xenial-security/universe DEP-11 64x64 Icons [85.1 kB]                            
Ign:34 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial InRelease                                  
Ign:35 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial Release
Ign:36 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 Packages
Ign:37 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main i386 Packages
Ign:38 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main all Packages
Ign:39 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en_US
Ign:40 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en
Ign:41 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 DEP-11 Metadata
Ign:42 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main DEP-11 64x64 Icons
Ign:36 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 Packages
Ign:37 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main i386 Packages
Ign:38 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main all Packages
Ign:39 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en_US
Ign:40 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en
Ign:41 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 DEP-11 Metadata                                                                                                     
Ign:42 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main DEP-11 64x64 Icons                                                                                                        
Ign:36 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 Packages                                                                                                            
Ign:37 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main i386 Packages                                                                                                             
Ign:38 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main all Packages                                                                                                              
Ign:39 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en_US                                                                                                         
Ign:40 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en                                                                                                            
Ign:41 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 DEP-11 Metadata                                                                                                     
Ign:42 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main DEP-11 64x64 Icons                                                                                                        
Ign:36 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 Packages                                                                                                            
Ign:37 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main i386 Packages                                                                                                             
Ign:38 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main all Packages                                                                                                              
Ign:39 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en_US                                                                                                         
Ign:40 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en                                                                                                            
Ign:41 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 DEP-11 Metadata                                                                                                     
Ign:42 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main DEP-11 64x64 Icons                                                                                                        
Ign:36 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 Packages                                                                                                            
Ign:37 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main i386 Packages                                                                                                             
Ign:38 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main all Packages
Ign:39 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en_US
Ign:40 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en
Ign:41 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 DEP-11 Metadata
Ign:42 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main DEP-11 64x64 Icons
Err:36 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 Packages
  404  Not Found
Ign:37 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main i386 Packages
Ign:38 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main all Packages
Ign:39 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en_US
Ign:40 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main Translation-en
Ign:41 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main amd64 DEP-11 Metadata
Ign:42 http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial/main DEP-11 64x64 Icons
Fetched 4,395 kB in 17s (253 kB/s)
Reading package lists... Done
W: The repository 'http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch http://ppa.launchpad.net/pinta-maintainers/pinta-stable/ubuntu/dists/xenial/main/binary-amd64/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
Error executing command, exiting

你有哪些APT软件源? - OneCricketeer
我如何检查我拥有的apt存储库,这些存储库是安装在虚拟环境内还是在虚拟环境外部? - kRazzy R
@scorpiodawg,这里是https://docs.npmjs.com/getting-started/installing-npm-packages-globally。它说:“要升级,请运行:[sudo] npm install npm@latest -g”。我在第二步中正在执行类似的操作。那么,^符号与您的建议“npm update -g npm”有何不同? - kRazzy R
@scorpiodawg 我尝试了你的建议:sudo npm update -g npm 但它仍然显示版本为 3.5.2 - kRazzy R
1
Python与问题无关。Virtualenv未控制NPM。您是否阅读了如何在Ubuntu上安装Node的说明?https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions - OneCricketeer
显示剩余3条评论
1个回答

4

在完全删除先前安装留下的旧文件后,尝试使用以下内容。现在安装node的最佳方式是nvm,apt存在太多问题。

//Remove node again
sudo apt-get purge --auto-remove nodejs npm

//Remove any leftover files that gives version issues
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp /opt/local/bin/node opt/local/include/node /opt/local/lib/node_modules 

//Install nvm, this will install npm 5.4
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash

//To uninstall a node version 
//nvm uninstall <version>

nvm install 8.7.0

nvm use 8.7.0

//check with 
node -v
npm -v 

dpkg:警告:忽略删除未安装的nodejs的请求 dpkg:警告:忽略删除未安装的npm的请求,但是npm -v仍然显示5.5.1,node -v显示v9.0.0,请建议。 - kRazzy R
1
可能是之前使用的某个命令卸载了它。但现在应该可以工作了。 - Kalana Demel
在按照上述步骤操作后,如果我想卸载 nvm、npm 和 node,应该如何操作? - kRazzy R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接