Ubuntu服务器用Puppeteer启动Chromium遭遇符号查找错误
Puppeteer启动Chromium报
snd_device_name_get_hint符号未定义的解决方法 针对你遇到的Chromium启动时出现的undefined symbol: snd_device_name_get_hint错误,这里提供几个针对性的解决步骤:
1. 安装libasound2开发库
该符号属于音频库的核心组件,部分Ubuntu系统可能只安装了运行时库,缺少开发包导致符号无法被识别:
sudo apt-get install -y libasound2-dev
2. 修复libasound2安装完整性
如果之前的libasound2安装有损坏或依赖异常,强制重新安装并更新系统库缓存:
sudo apt-get purge --auto-remove libasound2 sudo apt-get install -y libasound2 sudo ldconfig
3. 改用系统自带的Chromium替代Puppeteer内置版本
Puppeteer自动下载的Chromium可能和系统库存在兼容性问题,切换到系统维护的版本:
首先安装系统Chromium:
sudo apt-get install -y chromium-browser
然后修改Puppeteer启动配置,指定系统Chromium的路径:
browser = await puppeteer.launch({ headless: true, executablePath: '/usr/bin/chromium-browser', // 若路径不对可尝试/usr/bin/chromium args: [ '--disable-gpu', '--disable-features=IsolateOrigins', '--disable-site-isolation-trials', '--autoplay-policy=user-gesture-required', '--disable-background-networking', '--disable-background-timer-throttling', '--disable-backgrounding-occluded-windows', '--disable-breakpad', '--disable-client-side-phishing-detection', '--disable-component-update', '--disable-default-apps', '--disable-dev-shm-usage', '--disable-domain-reliability', '--disable-features=AudioServiceOutOfProcess', '--disable-hang-monitor', '--disable-ipc-flooding-protection', '--disable-notifications', '--disable-offer-store-unmasked-wallet-cards', '--disable-popup-blocking', '--disable-print-preview', '--disable-prompt-on-repost', '--disable-renderer-backgrounding', '--disable-setuid-sandbox', '--disable-speech-api', '--disable-sync', '--hide-scrollbars', '--ignore-gpu-blacklist', '--metrics-recording-only', '--mute-audio', '--no-default-browser-check', '--no-first-run', '--no-pings', '--no-sandbox', '--no-zygote', '--password-store=basic', '--use-gl=swiftshader', '--use-mock-keychain', ], ignoreDefaultArgs: ['--disable-extensions'], userDataDir: './tmp', });
4. 检查并修复库路径关联
用ldd命令查看Puppeteer内置Chromium依赖的音频库路径:
ldd /root/.cache/puppeteer/chrome/linux-130.0.6723.58/chrome-linux64/chrome | grep libasound
若输出的路径不存在或版本不匹配,手动创建软链接指向系统正确的库文件:
sudo ln -s /usr/lib/x86_64-linux-gnu/libasound.so.2 /root/.cache/puppeteer/chrome/linux-130.0.6723.58/chrome-linux64/libasound.so.2
5. 调整Puppeteer版本
当前版本的Puppeteer对应的Chromium可能和系统存在兼容性冲突,尝试降级或升级版本:
# 降级到稳定版示例 npm uninstall puppeteer npm install puppeteer@21.0.0 # 或升级到最新版 npm uninstall puppeteer npm install puppeteer@latest
内容的提问来源于stack exchange,提问作者Pushan Alagiya
相关产品推荐
相关产品推荐

