1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-03-09 15:40:17 +00:00

--unsafe-perm=true (for npm 5.6.0 on RPi)

This commit is contained in:
A Holt 2018-07-15 18:50:19 -04:00 committed by GitHub
parent 9148931f14
commit 4b2f6c2956
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -6,7 +6,7 @@
# 1. DOWNLOAD+LINK /opt/iiab/sugarizer # 1. DOWNLOAD+LINK /opt/iiab/sugarizer
- name: Clone llaske/sugarizer ({{ sugarizer_git_version }}) from GitHub to /opt/iiab (CAN TAKE SEVERAL MINUTES) - name: Clone llaske/sugarizer ({{ sugarizer_git_version }}) from GitHub to /opt/iiab (MAY DOWNLOAD 600+ MB)
git: git:
repo: https://github.com/llaske/sugarizer repo: https://github.com/llaske/sugarizer
dest: "{{ sugarizer_location }}/{{ sugarizer_version }}" dest: "{{ sugarizer_location }}/{{ sugarizer_version }}"
@ -119,27 +119,32 @@
# is better than 5.6.0. which is better than Ubuntu 18.04's 3.5.2). # is better than 5.6.0. which is better than Ubuntu 18.04's 3.5.2).
# 2018-07-15: TK Kang & Holt confirmed sudo-driven "npm install" maxes out CPU # 2018-07-15: TK Kang & Holt confirmed sudo-driven "npm install" maxes out CPU
# for hours, on diff OS's using npm 5.6.0 and 6.2.0. Error code EACCES, # for hours, on diff OS's using npm 5.6.0 and 6.2.0. Hours later you get
# errno -13 (permission denied): # error: code EACCES, errno -13 (permission denied),
# "Missing write access to /opt/iiab/sugarizer-server-1.0/node_modules" # "Missing write access to /opt/iiab/sugarizer-server-1.0/node_modules"
# #
# SOLUTION: Implement '--allow-root' below, as is critical for 1st run of # SOLUTION: Implement '--allow-root --unsafe-perm=true' below, as is critical
# sudo-driven 'npm install' (causing it to create /root/.npm cache & lock # for 1st run of sudo-driven 'npm install' especially:
# files owned by root:root instead of iiab-admin:iiab-admin) permitting it
# and IIAB install scripts to actually complete :)
# #
# CLARIF 1: Something like 'chown -R root:root /root/.npm' cannot happen # ON DEBIAN: npm 5.6.0's --allow-root is sufficient: causing creation of
# synchronously with the 1st run of 'npm install' (when it's needed!) # /root/.npm cache & lock files to owned by root:root instead of
# Nor is 'chown' functionality nec, now that --allow-root does the job. # iiab-admin:iiab-admin...thus permitting it & IIAB installs to complete!
#
# ON RASPBIAN: npm 5.6.0's --unsafe-perm=true is required, so that npm install
# actually finished (in about 5 minutes).
#
# CLARIF 1: Something like 'chown -R root:root /root/.npm' would do the job,
# but cannot happen synchronously with the 1st run of 'npm install' (when
# it's needed!) Similar to what --allow-root does on Debian.
# #
# CLARIF 2: Ubuntu 18.04 is currently unaffected due to its ancient # CLARIF 2: Ubuntu 18.04 is currently unaffected due to its ancient
# npm 3.5.2, which instead uses /home/iiab-admin/.npm (these remain owned # npm 3.5.2, which instead uses /home/iiab-admin/.npm (these remain owned
# by iiab-admin:iiab-admin, even with the new "npm install --allow-root", # by iiab-admin:iiab-admin, even with '--allow-root', but thankfully still
# but thankfully still get the job done, for now!) # gets the job done, for now!)
#- name: Create the express framework for Node.js (OS's other than Fedora 18) #- name: Create the express framework for Node.js (OS's other than Fedora 18)
- name: Run 'npm install --allow-root' to create /opt/iiab/{{ sugarizer_server_version }}/node_modules (CAN TAKE SEVERAL MINUTES) - name: Run 'npm install --allow-root --unsafe-perm=true' to create /opt/iiab/{{ sugarizer_server_version }}/node_modules (CAN TAKE ~3 MINUTES)
command: npm install --allow-root # "command:" a bit safer than "shell:" command: npm install --allow-root --unsafe-perm=true # "command:" a bit safer than "shell:"
args: args:
chdir: "{{ sugarizer_location }}/{{ sugarizer_server_version }}" chdir: "{{ sugarizer_location }}/{{ sugarizer_server_version }}"
#creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node_modules" # OLD WAY 2 #creates: "{{ sugarizer_location }}/{{ sugarizer_server_version }}/node_modules" # OLD WAY 2