# 8.5 Web 浏览器

## 火狐浏览器

浏览器是计算机日常使用中最为频繁的应用软件之一。本节将介绍如何在 FreeBSD 系统上安装和配置常用的浏览器，包括火狐浏览器（Firefox）和 Chromium 等。

### 安装普通版本（更新频繁）

* 使用 pkg 安装

```sh
# pkg install firefox
```

* 或者使用 Ports

```sh
# cd /usr/ports/www/firefox
# make install clean
```

### 安装长期支持版本

* 使用 pkg 安装

```sh
# pkg install firefox-esr
```

* 或者使用 Ports

```sh
# cd /usr/ports/www/firefox-esr/
# make install clean
```

## Chromium

Chromium 不是 Chrome，但在 FreeBSD 中的启动命令为 `chrome`。

***

* 使用 pkg 安装

```sh
# pkg install chromium
```

* 或者使用 Ports

```sh
# cd /usr/ports/www/chromium
# make install clean
```

> **警告**
>
> 要编译 Chromium，你必须拥有至少 12 GB 内存，或等量的交换分区 + 内存。

## Chrome（Linux 兼容层）

* 使用 pkg 安装

```sh
# pkg install linux-chrome
```

* 或者使用 Ports

```sh
# cd /usr/ports/www/linux-chrome/
# make install clean
```

## 附录：Chromium 使用 Google 账号同步

> **技巧**
>
> 有些项目认为目前移除的组件仍不够彻底，因此提供了 Port `www/ungoogled-chromium`。该软件移除了更多与谷歌相关的不透明组件。

