安装 chromium 发现自带源上面的版本并不匹配系统
正常操作的话,肯定是更新源信息之后,直接通过 apt
的方式进行安装,就可以了。但是发现安装之后,代码却无法使用,提示需要使用 snap
的方式再次安装一下才行。
# 安装正常(209MB)
$ sudo apt install chromium-browser
# 使用发现问题
$ /usr/bin/chromium-browser --version
Command '/usr/bin/chromium-browser' requires the chromium snap to be installed.
Please install it with:
snap install chromium
在 apt
的仓库里面搜了下,发现对应的包地址就是 snap
的,是真的恶心呀。这么强推 snap
工具,是不是不合理,不给人选择的机会。
$ apt search chromium-browser
Sorting... Done
Full Text Search... Done
chromium-browser/focal-updates,now 1:85.0.4183.83-0ubuntu0.20.04.3 amd64 [installed]
Transitional package - chromium-browser -> chromium snap
到这里,想到的就是使用第三方工具安装,或者自定义源来进行安装。安装到家目录的不好在于,该工具并不是全局可以使用,可能会存在一些意外情况的出现,所以还是建议全局安装。
# 第三方工具(默认会安装到家目录)
$ playwright install chromium
# 自定义源
$ wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
$ echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | tee /etc/apt/sources.list.d/chrome.list
$ apt-get update
$ apt-get install google-chrome-stable
# 自定义源
$ apt search google-chrome-stable
google-chrome-stable/stable 111.0.5563.64-1 amd64
The web browser from Google
安装玩不之后,就可以使用测试代码测试下,程序(demo.py
)可以正常使用。
def check_playwright():
import asyncio
from playwright.async_api import async_playwright
async def inner():
async with async_playwright() as play:
browser = await play.chromium.launch(
headless=True,
executable_path='/usr/bin/google-chrome-stable')
context = await browser.new_context()
page = await context.new_page()
await page.goto("https://example.com")
await page.content()
exit(1)
asyncio.run(inner())
if __name__ == '__main__':
check_playwright()