centos 安裝node 和 puppeteer

1.centos 安裝 nodenode

(1).wget 下載源碼linux

wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz

https://nodejs.org/dist 這個目錄下能夠找到各個版本的源碼git

(2).解壓github

xz -d node-v10.15.3.tar.xz
tar -xvf node-v10.15.3.tar

(3).配置軟鏈接
要想node可以在全局可以使用,須要添加軟鏈接,配置完便可使用chrome

ln -s /usr/local/node-v10.15.3/bin/node /usr/local/bin/node  
ln -s /usr/local/node-v10.15.3/npm /usr/local/bin/npm

(4).測試
node -vnpm

v10.15.3

npm -vcentos

6.8.0

node 安裝完,對應的npm也就下載安裝完成了瀏覽器

ps:參考:https://github.com/nodejs/hel...less

2.安裝 puppeteer 問題測試

(1)使用 puppeteer 作自動化須要安裝Chrome瀏覽器

由於牆的問題,會致使 puppeteer 沒法安裝 chromium,由於某些倉庫沒法git 下來,因此你的環境必須支持

(2)安裝 puppeteer 以及 extra 出現的問題

Q1:
(node:19180) UnhandledPromiseRejectionWarning: Error: Failed to launch chrome!
/data/www/vhosts/aps_task/httpdocs/node_modules/puppeteer/.local-chromium/linux-686378/chrome-linux/chrome: error while loading shared libraries: libXcomposite.so.1: cannot open shared object file: No such file or directory

TROUBLESHOOTING: https://github.com/GoogleChro...
A:由於 裝完瀏覽器後,須要安裝依賴的一些擴展,
具體看 https://github.com/GoogleChro...
注意,安裝完了以後,記得執行:

yum update nss -y

某些包報錯的話,可執行:

yum update glib2 -y

Q:2
(node:20844) UnhandledPromiseRejectionWarning: Error: Failed to launch chrome!
/data/www/vhosts/aps_task/httpdocs/node_modules/puppeteer/.local-chromium/linux-686378/chrome-linux/chrome: symbol lookup error: /lib64/libpangoft2-1.0.so.0: undefined symbol: FcWeightFromOpenTypeDouble

/lib64/libpangoft2-1.0.so.0 這個文件是存在的,但仍是會報錯
緣由是:當前安裝的是 1.42 版本,版本過高,解決方式安裝低版本便可,官方也出了bug 報告,存在這個問題。
參考這個:https://bugs.archlinux.org/ta...

解決方式:
1.用 yum 安裝完以後,卸載掉 pango。注意卸載不要使用 yum remove 由於會把依賴的包也卸載了。
使用

rpm -e --nodeps package_name
rpm -e --nodeps pango.x86_64

2.注意:gtk3 會安裝,更新 pango 包,全部操做須要在安裝完整個包以後。

3.去手動下載一個 1.40 版本的,而後使用 yum 本地安裝
下載地址:https://buildlogs.centos.org/...
具體地址:https://buildlogs.centos.org/...

yum localinstall package_name
yum localinstall pango-1.40.x86_64.rpm

Q.3
關於 Sandbox 問題,
(node:32577) UnhandledPromiseRejectionWarning: Error: Failed to launch chrome!

(chrome:32588): Gtk-WARNING **: 01:34:12.473: cannot open display:

在 args 參數加上 ['--no-sandbox', '--disable-setuid-sandbox'] 配置成 去沙箱

await puppeteer.launch({
        headless: true,
        //Setting Up Chrome Linux Sandbox, 去沙箱運行
        args: ['--no-sandbox', '--disable-setuid-sandbox'] 
})
相關文章
相關標籤/搜索