* 由于是开源产物，Chromium 与 Google Chrome 的关系类似于 AOSP 与 Pixel UI 的关系。Chromium 无法直接从 Google Chrome 的在线插件商店下载安装插件，只能手动从本地安装 crx（同步启用后可自动同步浏览器插件）。Chromium 也不自带 Google 翻译插件等功能。更多差异可参见：The Chromium Project. 此网页\[EB/OL]. \[2026-03-26]. <https://chromium.googlesource.com/chromium/src/+/master/docs/chromium_browser_vs_google_chrome.md>。该文档对比了 Chromium 与 Google Chrome 在功能与授权上的差异。
* 首先，`Chromium` 并非 `Google Chrome`，前者是 The Chromium Project 在 [BSD 3-Clause “New” or “Revised” License](https://github.com/chromium/chromium/blob/main/LICENSE) 下发布的开源与自由软件，后者是 Google LLC 的专有软件。该许可证允许自由使用、修改与再分发。
* 在 [Chromium 89](https://archlinux.org/news/chromium-losing-sync-support-in-early-march/) 版本发布后，Chromium 删除了之前自带的与 Chrome 同款的登录 Google 账号的默认 API。该公告说明了 Chromium 移除同步 API 的原因与影响。

在开始获取 token 之前，需要先加入以下两个 Google 邮件列表论坛：

* [Google browser sign-in test account](https://groups.google.com/u/0/a/chromium.org/g/google-browser-signin-testaccounts)
* [Chromium-dev](https://groups.google.com/a/chromium.org/g/chromium-dev)

![加入邮件列表](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-fb87683c157ddf4d916f2a0af2d5f5754ea75a87%2Fjoin-chromium-dev-for-api1.png?alt=media)

由于仅需 Chrome Google API 的访问权限，因此必须关闭这两个邮件列表的消息通知（即“不接收电子邮件”），否则可能会收到大量邮件通知。

![关闭邮件通知](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-de3cff8f0c1d56acddbefde69de063e2ef9a03ff%2Fjoin-chromium-dev-for-api2.png?alt=media)

![邮件列表设置](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-523b5f727c5a9dd4a614fac283587017920d7cf8%2Fjoin-chromium-dev-for-api3.png?alt=media)

加入 Google browser sign-in test account 群组后，你可能会看到：“您无权访问此内容”之类的提示，这很正常，无需担心。

![join-mail-list-for-google-api-error2](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5c8278daf7e7d188523938c328676011066f8274%2Fjoin-chromium--list-2error.png?alt=media)

之后，用浏览器打开 [谷歌云控制台网站](https://console.cloud.google.com/)

> **注意**
>
> 登录控制台时使用的谷歌账户必须与之前加入邮件列表的账户一致。

![谷歌云控制台首页](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-faa0e12183e2bfe27cb2331f48f3934d2765b539%2Fchromium-use-google-api-guide-0.png?alt=media)

点击左上角的“My First Project”，然后在弹出窗口的右上角选择“新建项目”即可。

![新建项目选项](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-6d3523e3d2ca9fdf2b49b2b474ffce68f82b560a%2Fchromium-use-google-api-guide-02.png?alt=media)

项目名称可随意填写，组织保持默认设置。

![填写项目信息](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9ffd3b09ed01117a0f6e0b183811cf91ba074947%2Fchromium-use-google-api-guide-03.png?alt=media)

点击左上角的“My First Project”，然后在弹出窗口中选择你刚才创建的项目（此处我的是 google-sync）。

![选择项目](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-80c032443823efee7429c522312b424dae6395a3%2Fchromium-use-google-api-guide-04.png?alt=media)

点击上图中的“API 和服务”，再点击“+ 启用 API 和服务”

![启用 API 和服务](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-f4e16a7c42f585013699a5adb655aa2b76989f69%2Fchromium-use-google-api-guide-04-1.png?alt=media)

搜索 “chrome-sync” 找到下列内容。

![搜索 Chrome Sync](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-239abfe8f1ac5600386e02e73ffad68064db656a%2Fchromium-use-google-api-guide-06.png?alt=media)

点击启用“Chrome Sync API”

![启用 Chrome Sync API](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-d985c1d07a77dcb894d888e0b03d19aca069c78f%2Fchromium-use-google-api-guide-05.png?alt=media)

之后会在已启用的 API 和服务列表中显示下列状态

![已启用 API 列表](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-48e4faaef7d32aa052860604ca37d56f899b58f9%2Fchromium-use-google-api-guide-07.png?alt=media)

选择“OAuth 权限请求页面”：

![OAuth 权限页面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-0126e6ec15d4d88bf114e8d0762756b17172aa4e%2Fchromium-use-google-api-guide-08.png?alt=media)

创建外部应用：

![创建外部应用](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-94feae6a0ba01f447ef42cea4ef8e004786d7dfc%2Fchromium-use-google-api-guide-09.png?alt=media)

![填写应用信息](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9d5c2f7a2181378af1c9a35fee7a038e0de6a124%2Fchromium-use-google-api-guide-10.png?alt=media)

![应用信息填写](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-80bc230dfa24b13d0f967018c58862b7ec78e1bb%2Fchromium-use-google-api-guide-11.png?alt=media)

![应用详细信息](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5f09fc2619625bd523593511f9f77c240ee223b3%2Fchromium-use-google-api-guide-12.png?alt=media)

创建后如图：

![应用创建完成](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-26ce1fefeda07da1cb66b268fe60dc7893fd4950%2Fchromium-use-google-api-guide-13.png?alt=media)

点击“客户端”，创建 OAuth 客户端 ID，应用类型为“桌面应用”：

![创建 OAuth 客户端](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-91a9b3bbe9dd0abe4b67755d115778e918117b9e%2Fchromium-use-google-api-guide-14.png?alt=media)

创建后如图：

![OAuth 客户端创建](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-70d12c5d7fdee682ff5e534071908446eb7b7565%2Fchromium-use-google-api-guide-15.png?alt=media)

点击创建的“桌面客户端 1”

![查看客户端详情](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-18001dec4257b70545211eaa6258a01a7d867b5a%2Fchromium-use-google-api-guide-16.png?alt=media)

我们获得了（这是笔者的，是无效的，读者必须自己生成自己的）：

* 客户端 ID `502882456359-okloi0a7k6vjodss69so97tmqmv0jjj5.apps.googleusercontent.com`
* 客户端密钥 `GoCSPX-iKHEKZmP4w_zdq0Z8nwOqz6SF2_M`

退回“API 和服务”，点击“+ 创建凭据”，再点击“API 密钥”。

![创建 API 密钥](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3edabd2ac1eb90962186848d1de123054708dfd2%2Fchromium-use-google-api-guide-17.png?alt=media)

我们就获得了一个 API 密钥（这是笔者的，读者必须自己生成自己的）：`AIzaSyDVpYvJQUn9HTjAiD89y3xBDOG3oaxV5_E`

![API 密钥生成](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3020c4ba6b69ceaea014d455d1dd6c07b7e9a6fe%2Fchromium-use-google-api-guide-18.png?alt=media)

打开凭据概览一下：

![凭据概览](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-2572555fdc840f3222b1bcb3e5937a4549a911fc%2Fchromium-use-google-api-guide-19.png?alt=media)

编辑 `~/.profile`，加入：

> **注意**
>
> 本文仅在默认 shell sh 和 KDE 6 下测试通过。如果使用的环境不同，欢迎提交 PR。

```sh
export GOOGLE_API_KEY=AIzaSyDVpYvJQUn9HTjAiD89y3xBDOG3oaxV5_E  # 这里填 API 密钥
export GOOGLE_DEFAULT_CLIENT_ID=502882456359-okloi0a7k6vjodss69so97tmqmv0jjj5.apps.googleusercontent.com  # 这里填客户端 ID
export GOOGLE_DEFAULT_CLIENT_SECRET=GoCSPX-iKHEKZmP4w_zdq0Z8nwOqz6SF2_M  # 这里填客户端密钥
```

然后重启系统，再打开 Chromium。

点击“开启同步功能”：

![开启同步功能](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-ea56eb435e7515ebf78d8495fa98328aff6438ad%2Fchromium-use-google-api-guide-20.png?alt=media)

输入你的账户：

![输入账户](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-bccac0aec925c79feddd5a7b1df48bc27f5aed4d%2Fchromium-use-google-api-guide-21.png?alt=media)

输入你的账户密码：

![输入密码](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-200911ebf3e3e0a84eb4612d58cf02cf53c5bd5d%2Fchromium-use-google-api-guide-22.png?alt=media)

![登录确认](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3027ccd1b20a3284a3ad15728337258b10703c05%2Fchromium-use-google-api-guide-23.png?alt=media)

查看同步情况：

![同步状态](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-824b7531db2dfb158c0520ceb1d42095889e7757%2Fchromium-use-google-api-guide-24.png?alt=media)

### 参考文献

* LearningToPi. Chromium Sync - Learning to Pi\[EB/OL]. \[2026-03-25]. <https://www.learningtopi.com/sbc/chromium-sync>. 该教程详细介绍了 Chromium 同步功能的配置步骤。
* 凌莞. 为 Chromium 恢复登录功能\[EB/OL]. \[2026-03-25]. <https://nyac.at/posts/google-sync-in-chromium>. 该文章提供了 Chromium 恢复 Google 账号登录的方法。

## 故障排除与未竟事宜

### 解决 Chromium 出现未知错误导致占用大量性能的问题

将参数添加到启动图标中（图标为文本文件）：

```sh
chrome --disk-cache-size=0 --disable-gpu
```

## 课后习题

1. 分别安装 Firefox（普通版与 ESR 版）和 Chromium，对比三者的启动速度、内存占用和插件兼容性。
2. 按照教程步骤配置 Chromium 的 Google 账号同步功能，验证书签、扩展程序等数据的同步效果。
3. 尝试使用 ungoogled-chromium，对比其与标准 Chromium 的功能差异和资源占用。
