Solución:
EDITAR 20 de abril de 2019:
La solución fácil sugerida por lauraalvarezz1 es,
sudo npm install -g puppeteer --unsafe-perm=true
Esto está bien siempre que confíe en titiritero y desee que instale titiritero a nivel mundial.
Sin embargo, tenga cuidado con el uso --unsafe-perm=true
para problemas relacionados con permisos. Las razones son:
- Ejecutar unsafe-perm = true con sudo, como usuario no root, le dará al script acceso de root. Esto podría estar bien solo si confías en el script y no te preocupas tanto por la seguridad.
- Puede que necesites usar
--no-sandbox
en cada script que ejecute, porque el Chrome instalado con este comando podría no ejecutarse sin este parámetro. Vea este problema de github.
Has instalado npm con sudo
. Por lo tanto, todo lo que instale a nivel mundial requerirá sudo
.
Para instalar cualquier cosa en var/www/html
carpeta, o tienes que ser el propietario de esa carpeta,
sudo chown -R $USER /var/www/html
O puede usar nvm para administrar npm. Técnicamente utilizará su directorio personal y su usuario actual.
Después de instalar nvm, puede instalar puppeteer globalmente con él,
npm i -g puppeteer
o tienes que usar sudo
sudo npm install --save puppeteer
Sin embargo, el cromo no se descargará debido a un error de permiso, es por eso que debe usar ---unsafe-perm=true
como se dijo antes.
Recursos relacionados con la seguridad:
- Resuelva esto sin sudo, puede usar esta respuesta.
- Obtenga más información sobre las mejores prácticas relacionadas con la carpeta / var / www, consulte esta respuesta.
¡La mejor de las suertes!
Ejecute esto en su terminal:
sudo npm install -g puppeteer --unsafe-perm=true
Antes de comenzar, asegúrese de tener la versión más reciente de Node.js.
La documentación titiritero dice:
Nota: Puppeteer requiere al menos Node v6.4.0, pero los ejemplos a continuación usan async / await, que solo es compatible con Node v7.6.0 o superior.
Puede verificar qué versión de Node.js tiene usando el siguiente comando:
node -v
# OR nodejs -v
Si su versión de Node.js es inferior a la v7.6.0, puede desinstalar completamente su versión actual de Node.js.
Luego, puede completar la reinstalación usando un PPA:
sudo apt update
curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
sudo apt install build-essential
Puede verificar las nuevas versiones de Node.js y NPM instaladas en su sistema:
node -v
npm -v
Finalmente, puede instalar Puppeteer:
sudo npm install puppeteer --unsafe-perm=true --allow-root
Ahora puede ejecutar scripts de Puppeteer usando el node
mando:
node puppeteer-script.js