CentOS7.x 上安装chromium
yum -y install epel-release
yum -y install chromium
# yum info chromium
Loaded plugins: fastestmirror, langpacks, versionlock
Loading mirror speeds from cached hostfile
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
Installed Packages
Name : chromium
Arch : x86_64
Version : 126.0.6478.114
Release : 1.el7
Size : 249 M
Repo : installed
From repo : epel
Summary : A WebKit (Blink) powered web browser that Google doesn't want you to use
URL : http://www.chromium.org/Home
License : BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR
: LGPL-2.0-only)
Description : Chromium is an open-source web browser, powered by WebKit (Blink).
对 yum info chromium 输出信息做一个解读
-
Loaded plugins: fastestmirror, langpacks, versionlock
- 这些是
yum
工具加载的插件。fastestmirror
插件会选择速度最快的镜像源,langpacks
处理语言包,versionlock
插件用于锁定某些软件包的版本。
- 这些是
-
Loading mirror speeds from cached hostfile
-
yum
正在使用缓存中的镜像源信息来确定下载速度最快的镜像。
-
-
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
- 因为版本锁定,
yum
排除了一个更新。你可以使用yum versionlock status
命令查看哪些软件包被锁定。
- 因为版本锁定,
-
Installed Packages
- 显示了安装在系统上的软件包的信息。
-
Name : chromium
- 软件包的名称是
chromium
。
- 软件包的名称是
-
Arch : x86_64
- 软件包的架构是
x86_64
,即 64 位的架构。
- 软件包的架构是
-
Version : 126.0.6478.114
- 安装的软件包的版本号是
126.0.6478.114
。
- 安装的软件包的版本号是
-
Release : 1.el7
- 软件包的发布版本是
1.el7
。这里的el7
表示这是为 CentOS/RHEL 7 系列系统构建的版本。
- 软件包的发布版本是
-
Size : 249 M
- 软件包的大小为 249 兆字节 (MB)。
-
Repo : installed
- 表示该软件包已经安装在系统上。
-
From repo : epel
- 软件包来自
epel
仓库(Extra Packages for Enterprise Linux),这是一个由 Fedora 项目维护的额外软件包仓库。
- 软件包来自
-
Summary : A WebKit (Blink) powered web browser that Google doesn't want you to use
- 软件包的简短描述:Chromium 是一个由 WebKit (Blink) 引擎驱动的网页浏览器,Google 不希望你使用它。
-
URL : http://www.chromium.org/Home
- 官方网站的 URL,提供了更多关于 Chromium 的信息。
-
License : BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only)
- 软件包的许可证信息,表示 Chromium 使用了多种开源许可证,包括 BSD-3-Clause、LGPL-2.1-or-later、Apache-2.0、IJG、MIT、GPL-2.0-or-later、ISC、OpenSSL 和 MPL-1.1 或 GPL-2.0-only 或 LGPL-2.0-only。
-
Description : Chromium is an open-source web browser, powered by WebKit (Blink).
- 软件包的详细描述:Chromium 是一个开源的网页浏览器,由 WebKit (Blink) 引擎驱动。
这条输出提供了关于 Chromium 浏览器的全面信息,包括版本、来源、许可证和一些基本的描述。
Summary : A WebKit (Blink) powered web browser that Google doesn't want you to use
Google 为什么不希望你使用它?
“Google 不希望你使用它” 这个描述其实是个半开玩笑的说法,通常用于突出 Chromium 和 Google Chrome 之间的关系和差异。
这里的意思是:
-
Google Chrome 和 Chromium 的关系:
- Chromium 是一个开源的网页浏览器项目,它为 Google Chrome 提供了基础。Google Chrome 是基于 Chromium 构建的,但包含了额外的功能和服务,比如 Google 的同步服务、自动更新、内置的 PDF 查看器和某些专有的插件。
- Google Chrome 是 Google 的商业产品,包含了专有的功能和 Google 的服务。
-
Google 的商业利益:
- Google Chrome 集成了 Google 的服务,比如 Google 搜索引擎、Google 账户的同步功能等,这些服务有助于 Google 收集用户数据以改善其广告业务和其他服务。
- Chromium 作为开源项目,不包含这些专有的功能和服务。它更注重隐私和开放性,因此不依赖于 Google 的服务。
-
开发和更新:
- Google 对 Chrome 的开发和更新有很大的控制权,包括定期推出新的功能和安全更新。
- Chromium 项目是由一个更广泛的开源社区和 Google 自身共同维护的,但更新和新特性可能不会像 Chrome 那样频繁。
-
用户数据和隐私:
- Chromium 不收集用户数据,用户可以在不依赖 Google 服务的情况下使用它,从而提高隐私保护。
- 另一方面,Google Chrome 可能会收集用户的使用数据,这些数据有助于改善 Chrome 和 Google 的服务,但也可能影响隐私。
因此,“Google 不希望你使用它” 是一种幽默的说法,强调了 Chromium 作为开源浏览器的特性和与 Google Chrome 的不同,同时也暗示了 Google 对其商业产品(Chrome)的偏好。
# rpm -ql chromium
/etc/chromium/chromium.conf
/etc/chromium/master_preferences
/etc/chromium/policies
/etc/chromium/policies/managed
/etc/chromium/policies/recommended
/usr/bin/chromium-browser
/usr/lib64/chromium-browser/chrome-sandbox
/usr/lib64/chromium-browser/chrome_100_percent.pak
/usr/lib64/chromium-browser/chrome_200_percent.pak
/usr/lib64/chromium-browser/chrome_crashpad_handler
/usr/lib64/chromium-browser/chromium-browser
/usr/lib64/chromium-browser/chromium-browser.sh
/usr/lib64/chromium-browser/resources.pak
/usr/lib64/chromium-browser/v8_context_snapshot.bin
/usr/share/applications/chromium-browser.desktop
/usr/share/doc/chromium-126.0.6478.114
/usr/share/doc/chromium-126.0.6478.114/AUTHORS
/usr/share/doc/chromium-126.0.6478.114/README.fedora
/usr/share/doc/chromium-126.0.6478.114/chrome.json
/usr/share/doc/chromium-126.0.6478.114/chrome_policy_list.html
/usr/share/gnome-control-center/default-apps/chromium-browser.xml
/usr/share/icons/hicolor/128x128/apps/chromium-browser.png
/usr/share/icons/hicolor/24x24/apps/chromium-browser.png
/usr/share/icons/hicolor/256x256/apps/chromium-browser.png
/usr/share/icons/hicolor/48x48/apps/chromium-browser.png
/usr/share/icons/hicolor/64x64/apps/chromium-browser.png
/usr/share/licenses/chromium-126.0.6478.114
/usr/share/licenses/chromium-126.0.6478.114/LICENSE
/usr/share/man/man1/chromium-browser.1.gz
/usr/share/metainfo/chromium-browser.appdata.xml
# rpm -ql chromium |grep bin
/usr/bin/chromium-browser
/usr/lib64/chromium-browser/v8_context_snapshot.bin
chromium-browser --no-sandbox --headless --disable-gpu --disable-software-rasterizer --print-to-pdf=/tmp/www.baidu.com.pdf https://www.baidu.com/
这条命令使用 Chromium 浏览器以无头模式(headless mode)生成一个网页的 PDF 文件。
下面是对这条命令中各个部分的详细解读:
chromium-browser --no-sandbox --headless --disable-gpu --disable-software-rasterizer --print-to-pdf=/tmp/www.baidu.com.pdf https://www.baidu.com/
-
chromium-browser
:- 这是调用 Chromium 浏览器的命令。在某些系统上,可能是
chromium
或chromium-browser
,具体取决于安装和配置方式。
- 这是调用 Chromium 浏览器的命令。在某些系统上,可能是
-
--no-sandbox
:- 这个选项禁用 Chromium 的沙箱机制。沙箱是一种安全机制,用于隔离进程以防止恶意代码影响系统的其他部分。在某些无头模式下,沙箱可能会引发问题,因此这个选项常用于自动化脚本中。
-
--headless
:- 以无头模式运行 Chromium,这意味着浏览器不会启动图形用户界面(GUI)。这对于自动化任务非常有用,因为不需要显示浏览器窗口。
-
--disable-gpu
:- 禁用 GPU 加速。因为在无头模式下,GPU 加速通常没有用处,禁用它可以避免不必要的开销。
-
--disable-software-rasterizer
:- 禁用软件光栅化器。在图形处理的上下文中,光栅化器负责将图形渲染为像素。如果禁用 GPU 加速,那么软件光栅化器也会被禁用,以减少资源的使用。
-
--print-to-pdf=/tmp/www.baidu.com.pdf
:- 将指定的网页保存为 PDF 文件。这里
/tmp/www.baidu.com.pdf
是输出的 PDF 文件路径,Chromium 会将访问的网页保存为这个 PDF 文件。
- 将指定的网页保存为 PDF 文件。这里
-
https://www.baidu.com/
:- 要访问并保存为 PDF 的网页 URL。在这个例子中,它是百度的主页。
总结
这条命令会启动 Chromium 浏览器,在无头模式下访问 https://www.baidu.com/
,然后将该网页保存为 /tmp/www.baidu.com.pdf
文件。过程中禁用了沙箱、GPU 加速以及软件光栅化器,以简化操作并避免可能的图形处理问题。这种用法通常用于自动化任务,如生成网页截图或 PDF 文件,特别是在服务器环境中。
无头模式(headless mode)指的是在没有图形用户界面(GUI)的情况下运行程序或应用程序的模式。在浏览器的上下文中,无头模式意味着浏览器在后台运行,不会显示窗口或图形界面,但仍然可以执行浏览网页、渲染页面和运行 JavaScript 等操作。
无头模式的特点和用途
-
无需图形界面:
- 在无头模式下,浏览器不会启动 GUI 组件,因此不会显示在屏幕上。这意味着所有的页面渲染和操作都在后台进行。
-
自动化和测试:
- 无头模式常用于自动化测试和脚本运行。因为不需要图形界面,它可以在没有显示器的服务器上运行,适合 CI/CD 流程中的自动化测试。例如,使用 Selenium、Puppeteer 或 Playwright 进行网站功能测试时,经常会用到无头模式。
-
资源节约:
- 由于没有 GUI 的开销,资源使用更加高效,CPU 和内存的占用通常会减少。这使得无头模式特别适合需要大量并发的自动化任务或在资源有限的环境中运行。
-
脚本和批处理:
- 对于需要批量处理或生成静态内容(如网页截图、PDF 文件)的任务,无头模式是一个理想的选择。例如,生成网页的 PDF 或截取网页截图时,通常会使用无头模式,以避免图形界面的开销和干扰。
-
服务器和云环境:
- 无头模式特别适合在服务器或云环境中使用,因为这些环境通常没有显示器或图形用户界面。无头模式允许在这些环境中执行浏览器操作而不需要图形显示。
示例应用场景
-
网页抓取:
- 使用无头模式进行网页抓取(web scraping),从网站上提取数据。由于没有 GUI,它比传统的图形界面浏览器更高效。
-
自动化测试:
- 在自动化测试环境中运行测试脚本,不需要显示浏览器窗口,通过无头模式可以快速进行回归测试和功能测试。
-
生成报告和文档:
- 自动化生成网页截图或 PDF 报告,无头模式使得这些任务可以在后台批量处理,适合生成报告和文档的自动化任务。
总之,无头模式提供了一种高效的方式来运行和测试网页应用程序,特别是在需要批量处理、自动化测试或在没有图形界面的环境中运行时。
Puppeteer 是一个用于控制和自动化 Chromium 或 Google Chrome 浏览器的 Node.js 库。
它主要用于以下几种用途:
主要功能
-
浏览器自动化:
- Puppeteer 允许开发者通过编程的方式自动化浏览器操作,比如填充表单、点击按钮、截屏等。这对于测试、网页爬取和自动化任务非常有用。
-
无头浏览模式:
- Puppeteer 可以以无头(headless)模式运行,即在没有图形用户界面的情况下运行浏览器。这对于自动化任务和性能测试非常有用,因为无头模式通常比传统模式更高效。
-
页面操作:
- Puppeteer 提供了丰富的 API 来操作网页,如模拟用户交互(点击、输入文本、滚动等)、获取网页内容、生成 PDF 等。
-
性能测试:
- 你可以使用 Puppeteer 进行性能测试,比如测量页面加载时间、生成性能报告等。
-
截图和 PDF 生成:
- Puppeteer 支持截取网页截图和生成 PDF 文件。这对于需要生成报告、文档或进行网页截图的应用程序非常有帮助。
使用 Puppeteer 的场景
- 测试自动化: 自动化前端测试,模拟用户交互并验证网页行为。
- 网络爬虫: 自动化抓取网页内容,用于数据收集和分析。
- 网页截图和 PDF: 生成网页的图像或 PDF 文档。
- 性能监控: 监测和记录页面加载时间和其他性能指标。
基本使用示例
以下是一个使用 Puppeteer 截图的简单示例:
const puppeteer = require('puppeteer');
(async () => {
// 启动浏览器
const browser = await puppeteer.launch();
const page = await browser.newPage();
// 打开网页
await page.goto('https://example.com');
// 截图并保存
await page.screenshot({ path: 'example.png' });
// 关闭浏览器
await browser.close();
})();
主要组件
- puppeteer-core: 这是 Puppeteer 的核心库,它不包括 Chromium 浏览器本身。你可以使用它来与已经安装的 Chromium 或 Chrome 实例进行交互。
- puppeteer: 这是 Puppeteer 的完整版本,它包括了核心库和一个 Chromium 浏览器二进制文件。通常建议使用这个版本来避免手动处理浏览器的安装问题。
Puppeteer 是一个强大且灵活的工具,广泛应用于自动化测试、网页抓取和性能分析等领域。