【问题标题】:npm install fails on a vagrant VM with debian 7.8 and postgres 9.3npm install 在带有 debian 7.8 和 postgres 9.3 的 vagrant VM 上失败
【发布时间】:2015-08-21 23:22:36
【问题描述】:

我需要在我的本地 mac 机器上使用 vagrant 重现具有特定(旧)版本的生产节点环境,当我运行 npm install 时它总是失败并出现以下错误:

  • 可选的 dep 无法继续 fsevents@0.3.6
  • 可选的 dep 失败,继续 readable-stream@1.1.13
  • 可选的 dep 失败,继续 imagemin-xx
  • EEXIST,打开 '/root/.npm/0ae333bd-t-npm-inherits-2-0-1-package-tgz.lock'
    文件存在:/root/.npm/0ae333bd-t-npm-inherits-2-0-1-package-tgz.lock 将其移开,然后重试。

我尝试了很多事情都没有成功:

  • npm install --no-bin-links
  • sudo npm install
  • npm 缓存清理
  • rm -r 节点模块
  • rm -r /root/.npm/

我无法弄清楚我做错了什么以及原因是什么......

欢迎任何关于我做错了什么的想法或一些建议。谢谢。

这是我的环境详细信息:

  • 操作系统:Debian 7.8
  • 节点:v0.10.36
  • npm: 1.4.28
  • PostgreSql : 9.3.6
  • PostGis:2.1
  • git:1.7.10.4
  • 红宝石:1.9.3

我的 vagrant 项目中有 2 个目录:

  • www:包含我的应用程序
  • 配置:包含包列表和数据库转储

我的流浪档案:

Vagrant.configure(2) do |config|
    config.vm.box = "puppetlabs/debian-7.8-64-puppet"
    config.vm.hostname = "ppld-preprod"
    config.vm.provision "shell", path: "provision.sh"

    config.vm.network "forwarded_port", guest: 80, host: 8999

    config.vm.synced_folder "./", "/vagrant", disabled: true
    config.vm.synced_folder "www", "/vagrant/www"
    config.vm.synced_folder "config", "/vagrant/config"
end 

我的配置文件:

apt-get -y update

dpkg --set-selections < /config/packages_list
apt-get -y -u dselect-upgrade

wget http://nodejs.org/dist/v0.10.36/node-v0.10.36.tar.gz
tar xfz node-v0.10.36.tar.gz
cd node-v0.10.36
./configure
make    

make install

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

sudo apt-get -y install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

apt-get -y update

sudo apt-get -y install postgresql-9.3-postgis-2.1
sudo apt-get -y install postgresql-server-dev-9.3

sudo apt-get -y install git

sudo chown -R $(whoami) "/vagrant/"
sudo chmod -R 777 /vagrant/

cd /vagrant/www/ppld/
sudo npm install

【问题讨论】:

    标签: node.js npm debian vagrant postgresql-9.3


    【解决方案1】:

    你的问题很奇怪,你能把你的 npm 更新到版本 2+ 吗?

    npm update -g npm

    【讨论】:

    • 我实际上无法更新 npm...好吧,我可以检查它是否能解决问题,但我的想法是拥有一个与生产环境相同的环境,并且应用程序在生产环境中运行良好
    • 对于您的问题,我只看到您清空的损坏的缓存或同时运行的 2 个 npm。 NPM 更正了 v2 中的一系列问题,并且由于它仅在安装过程中使用,因此不会对您的测试产生任何影响。你在用收缩包装吗?
    • 不,我没有使用收缩包装...你是对的,npm update 确实解决了问题(它将 npm 更新到 2.11.1)。我将使用 npm 版本 1.4.28 再次尝试并检查 2 npm 是否正在运行
    • 如果您想要与生产环境完全相同的环境,则应使用收缩包装,因为您的依赖项和子依赖项在两个环境中都不相同。
    猜你喜欢
    • 1970-01-01
    • 2015-09-19
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    相关资源
    最近更新 更多