0 info it worked if it ends with ok 1 verbose cli [ '/usr/local/bin/node', 1 verbose cli '/usr/local/bin/npm', 1 verbose cli 'install', 1 verbose cli 'max7219' ] 2 info using npm@2.14.7 3 info using node@v4.2.1 4 verbose install initial load of /home/pi/experiments/max7219/package.json 5 verbose readDependencies loading dependencies from /home/pi/experiments/max7219/package.json 6 silly cache add args [ 'max7219', null ] 7 verbose cache add spec max7219 8 silly cache add parsed spec Result { 8 silly cache add raw: 'max7219', 8 silly cache add scope: null, 8 silly cache add name: 'max7219', 8 silly cache add rawSpec: '', 8 silly cache add spec: '*', 8 silly cache add type: 'range' } 9 silly addNamed max7219@* 10 verbose addNamed "*" is a valid semver range for max7219 11 silly addNameRange { name: 'max7219', range: '*', hasData: false } 12 silly mapToRegistry name max7219 13 silly mapToRegistry using default registry 14 silly mapToRegistry registry https://registry.npmjs.org/ 15 silly mapToRegistry uri https://registry.npmjs.org/max7219 16 verbose addNameRange registry:https://registry.npmjs.org/max7219 not in flight; fetching 17 verbose request uri https://registry.npmjs.org/max7219 18 verbose request no auth needed 19 info attempt registry request try #1 at 20:44:58 20 verbose request id 6aa0c3cc29b44f21 21 verbose etag "CPQW5L8WUBTN2J9Q7PTJB2I09" 22 http request GET https://registry.npmjs.org/max7219 23 http 304 https://registry.npmjs.org/max7219 24 verbose headers { date: 'Tue, 19 Jan 2016 02:44:58 GMT', 24 verbose headers via: '1.1 varnish', 24 verbose headers 'cache-control': 'max-age=300', 24 verbose headers etag: '"CPQW5L8WUBTN2J9Q7PTJB2I09"', 24 verbose headers age: '240', 24 verbose headers connection: 'keep-alive', 24 verbose headers 'x-served-by': 'cache-ord1727-ORD', 24 verbose headers 'x-cache': 'HIT', 24 verbose headers 'x-cache-hits': '1', 24 verbose headers 'x-timer': 'S1453171498.636951,VS0,VE0', 24 verbose headers vary: 'Accept' } 25 silly get cb [ 304, 25 silly get { date: 'Tue, 19 Jan 2016 02:44:58 GMT', 25 silly get via: '1.1 varnish', 25 silly get 'cache-control': 'max-age=300', 25 silly get etag: '"CPQW5L8WUBTN2J9Q7PTJB2I09"', 25 silly get age: '240', 25 silly get connection: 'keep-alive', 25 silly get 'x-served-by': 'cache-ord1727-ORD', 25 silly get 'x-cache': 'HIT', 25 silly get 'x-cache-hits': '1', 25 silly get 'x-timer': 'S1453171498.636951,VS0,VE0', 25 silly get vary: 'Accept' } ] 26 verbose etag https://registry.npmjs.org/max7219 from cache 27 verbose get saving max7219 to /home/pi/.npm/registry.npmjs.org/max7219/.cache.json 28 silly addNameRange number 2 { name: 'max7219', range: '*', hasData: true } 29 silly addNameRange versions [ 'max7219', [ '1.0.0', '1.0.1' ] ] 30 silly addNamed max7219@1.0.1 31 verbose addNamed "1.0.1" is a plain semver version for max7219 32 silly cache afterAdd max7219@1.0.1 33 verbose afterAdd /home/pi/.npm/max7219/1.0.1/package/package.json not in flight; writing 34 verbose afterAdd /home/pi/.npm/max7219/1.0.1/package/package.json written 35 silly install resolved [ { name: 'max7219', 35 silly install resolved version: '1.0.1', 35 silly install resolved description: 'Abstraction for the MAX7219 display driver controller', 35 silly install resolved main: 'MAX7219.js', 35 silly install resolved dependencies: { spi: '~0.1.0' }, 35 silly install resolved devDependencies: {}, 35 silly install resolved scripts: { test: 'echo "Error: no test specified" && exit 1' }, 35 silly install resolved repository: 35 silly install resolved { type: 'git', 35 silly install resolved url: 'git+https://github.com/victorporof/MAX7219.js.git' }, 35 silly install resolved keywords: 35 silly install resolved [ 'hardware', 35 silly install resolved 'max7219', 35 silly install resolved 'display', 35 silly install resolved 'driver', 35 silly install resolved 'raspberrypi', 35 silly install resolved 'beaglebone', 35 silly install resolved 'black', 35 silly install resolved 'spi' ], 35 silly install resolved author: 35 silly install resolved { name: 'Victor Porof', 35 silly install resolved email: 'victor.porof@gmail.com', 35 silly install resolved url: 'https://github.com/victorporof' }, 35 silly install resolved license: 'MPL 2.0', 35 silly install resolved bugs: { url: 'https://github.com/victorporof/MAX7219.js/issues' }, 35 silly install resolved homepage: 'https://github.com/victorporof/MAX7219.js', 35 silly install resolved readme: 'MAX7219.js\n==========\n\nJavaScript abstraction for the MAX7219 display driver controller. Please read the datasheet for this chip [here](https://www.adafruit.com/datasheets/MAX7219.pdf).\n\n## How to use\nThe "digits and segments" language isn\'t dissolved away by the API, to make your life easier when wiring the controller. Obviously, you can think of them as "cathodes and anodes" respectively when using this library. Multiplexing and persistence of vision is handled by the MAX7219, you only need to turn anodes on or off. Here\'s a quick example:\n```javascript\nvar disp = new MAX7219("/dev/spidev1.0");\ndisp.setDecodeNone();\ndisp.setScanLimit(8);\ndisp.startup();\ndisp.setDigitSegments(0, [0, 0, 1, 1, 0, 1, 1, 1]);\ndisp.setDigitSegments(1, [0, 1, 0, 0, 1, 1, 1, 1]);\ndisp.setDigitSegments(2, [0, 0, 0, 0, 1, 1, 1, 0]);\ndisp.setDigitSegments(3, [0, 1, 1, 0, 0, 1, 1, 1]);\n```\n\nAlternatively, using the BCD code font decoding is supported. Here\'s how to set it up:\n```javascript\nvar disp = new MAX7219("/dev/spidev1.0");\ndisp.setDecodeAll();\ndisp.setScanLimit(8);\ndisp.startup();\ndisp.setDigitSymbol(0, "H");\ndisp.setDigitSymbol(1, "E");\ndisp.setDigitSymbol(2, "L");\ndisp.setDigitSymbol(3, "P");\n```\n\n## Prerequisites\n\nThe `node-spi` library is required. Get it from [here](https://github.com/RussTheAerialist/node-spi), or via `npm install spi`.\n\nYou\'ll also need to make sure SPI devices are enabled (and you have a reasonably up-to-date Linux kernel). Here\'s how you can check this:\n\nEnsure that the SPI driver is enabled:\n```\n$ dmesg | grep spi\n[ 3.769841] bcm2708_spi bcm2708_spi.0: master is unqueued, this is deprecated\n[ 3.793364] bcm2708_spi bcm2708_spi.0: SPI Controller at 0x20204000 (irq 80)\n```\nThe devices are successfully installed in /dev:\n```shell\n$ ls -l /dev/spi*\ncrw------- 1 root root 153, 0 Jan 1 2000 /dev/spidev1.0\ncrw------- 1 root root 153, 1 Jan 1 2000 /dev/spidev2.0\n```\n\n### Enabling SPI on the BeagleBone Black\n\nThe fastest way would be to use [the BeagleBone-SPI-UART library](https://github.com/victorporof/BeagleBone-SPI-UART).\n\nAlternatively, you\'re going to have to compile some device tree overlays. It\'s pretty easy, just follow the steps described [here](http://elinux.org/BeagleBone_Black_Enable_SPIDEV).\n\n### Enabling SPI on the Raspberry PI\n\nEasy as pie! Simply `sudo nano /etc/modprobe.d/raspi-blacklist.conf` and add a `#` character in front of the line `spi-bcm2708`. Use CTRL-X, then Y, then Return to save the file and exit. Reboot.\n\n## API\n\n* Constructor __**`MAX7219(device, count, callback)`**__\n\nInitializes an instance of the controller abstraction. The `device` argument is a string specifying the SPI device on which the controller is wired. For example, `"/dev/spidev1.0"`. The optional `count` argument specifies the total number of chips when several MAX7219s are daisy-chained.\n\n* __**`setActiveController(index)`**__\n\nWhen daisy-chaining MAX7219s, specifies which chip is currently controlled. The `index` parameter is a number identifying the chip to control. By default, the chip at index 0 is controlled.\n\n* __**`getActiveController(index)`**__\n\nReturns which chip is currently controlled.\n\n* __**`startup(callback)`**__\n\nSets this controller in normal operation mode. On initial power-up, all control registers are reset, the display is blanked, and the MAX7219 enters shutdown mode. This method sets the controller back in normal operation mode.\n\n* __**`shutdown(callback)`**__\n\nSets this controller in shutdown mode. When the MAX7219 is in shutdown mode, the scan oscillator is halted, all segment current sources are pulled to ground, and the display is blanked.\n\n* __**`startDisplayTest(callback)`**__\n\nSets this controller in display-test mode. Display-test mode turns all LEDs on by overriding, but not altering, all controls and digit registers (including the shutdown register).\n\n* __**`stopDisplayTest(callback)`**__\n\nSets this controller back into the previous operation mode.\n\n* __**`setDecodeMode(modes, callback)`**__\n\nSets this controller\'s decode mode, specifying how the segments controlled\nby the MAX7219 are set on/off. When no-decode is selected, data bits correspond to the segments directly. When decode mode is selected, certain symbols (only `0`-`9`, `E`, `H`, `L`, `P`, and `-`) are encoded in a specific way. This is useful for BCD 7 segment displays. The `modes` argument is an array of decode/no-decode modes for each digit. E.g., to set decode mode for digits 0–3 and no-decode for 4–7, modes would be `[1, 1, 1, 1, 0, 0, 0, 0]`.\n\n* __**`setDecodeNone(callback)`**__\n\nShortcut for specifying that all digits are in no-decode mode.\n\n* __**`setDecodeAll(callback)`**__\n\nShortcut for specifying that all digits are in decode mode.\n\n* __**`setDigitSegments(n, segments, callback)`**__\n\nSets each segment in a digit on/off.\n*For this to work properly, the digit should be in no-decode mode.* The segments are identified as follows:\n```\n _a_\n f| |b\n |_g_|\n | |\n e|___|c dp (decimal point)\n d *\n```\nThe first parameter, `n`, is the digit number, from 0 up to and including 7. The `segments` parameter is a list specifying whether segments are on and off. E.g., to specify `dp`, `c`, `d`, `e` and `g` on, and `a`, `b`, `f` off, segments would be `[1, 0, 0, 1, 1, 1, 0, 1]`, corresponding to the structure `[dp, a, b, c, d, e, f, g]`.\n\n* __**`setDigitSegmentsByte(byte, callback)`**__\n\nSame as `setDigitSegments`, but it takes a byte instead of an array of bits.\n\n* __**`setDigitSymbol(n, symbol, callback)`**__\n\nSets the symbol displayed in a digit.\n*For this to work properly, the digit should be in decode mode.* The first parameter, `n` is the digit number, from 0 up to and including 7. The `symbol` parameter is a string specifying the symbol do display: `"0"`..`"9"`, `"E"`, `"H"`, `"L"`, `"P"`, `"-"` or `" "`. The `dp` parameter is a boolean specifying whether the decimal point should be on or off.\n\n* __**`clearDisplay(callback)`**__\n\nSets all segments for all digits off. This is a shortcut for manually calling `setDigitSegments` or `setDigitSymbol` with the appropriate params. If a decode mode wasn\'t specifically set beforehand, no-decode mode is assumed.\n\n* __**`setDisplayIntensity(brightness, callback)`**__\n\nSets digital control of display brightness. The `brightnesss` parameter may be a number from 0 (dimmest) up to and including 15 (brightest).\n\n* __**`setScanLimit(limit, callback)`**__\n\nSets how many digits are displayed, from 1 digit to 8 digits. The `limit` parameter specifies the number of digits displayed, counting from first to last. E.g., to display only the first digit, limit would be 1. Another e.g., to display only digits 0, 1 and 2, limit would be 3.\n\n#### Callbacks\n\nAll methods that have a `callback` argument will invoke that function once the write to the SPI device finishes.\n\n## EOF\n\nThanks for reading. Happy multiplexing.\n', 35 silly install resolved readmeFilename: 'README.md', 35 silly install resolved _id: 'max7219@1.0.1', 35 silly install resolved dist: 35 silly install resolved { shasum: '4cc3810d0d2a0f28a5e74aef5d8629c0f2e9a2d7', 35 silly install resolved tarball: 'http://registry.npmjs.org/max7219/-/max7219-1.0.1.tgz' }, 35 silly install resolved _from: 'max7219@*', 35 silly install resolved _npmVersion: '1.3.22', 35 silly install resolved _npmUser: { name: 'victorporof', email: 'victor.porof@gmail.com' }, 35 silly install resolved maintainers: [ [Object] ], 35 silly install resolved directories: {}, 35 silly install resolved _shasum: '4cc3810d0d2a0f28a5e74aef5d8629c0f2e9a2d7', 35 silly install resolved _resolved: 'https://registry.npmjs.org/max7219/-/max7219-1.0.1.tgz' } ] 36 info install max7219@1.0.1 into /home/pi/experiments/max7219 37 info installOne max7219@1.0.1 38 verbose installOne of max7219 to /home/pi/experiments/max7219 not in flight; installing 39 verbose lock using /home/pi/.npm/_locks/max7219-824157aada65d412.lock for /home/pi/experiments/max7219/node_modules/max7219 40 silly install write writing max7219 1.0.1 to /home/pi/experiments/max7219/node_modules/max7219 41 verbose unbuild node_modules/max7219 42 silly gentlyRm /home/pi/experiments/max7219/node_modules/max7219 is being purged from base /home/pi/experiments/max7219 43 verbose gentlyRm don't care about contents; nuking /home/pi/experiments/max7219/node_modules/max7219 44 verbose tar unpack /home/pi/.npm/max7219/1.0.1/package.tgz 45 verbose tar unpacking to /home/pi/experiments/max7219/node_modules/max7219 46 silly gentlyRm /home/pi/experiments/max7219/node_modules/max7219 is being purged 47 verbose gentlyRm don't care about contents; nuking /home/pi/experiments/max7219/node_modules/max7219 48 silly gunzTarPerm modes [ '755', '644' ] 49 silly gunzTarPerm extractEntry package.json 50 silly gunzTarPerm extractEntry README.md 51 silly gunzTarPerm extractEntry LICENSE 52 silly gunzTarPerm extractEntry MAX7219.js 53 verbose write writing to /home/pi/experiments/max7219/node_modules/max7219/package.json 54 info preinstall max7219@1.0.1 55 verbose readDependencies loading dependencies from /home/pi/experiments/max7219/node_modules/max7219/package.json 56 silly prepareForInstallMany adding spi@~0.1.0 from max7219 dependencies 57 verbose readDependencies loading dependencies from /home/pi/experiments/max7219/node_modules/max7219/package.json 58 silly cache add args [ 'spi@~0.1.0', null ] 59 verbose cache add spec spi@~0.1.0 60 silly cache add parsed spec Result { 60 silly cache add raw: 'spi@~0.1.0', 60 silly cache add scope: null, 60 silly cache add name: 'spi', 60 silly cache add rawSpec: '~0.1.0', 60 silly cache add spec: '>=0.1.0 <0.2.0', 60 silly cache add type: 'range' } 61 silly addNamed spi@>=0.1.0 <0.2.0 62 verbose addNamed ">=0.1.0 <0.2.0" is a valid semver range for spi 63 silly addNameRange { name: 'spi', range: '>=0.1.0 <0.2.0', hasData: false } 64 silly mapToRegistry name spi 65 silly mapToRegistry using default registry 66 silly mapToRegistry registry https://registry.npmjs.org/ 67 silly mapToRegistry uri https://registry.npmjs.org/spi 68 verbose addNameRange registry:https://registry.npmjs.org/spi not in flight; fetching 69 verbose request uri https://registry.npmjs.org/spi 70 verbose request no auth needed 71 info attempt registry request try #1 at 20:44:59 72 verbose etag "EMFWTPSI5BYTMKWTS37ABOPVA" 73 http request GET https://registry.npmjs.org/spi 74 http 304 https://registry.npmjs.org/spi 75 verbose headers { date: 'Tue, 19 Jan 2016 02:44:59 GMT', 75 verbose headers via: '1.1 varnish', 75 verbose headers 'cache-control': 'max-age=300', 75 verbose headers etag: '"EMFWTPSI5BYTMKWTS37ABOPVA"', 75 verbose headers age: '0', 75 verbose headers connection: 'keep-alive', 75 verbose headers 'x-served-by': 'cache-ord1720-ORD', 75 verbose headers 'x-cache': 'HIT', 75 verbose headers 'x-cache-hits': '1', 75 verbose headers 'x-timer': 'S1453171499.816085,VS0,VE297', 75 verbose headers vary: 'Accept' } 76 silly get cb [ 304, 76 silly get { date: 'Tue, 19 Jan 2016 02:44:59 GMT', 76 silly get via: '1.1 varnish', 76 silly get 'cache-control': 'max-age=300', 76 silly get etag: '"EMFWTPSI5BYTMKWTS37ABOPVA"', 76 silly get age: '0', 76 silly get connection: 'keep-alive', 76 silly get 'x-served-by': 'cache-ord1720-ORD', 76 silly get 'x-cache': 'HIT', 76 silly get 'x-cache-hits': '1', 76 silly get 'x-timer': 'S1453171499.816085,VS0,VE297', 76 silly get vary: 'Accept' } ] 77 verbose etag https://registry.npmjs.org/spi from cache 78 verbose get saving spi to /home/pi/.npm/registry.npmjs.org/spi/.cache.json 79 silly addNameRange number 2 { name: 'spi', range: '>=0.1.0 <0.2.0', hasData: true } 80 silly addNameRange versions [ 'spi', [ '0.0.1', '0.1.0', '0.1.1', '0.1.2', '0.2.0' ] ] 81 silly addNamed spi@0.1.2 82 verbose addNamed "0.1.2" is a plain semver version for spi 83 silly cache afterAdd spi@0.1.2 84 verbose afterAdd /home/pi/.npm/spi/0.1.2/package/package.json not in flight; writing 85 verbose afterAdd /home/pi/.npm/spi/0.1.2/package/package.json written 86 silly install resolved [ { name: 'spi', 86 silly install resolved version: '0.1.2', 86 silly install resolved description: 'JS Interface for the SPI bus', 86 silly install resolved author: 86 silly install resolved { name: 'Russell Hay', 86 silly install resolved email: 'me@russellhay.com', 86 silly install resolved url: 'http://russellhay.com' }, 86 silly install resolved repository: 86 silly install resolved { type: 'git', 86 silly install resolved url: 'git://github.com/RussTheAerialist/node-spi.git' }, 86 silly install resolved main: './spi', 86 silly install resolved dependencies: { bindings: '*' }, 86 silly install resolved engines: { node: '0.6' }, 86 silly install resolved scripts: { install: 'node-gyp rebuild' }, 86 silly install resolved gypfile: true, 86 silly install resolved bugs: { url: 'https://github.com/RussTheAerialist/node-spi/issues' }, 86 silly install resolved homepage: 'https://github.com/RussTheAerialist/node-spi', 86 silly install resolved _id: 'spi@0.1.2', 86 silly install resolved dist: 86 silly install resolved { shasum: '3ca2f42f04bd271bc242609c2d16e687b2b826bf', 86 silly install resolved tarball: 'http://registry.npmjs.org/spi/-/spi-0.1.2.tgz' }, 86 silly install resolved _from: 'spi@>=0.1.0 <0.2.0', 86 silly install resolved _npmVersion: '1.3.21', 86 silly install resolved _npmUser: { name: 'rhay', email: 'russell.hay@gmail.com' }, 86 silly install resolved maintainers: [ [Object] ], 86 silly install resolved directories: {}, 86 silly install resolved _shasum: '3ca2f42f04bd271bc242609c2d16e687b2b826bf', 86 silly install resolved _resolved: 'https://registry.npmjs.org/spi/-/spi-0.1.2.tgz', 86 silly install resolved readme: 'ERROR: No README data found!' } ] 87 info install spi@0.1.2 into /home/pi/experiments/max7219/node_modules/max7219 88 info installOne spi@0.1.2 89 verbose installOne of spi to /home/pi/experiments/max7219/node_modules/max7219 not in flight; installing 90 verbose lock using /home/pi/.npm/_locks/spi-b7c7c5f5d0da0984.lock for /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 91 warn engine spi@0.1.2: wanted: {"node":"0.6"} (current: {"node":"4.2.1","npm":"2.14.7"}) 92 silly install write writing spi 0.1.2 to /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 93 verbose unbuild node_modules/max7219/node_modules/spi 94 silly gentlyRm /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi is being purged from base /home/pi/experiments/max7219 95 verbose gentlyRm don't care about contents; nuking /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 96 verbose tar unpack /home/pi/.npm/spi/0.1.2/package.tgz 97 verbose tar unpacking to /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 98 silly gentlyRm /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi is being purged 99 verbose gentlyRm don't care about contents; nuking /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 100 silly gunzTarPerm modes [ '755', '644' ] 101 silly gunzTarPerm extractEntry package.json 102 silly gunzTarPerm extractEntry .npmignore 103 silly gunzTarPerm extractEntry README.md 104 silly gunzTarPerm extractEntry LICENSE 105 silly gunzTarPerm extractEntry spi.js 106 silly gunzTarPerm extractEntry test.js 107 silly gunzTarPerm extractEntry binding.gyp 108 silly gunzTarPerm extractEntry src/spi_binding.cc 109 silly gunzTarPerm extractEntry src/spi_binding.h 110 verbose write writing to /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/package.json 111 info preinstall spi@0.1.2 112 verbose readDependencies loading dependencies from /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/package.json 113 silly prepareForInstallMany adding bindings@* from spi dependencies 114 verbose readDependencies loading dependencies from /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/package.json 115 silly cache add args [ 'bindings@*', null ] 116 verbose cache add spec bindings@* 117 silly cache add parsed spec Result { 117 silly cache add raw: 'bindings@*', 117 silly cache add scope: null, 117 silly cache add name: 'bindings', 117 silly cache add rawSpec: '*', 117 silly cache add spec: '*', 117 silly cache add type: 'range' } 118 silly addNamed bindings@* 119 verbose addNamed "*" is a valid semver range for bindings 120 silly addNameRange { name: 'bindings', range: '*', hasData: false } 121 silly mapToRegistry name bindings 122 silly mapToRegistry using default registry 123 silly mapToRegistry registry https://registry.npmjs.org/ 124 silly mapToRegistry uri https://registry.npmjs.org/bindings 125 verbose addNameRange registry:https://registry.npmjs.org/bindings not in flight; fetching 126 verbose request uri https://registry.npmjs.org/bindings 127 verbose request no auth needed 128 info attempt registry request try #1 at 20:45:00 129 verbose etag "1LLBF9OH58DLBEL4629U6032D" 130 http request GET https://registry.npmjs.org/bindings 131 http 304 https://registry.npmjs.org/bindings 132 verbose headers { date: 'Tue, 19 Jan 2016 02:45:00 GMT', 132 verbose headers via: '1.1 varnish', 132 verbose headers 'cache-control': 'max-age=300', 132 verbose headers etag: '"1LLBF9OH58DLBEL4629U6032D"', 132 verbose headers age: '146', 132 verbose headers connection: 'keep-alive', 132 verbose headers 'x-served-by': 'cache-ord1720-ORD', 132 verbose headers 'x-cache': 'HIT', 132 verbose headers 'x-cache-hits': '1', 132 verbose headers 'x-timer': 'S1453171500.733033,VS0,VE0', 132 verbose headers vary: 'Accept' } 133 silly get cb [ 304, 133 silly get { date: 'Tue, 19 Jan 2016 02:45:00 GMT', 133 silly get via: '1.1 varnish', 133 silly get 'cache-control': 'max-age=300', 133 silly get etag: '"1LLBF9OH58DLBEL4629U6032D"', 133 silly get age: '146', 133 silly get connection: 'keep-alive', 133 silly get 'x-served-by': 'cache-ord1720-ORD', 133 silly get 'x-cache': 'HIT', 133 silly get 'x-cache-hits': '1', 133 silly get 'x-timer': 'S1453171500.733033,VS0,VE0', 133 silly get vary: 'Accept' } ] 134 verbose etag https://registry.npmjs.org/bindings from cache 135 verbose get saving bindings to /home/pi/.npm/registry.npmjs.org/bindings/.cache.json 136 silly addNameRange number 2 { name: 'bindings', range: '*', hasData: true } 137 silly addNameRange versions [ 'bindings', 137 silly addNameRange [ '0.0.1', 137 silly addNameRange '0.1.0', 137 silly addNameRange '0.1.1', 137 silly addNameRange '0.2.0', 137 silly addNameRange '0.2.1', 137 silly addNameRange '0.2.2', 137 silly addNameRange '0.2.3', 137 silly addNameRange '0.2.4', 137 silly addNameRange '0.3.0', 137 silly addNameRange '0.4.0', 137 silly addNameRange '1.0.0', 137 silly addNameRange '1.1.0', 137 silly addNameRange '1.1.1', 137 silly addNameRange '1.2.0', 137 silly addNameRange '1.2.1' ] ] 138 silly addNamed bindings@1.2.1 139 verbose addNamed "1.2.1" is a plain semver version for bindings 140 silly cache afterAdd bindings@1.2.1 141 verbose afterAdd /home/pi/.npm/bindings/1.2.1/package/package.json not in flight; writing 142 verbose afterAdd /home/pi/.npm/bindings/1.2.1/package/package.json written 143 silly install resolved [ { name: 'bindings', 143 silly install resolved description: 'Helper module for loading your native module\'s .node file', 143 silly install resolved keywords: [ 'native', 'addon', 'bindings', 'gyp', 'waf', 'c', 'c++' ], 143 silly install resolved version: '1.2.1', 143 silly install resolved author: 143 silly install resolved { name: 'Nathan Rajlich', 143 silly install resolved email: 'nathan@tootallnate.net', 143 silly install resolved url: 'http://tootallnate.net' }, 143 silly install resolved repository: 143 silly install resolved { type: 'git', 143 silly install resolved url: 'git://github.com/TooTallNate/node-bindings.git' }, 143 silly install resolved main: './bindings.js', 143 silly install resolved bugs: { url: 'https://github.com/TooTallNate/node-bindings/issues' }, 143 silly install resolved homepage: 'https://github.com/TooTallNate/node-bindings', 143 silly install resolved license: 'MIT', 143 silly install resolved gitHead: 'e404152ee27f8478ccbc7122ee051246e8e5ec02', 143 silly install resolved _id: 'bindings@1.2.1', 143 silly install resolved scripts: {}, 143 silly install resolved _shasum: '14ad6113812d2d37d72e67b4cacb4bb726505f11', 143 silly install resolved _from: 'bindings@*', 143 silly install resolved _npmVersion: '1.4.14', 143 silly install resolved _npmUser: { name: 'tootallnate', email: 'nathan@tootallnate.net' }, 143 silly install resolved maintainers: [ [Object], [Object] ], 143 silly install resolved dist: 143 silly install resolved { shasum: '14ad6113812d2d37d72e67b4cacb4bb726505f11', 143 silly install resolved tarball: 'http://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz' }, 143 silly install resolved directories: {}, 143 silly install resolved _resolved: 'https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz', 143 silly install resolved readme: 'ERROR: No README data found!' } ] 144 info install bindings@1.2.1 into /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 145 info installOne bindings@1.2.1 146 verbose installOne of bindings to /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi not in flight; installing 147 verbose lock using /home/pi/.npm/_locks/bindings-07a8e104363de4a1.lock for /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings 148 silly install write writing bindings 1.2.1 to /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings 149 verbose unbuild node_modules/max7219/node_modules/spi/node_modules/bindings 150 silly gentlyRm /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings is being purged from base /home/pi/experiments/max7219 151 verbose gentlyRm don't care about contents; nuking /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings 152 verbose tar unpack /home/pi/.npm/bindings/1.2.1/package.tgz 153 verbose tar unpacking to /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings 154 silly gentlyRm /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings is being purged 155 verbose gentlyRm don't care about contents; nuking /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings 156 silly gunzTarPerm modes [ '755', '644' ] 157 silly gunzTarPerm extractEntry package.json 158 silly gunzTarPerm extractEntry README.md 159 silly gunzTarPerm extractEntry bindings.js 160 verbose write writing to /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings/package.json 161 info preinstall bindings@1.2.1 162 verbose readDependencies loading dependencies from /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings/package.json 163 verbose readDependencies loading dependencies from /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings/package.json 164 silly install resolved [] 165 verbose about to build /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings 166 info build /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings 167 info linkStuff bindings@1.2.1 168 silly linkStuff bindings@1.2.1 has /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules as its parent node_modules 169 verbose linkBins bindings@1.2.1 170 verbose linkMans bindings@1.2.1 171 verbose rebuildBundles bindings@1.2.1 172 info install bindings@1.2.1 173 info postinstall bindings@1.2.1 174 verbose unlock done using /home/pi/.npm/_locks/bindings-07a8e104363de4a1.lock for /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi/node_modules/bindings 175 verbose about to build /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 176 info build /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 177 info linkStuff spi@0.1.2 178 silly linkStuff spi@0.1.2 has /home/pi/experiments/max7219/node_modules/max7219/node_modules as its parent node_modules 179 verbose linkBins spi@0.1.2 180 verbose linkMans spi@0.1.2 181 verbose rebuildBundles spi@0.1.2 182 verbose rebuildBundles [ 'bindings' ] 183 info install spi@0.1.2 184 verbose unsafe-perm in lifecycle true 185 info spi@0.1.2 Failed to exec install script 186 verbose unlock done using /home/pi/.npm/_locks/spi-b7c7c5f5d0da0984.lock for /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 187 verbose about to build /home/pi/experiments/max7219/node_modules/max7219 188 verbose unlock done using /home/pi/.npm/_locks/max7219-824157aada65d412.lock for /home/pi/experiments/max7219/node_modules/max7219 189 verbose stack Error: spi@0.1.2 install: `node-gyp rebuild` 189 verbose stack Exit status 1 189 verbose stack at EventEmitter. (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:214:16) 189 verbose stack at emitTwo (events.js:87:13) 189 verbose stack at EventEmitter.emit (events.js:172:7) 189 verbose stack at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:24:14) 189 verbose stack at emitTwo (events.js:87:13) 189 verbose stack at ChildProcess.emit (events.js:172:7) 189 verbose stack at maybeClose (internal/child_process.js:818:16) 189 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) 190 verbose pkgid spi@0.1.2 191 verbose cwd /home/pi/experiments/max7219 192 error Linux 4.1.15-v7+ 193 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "max7219" 194 error node v4.2.1 195 error npm v2.14.7 196 error code ELIFECYCLE 197 error spi@0.1.2 install: `node-gyp rebuild` 197 error Exit status 1 198 error Failed at the spi@0.1.2 install script 'node-gyp rebuild'. 198 error This is most likely a problem with the spi package, 198 error not with npm itself. 198 error Tell the author that this fails on your system: 198 error node-gyp rebuild 198 error You can get their info via: 198 error npm owner ls spi 198 error There is likely additional logging output above. 199 verbose exit [ 1, true ] 200 verbose unbuild node_modules/max7219/node_modules/spi 201 info preuninstall spi@0.1.2 202 info uninstall spi@0.1.2 203 verbose unbuild rmStuff spi@0.1.2 from /home/pi/experiments/max7219/node_modules 204 verbose unbuild rmStuff in /home/pi/experiments/max7219/node_modules/max7219/node_modules 205 info postuninstall spi@0.1.2 206 silly gentlyRm /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi is being purged from base /home/pi/experiments/max7219 207 verbose gentlyRm don't care about contents; nuking /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 208 silly vacuum-fs purging /home/pi/experiments/max7219/node_modules/max7219/node_modules/spi 209 silly vacuum-fs removing /home/pi/experiments/max7219/node_modules/max7219/node_modules 210 silly vacuum-fs quitting because other entries in /home/pi/experiments/max7219/node_modules/max7219 211 verbose unbuild node_modules/max7219 212 info preuninstall max7219@1.0.1 213 info uninstall max7219@1.0.1 214 verbose unbuild rmStuff max7219@1.0.1 from /home/pi/experiments/max7219/node_modules 215 info postuninstall max7219@1.0.1 216 silly gentlyRm /home/pi/experiments/max7219/node_modules/max7219 is being purged from base /home/pi/experiments/max7219 217 verbose gentlyRm don't care about contents; nuking /home/pi/experiments/max7219/node_modules/max7219 218 silly vacuum-fs purging /home/pi/experiments/max7219/node_modules/max7219 219 silly vacuum-fs removing /home/pi/experiments/max7219/node_modules 220 silly vacuum-fs finished vacuuming up to /home/pi/experiments/max7219