Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

3.1K
Visualizações
/tmp/chromium: error al cargar bibliotecas compartidas: libnss3.so: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio Vercel

cuando intento acceder a mi API cargada en el servidor vercel, aparece este error.

¿Alguien tuvo el mismo error?

Cuando lo ejecuto localmente, funciona bien.

2021-02-15T19:38:59.218Z 0109b575-a2e7-478e-aefe-aa3335b5b6b8 ERROR Error: ¡Error al iniciar el proceso del navegador! /tmp/chromium: error al cargar bibliotecas compartidas: libnss3.so: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio RESOLUCIÓN DE PROBLEMAS:https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md at onClose (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.js:193:20) en la interfaz. (/var/task/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserRunner.js:183:68) en Interface.emit (events.js:327:22) en Interface.close (readline.js: 424:8) en Socket.onend (readline.js:202:10) en Socket.emit (events.js:327:22) en endReadableNT (interno/streams/readable.js:1327:12) en processTicksAndRejections (interno/ proceso/task_queues.js:80:21)

código

 import puppeteer, { Page } from 'puppeteer-core' import chrome from 'chrome-aws-lambda' export async function getOptions() { const isDev = !process.env.AWS_REGION let options; const chromeExecPaths = { win32: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', linux: '/usr/bin/google-chrome', darwin: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' } const exePath = chromeExecPaths[process.platform] if (isDev) { options = { args: [], executablePath: exePath, headless: true } } else { options = { args: chrome.args, executablePath: await chrome.executablePath, headless: chrome.headless } } return options } let _page: Page | null async function getPage(): Promise<Page> { if (_page) { return _page } const options = await getOptions() const browser = await puppeteer.launch(options) _page = await browser.newPage() return _page } export async function getScreenshot(html: string, { width, height } = { width: 800, height: 800 }) { const page = await getPage(); await page.setContent(html); await page.setViewport({ width, height }); const file = await page.screenshot({ type: 'png' }); return file; }
over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

Tuve el mismo problema en el que titiritero funcionaba bien en mi entorno local, pero cuando lo implementé en AWS EC2, me encontré con el mismo error al cargar bibliotecas compartidas Solución

  1. Primero verifique la versión de nodejs que está ejecutando y si no es inferior a v14.0 o superior a v14.0 . Actualice o baje de categoría ( recomendado para actualizar ) y reinicie su aplicación y luego intente.

La causa más común es un error en Node.js v14.0.0 que rompió extract-zip, el módulo que Puppeteer usa para extraer las descargas del navegador en el lugar correcto. El error se solucionó en Node.js v14.1.0, así que asegúrese de estar ejecutando esa versión o una superior. Alternativamente, si no puede actualizar, puede cambiar a Node.js v12, pero le recomendamos que actualice cuando sea posible.

  1. Trivial: - Asegúrese de que el directorio donde se encuentra la carpeta de su proyecto no sea propiedad de root.

Para aquellos que puedan haber experimentado este problema mientras se ejecutan en el entorno de Windows, puede intentar pasar ignoreDefaultArgs: ['--disable-extensions'] opción al iniciarlo cromo desde el código, es decir

 const browser = await puppeteer.launch({ignoreDefaultArgs: ['--disable-extensions']})

Esto desactivará el comportamiento predeterminado de titiritero al deshabilitar las extensiones que normalmente usa Chrome/Chrome.

Usos de Linux y MACOS

Los problemas que resultan en este error

UnhandledPromiseRejectionWarning: Error: ¡Error al iniciar el proceso del navegador! error al cargar bibliotecas compartidas: libnss3.so: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio SOLUCIÓN DE PROBLEMAS

La mayoría de las veces, pero no todas, se debe a la falta de dependencias que se requieren en la última versión. Lo bueno es que puede verificar fácilmente las dependencias de Chrome que faltan y que causan el bloqueo.

  • Asegúrate de estar en la carpeta raíz de tu proyecto
  • Navegue a la carpeta node_modules
  • Navegue a la carpeta donde están instaladas las herramientas de Linux de chromeerer.
  • cd /project_folder/node_modules/puppeteer/.local-chromium/ linux- algún número /chrome-linux
    reemplace el número de linux-some con cualquier salida de ls
  • ls en /.local-chromium para verificar el nombre de su directorio
  • En el último directorio [chrome-linux] ejecute el siguiente comando para verificar las dependencias que faltan

    cromo ldd | grep no

si ve alguna dependencia faltante, ejecute este comando para instalar todo y reiniciar su aplicación.

 sudo apt-get install ca-certificates fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils

¡Voila! todo debe arreglarse

over 4 years ago · Santiago Trujillo Relatório

0

Intente agregar el paquete de compilación jontewks/puppeteer-heroku- buildpack. Agregar este paquete de compilación funcionó para mí.

 heroku buildpacks:add jontewks/puppeteer

Además, no olvide activar la compilación con una confirmación.

over 4 years ago · Santiago Trujillo Relatório

0

Para cualquiera que tenga libnss3.so: cannot open shared object file en aws lambda. Para mí, la solución fue cambiar tanto chrome-aws-lambda como puppeteer-core a la versión >= 6.0.0; esta es la versión mínima requerida mientras se ejecuta el tiempo de runtime: nodejs14.x .

over 4 years ago · Santiago Trujillo Relatório

0

Gracias a @andrew-mititi y su increíble respuesta , pude resolver el problema en mi entorno, que es Docker FROM node:16 (que es Debian GNU/Linux 10) + puppeteer v13 (no puppeteer-core). Hice los siguientes pasos:

  • compilar y ejecutar contenedor Docker: make build & docker run
  • ir al contenedor: docker exec -it CONTAINER_ID /bin/bash
  • busque la carpeta pptr chromium: ls project_folder/node_modules/puppeteer/.local-chromium -chromium, en mi caso era linux-961656
  • busque la siguiente carpeta: ls project_folder/node_modules/puppeteer/.local-chromium/linux-961656 , era chrome-linux
  • ejecute el script de dependencias faltantes en esa carpeta: ldd node_modules/puppeteer/.local-chromium/linux-961656/chrome-linux/chrome | grep not , debería mostrar algo como
 libnss3.so => not found libnssutil3.so => not found libsmime3.so => not found libnspr4.so => not found libatk-1.0.so.0 => not found libatk-bridge-2.0.so.0 => not found libcups.so.2 => not found libdrm.so.2 => not found libdbus-1.so.3 => not found libxkbcommon.so.0 => not found libXcomposite.so.1 => not found libXdamage.so.1 => not found libXfixes.so.3 => not found libXrandr.so.2 => not found libgbm.so.1 => not found libasound.so.2 => not found libatspi.so.0 => not found

El último paso fue convertir esta lista en el comando apt-get correcto y agregarlo al script make de Docker después de instalar las dependencias npm del proyecto. En mi caso fue:

 RUN apt-get update && apt-get install -y libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libasound2
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda