CentOS 에서 puppeteer 실행시 libxkbcommon.so.0를 못찾을때 처리 방법

CentOS에서 node 기반의 puppeteer를 실생하 다음과 같은 오류를 만났다

발생 에러 로그

(node:16300) UnhandledPromiseRejectionWarning: Error: Failed to launch the brows er process! /applications/service/teamstokengen/node_modules/puppeteer/.local-chromium/linux -901912/chrome-linux/chrome: error while loading shared libraries: libxkbcommon.so.0: cannot open shared object file: No such file or directory 

TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md

 at onClose (/applications/service/teamstokengen/node_modules/puppeteer/lib/c js/puppeteer/node/BrowserRunner.js:203:20) at Interface.<anonymous> (/applications/service/teamstokengen/node_modules/p uppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:193:68) at Interface.emit (events.js:326:22) at Interface.close (readline.js:416:8) at Socket.onend (readline.js:194:10) at Socket.emit (events.js:326:22) at endReadableNT (_stream_readable.js:1223:12) at processTicksAndRejections (internal/process/task_queues.js:84:21) (node:16300) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To termin ate the node process on unhandled promise rejection, use the CLI flag `--unhandl ed-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejecti ons_mode). (rejection id: 1) (node:16300) [DEP0018] DeprecationWarning: Unhandled promise rejections are depr ecated. In the future, promise rejections that are not handled will terminate th e Node.js process with a non-zero exit code.

해결방법으로는 다음 모듈을 설치하면된다.

$ yum install libxkbcommon-x11

원인으로는 x11 라이브러리 부재 문제로 실행이 안되었다.

참고 자료

Posted by lahuman

댓글을 달아 주세요

ssh tunneling으로 port forword

특정 서비스 DBMS에 접근을 해야 하는 일이 있는데, 기본적으로 DBMS에 접근 가능한 서버는 외부에서 접근이 불가능한 상태입니다.

그래서 ssh에서 제공하는 터널링을 이용해서 DBMS에 접근해보려고 합니다.

Mac, Linux 에서는 아래 명령어를 이용하면 쉽게 터널링을 할수 있습니다.

# ssh ID@GateServer -N -L localPort:DBMS:ServicePort
$ ssh ec2-user@1.2.3.4 -N -L 13306:1.2.3.5:3306

-N 옵션은 리모트로 명령어 실행을 하지 않는다는 의미 이며, -L 옵션은 로컬 포트와 GATESERVER 포트를 연결하는 역활을 합니다.

여기서는 GATEServer에서 DBMS와 연결하도록 설정하였습니다.

이렇게 ssh 명령어로 port forward를 사용가능합니다.

참고자료

Posted by lahuman

댓글을 달아 주세요

wsl2의 node기반 프로젝트에서 sqlite3를 사용하기 위해서 설치되어야 할 라이브러리와 설정, 리빌드가 필요합니다.

먼저 sqlite3를 사용하기 위해서는 다음 라이브러리가 설치되어 있어야 합니다.

  • make
  • g++
  • python2 or python3

라이브러리 설치 하기

$ sudo apt install make g++ python3

node에서 python3를 사용하도록 설정합니다.

$ npm config set python python3

node-gyp rebuild

$ npm rebuild node-gyp
$ npm install sqlite3

이렇게 하면, sqlite3가 오류없이 설치되어서 사용할 수 있습니다.

참고자료

Posted by lahuman

댓글을 달아 주세요