Ubuntu 24에 Puppeteer용 Chromium 설치하기
dev | 2024-10-26
우분투 24(Ubuntu 24)에 퍼피티어(Puppeteer)를 깔고 크로미움(Chromium)을 깐다.
sudo -u www-data npx puppeteer browsers install chrome
다음에 크롬이 사용하는 의존 패키지를 깐다.
sudo apt-get install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 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 ca-certificates fonts-liberation libnss3 lsb-release xdg-utils wget
우분투 22에서는 잘 깔렸는데 우분투 24에서는 깔리지 않는다. 문제가 있는 패키지는 gconf-service
, libasound2
두개다.
gconf-service
패키지를 직접 가져와서 깔아준다.
wget http://ftp.it.debian.org/debian/pool/main/g/gconf/gconf2_3.2.6-8_amd64.deb
wget http://ftp.it.debian.org/debian/pool/main/g/gconf/libgconf-2-4_3.2.6-8_amd64.deb
wget http://ftp.it.debian.org/debian/pool/main/g/gconf/gconf2-common_3.2.6-8_all.deb
wget http://ftp.it.debian.org/debian/pool/main/g/gconf/gconf-service_3.2.6-8_amd64.deb
wget http://ftp.it.debian.org/debian/pool/main/o/openldap/libldap-2.5-0_2.5.13%2bdfsg-5_amd64.deb
sudo apt install ./gconf2_3.2.6-8_amd64.deb ./gconf-service_3.2.6-8_amd64.deb ./libgconf-2-4_3.2.6-8_amd64.deb ./gconf2-common_3.2.6-8_all.deb ./libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
libasound2
는 libasound2t64
로 이름이 바뀌어서 이걸 깔아준다.
구동을 하면 패키지 관련 오류는 발생하지 않지만 샌드박스 관련 오류가 발생한다. 우분투 24에서 AppArmor 제한 때문에 크롬의 개발 버전이 작동하지 않아서 이다.
CHROME_DEVEL_SANDBOX=/home/hyeonseok/.cache/puppeteer/chrome/linux-129.0.6668.100/chrome-linux64/chrome_sandbox
환경변수로 샌드박스를 지정하면 마지막으로 권한 오류가 발생한다.
Error: Failed to launch the browser process!
[3597:3597:1016/140924.374237:FATAL:setuid_sandbox_host.cc(163)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/hyeonseok/.cache/puppeteer/chrome/linux-129.0.6668.100/chrome-linux64/chrome_sandbox is owned by root and has mode 4755.
권한을 시키는 대로 바꿔준다.
chown root:root chrome_sandbox
sudo chmod 4755 chrome_sandbox
Comments