安装Node.js – 使用Brew vs手动pipe理的优缺点

所以我正在寻找一些关于pipe理已经手动安装的使用自制软件的node.js软件包的优缺点。 除了使用brew来pipe理所有东西(而不是使用nvm来保持节点更新)之外,有没有什么实际的问题或潜在的冲突要通过手动pipe理brew和其他东西来解决。 (或通过npm,nvm等?)

我的应用程序解释器,如node.js(或Python或ruby等)的情况是:

  • 我有很多项目,有时几十个
  • 每个项目都是适度或紧密耦合到一个特定的解释器版本
    • 例如,需要节点v0.8.x或v0.10.24
  • 在系统上安装这些解释器会促进跨项目的耦合,所以我升级了节点,因为project8已经准备好升级并且project3中断了。

鉴于这些限制,我为每个项目安装了解释器,因为稳定性和解耦对于我来说比其他因素(如减less磁盘空间要求)更重要。

自制软件非常适合像aggit等项目不可知的工具,以及像postgresql,mysql或mongodb等相对稳定的工具。 但对于实际的语言运行时,耦合太紧,所以我不使用自制软件。

安装节点只是下载和解压tar档案,老实说,你不需要花哨的工具。 但是,我确实有一个名为wallah的项目,可以帮助解决这个问题。 你也可以看看nvm和envirius

要更新npm本身,您需要运行npm update npm -g-g代表全局。

知道如果你想更新系统上安装的全局包,你可以运行npm update -g

如果在运行npm update时不添加-g ,它将尝试更新本地节点程序包(也称为当前目录$PWD )。 要查看本地目录中是否安装了任何软件包,可以运行npm list ,如果没有安装,将会返回以下内容

 /your/current/directory/ └── (empty) 

如果你在那个文件夹中有节点包,你会看到类似的东西。 (注意:这是我运行npm list -g时返回的结果)

 /usr/local/lib └─┬ npm@1.4.7 ├── abbrev@1.0.4 ├── ansi@0.2.1 ├── ... 

您可能还想运行brew update && brew upgrade && brew doctor以确保一切都是最新的。

我对初始问题的build议是使用brew因为从长远来看,它会为您节省很多麻烦,因为它几乎可以pipe理您在计算机上安装的所有内容。 看看这个https://github.com/nicolashery/mac-dev-setup看看他们如何设置他们的开发电脑。

确保你看看这个https://github.com/phinze/homebrew-cask,这样你就可以通&#x8FC7;brew cask <app you want>安装应用brew cask <app you want>

使用brew的最大的原因是它同时安装了nodejs和npm,它使用$(brew --prefix)path,但仍然在/usr/local/有自己的位置。 如果您通过软件包安装来安装,您仍将使用所有相同的命令。 但是,实际上可以通过运行brew uninstall node来卸载节点和npm,而使用其他安装方式无法完成。

希望这可以帮助。

PS:如果你已经通过另一种方法安装了节点,那么sudo chown $USER /usr/local/*是你的朋友。 所有这一切都允许读/写访问/usr/local/所有文件夹和文件,只需要修复brew的链接即可。

如果通过Brew安装,有些人报告npm update本身不起作用(npm不能更新npm)。

我会build议手动安装,因为NPM将pipe理node.js更新和包,而Brew将仅pipe理node.js + npm而不是模块。 另外Brew在更新版本中经常落后。

以下是自制软件比手动安装节点js的一些优点或优点

  1. 通过安装程序安装节点时,需要使用sudo权限才能正确安装或取消安装软件包。 sudo让安装程序将文件放置在只能由pipe理员访问的文件系统区域中。 Homebrew的一个好处就是它不需要访问计算机上只有pipe理员的区域才能安装NodeJS
  2. 在通过安装程序安装Node之后,您必须将节点可执行文件的path添加到系统$ PATH.where,就像homebrew一样,它将负责完成任务。

开箱即用的优势之一是它可以帮助networking开发人员安装一些缺lessMac的软件包。