如何在 Linux 上安装 Google Drive
过去,有近 3 万人报名参加了在线请愿,迫切希望为 Google Drive 提供一个官方的原生 Linux 客户端,但他们的声音仍然被 Google 忽视。也许当谈到提高利润时,Linux 桌面市场并不是 Google 的优先考虑事项。
他们可以无视Linux桌面市场,但他们不能忽视FOSS的力量。面对挫折,开源社区做出了回应,推出了非官方的 Google Drive 客户端,例如 Grive 或 SyncDrive。这些客户端是文件同步工具,可在本地文件系统和远程 Google Drive 之间同步文件和文件夹。因此,您无法使用这些工具安装 Google Drive。
如果您想在 Linux 上安装 Google Drive,可以尝试 google-drive-ocamlfuse (gdfuse
),这是一个由 Google Drive 支持的基于 FUSE 的文件系统。使用此用户空间文件系统,您可以在 Linux 上安装 Google Drive 帐户,并对存储在 Google Drive 中的文件/文件夹拥有完全读/写访问权限,就像它们是本地文件/文件夹一样。
在本教程中,我将介绍如何使用 google-drive-ocamlfuse 在 Linux 上安装 Google Drive。 google-drive-ocamlfuse 是用 OCaml 编写的,您可以使用 OPAM(OCaml 包管理器)来安装 google-drive-ocamlfuse 及其依赖项。以下指南显示了安装 google-drive-ocamlfuse 的发行版特定说明。
在 Debian 和 Ubuntu 上安装 google-drive-ocamlfuse
这些说明在 Debian 10 (buster) 和 Ubuntu 20.04 (focal) 上进行了测试。如果您在其他版本的 Debian/Ubuntu 上取得成功,请告诉我。
第一步是安装 OPAM。幸运的是,OPAM 在 Debian 10 和 Ubuntu 20.04 的基础存储库中可用。所以只需安装它:
接下来,按如下方式启动 OPAM。它会询问您一系列有关 OPAM 初始化的问题。您可以每次按 ENTER
选择默认答案。
接下来,更新 OPAM 包存储库。
OPAM 有一个名为 depext
的有用工具,它可以解决 OPAM 包的外部依赖关系。 depext
使用 apt-get
包管理器自动检测并安装 google-drive-ocamlfuse 的外部依赖项。
现在继续使用 depext
安装 google-drive-ocamlfuse 的外部依赖项。如下所示,depext
安装了几个 DEB 软件包(例如,libfuse-dev
、libsqlite3-dev
、m4
)。

最后,使用 opam
安装 google-drive-ocamlfuse。

成功构建后,将在 ~/.opam/default/bin
中找到 google-drive-ocamlfuse 二进制文件。将此路径添加到您的 PATH
环境变量中。
$ vi ~/.bashrc
PATH="$PATH:$HOME/.opam/default/bin"
$ source ~/.bashrc
通过 PPA 在 Ubuntu 上安装 google-drive-ocamlfuse
google-drive-ocamlfuse 的作者维护 google-drive-ocamlfuse 的 PPA 存储库。因此您可以更轻松地将其安装在 Ubuntu 及其衍生版本(例如 Linux Mint)上。
$ sudo add-apt-repository ppa:alessandro-strada/ppa
$ sudo apt update
$ sudo apt install google-drive-ocamlfuse
在 Fedora 上安装 google-drive-ocamlfuse
这些指令在 Fedora 33 上进行了测试。如果您在其他版本的 Fedora 上取得成功,请告诉我。
该过程从安装 OPAM 开始,这使得 google-drive-ocamlfuse 的安装变得轻松。 OPAM 包含在 Fedora 33 的基础存储库中。
接下来,按如下方式初始化 OPAM。它会询问您一系列有关 OPAM 初始化的问题。您可以每次按 ENTER
接受默认答案。
接下来,使用以下命令更新 OPAM 包存储库:
接下来,安装一个名为 depext
的 OPAM 软件包,它可以使用 Fedora 的 yum
软件包管理器安装 google-drive-ocamlfuse 的外部依赖项。
继续安装 google-drive-ocamlfuse 的外部依赖项。如下所示,多个 RPM 包(例如,fuse-devel
、gmp-devel
、sqlite-devel
)是通过 yum
安装的。

最后,使用 opam
安装 google-drive-ocamlfuse。

成功构建后,将在 ~/.opam/default/bin
中找到 google-drive-ocamlfuse 可执行文件。将此路径添加到您的 PATH
环境变量中。
$ vi ~/.bashrc
PATH="$PATH:$HOME/.opam/default/bin"
$ source ~/.bashrc
在其他 Linux 系统上安装 google-drive-ocamlfuse
如果您想在其他 Linux 发行版上安装 google-drive-ocamlfuse,最简单的方法是首先安装 OPAM。大多数现代 Linux 发行版在其存储库中提供 OPAM。安装 OPAM 后,其余步骤应与上述 Debian、Ubuntu 和 Fedora 相同。
Arch Linux: https://archlinux.org/packages/community/x86_64/opam/
OpenSUSE: https://software.opensuse.org/package/opam
Manjaro: https://discover.manjaro.org/packages/opam
使用 google-drive-ocamlfuse 挂载 Google Drive
配置 google-drive-ocamlfuse 的第一步是在您的主目录中运行它,不带任何参数:
$ google-drive-ocamlfuse
这将打开一个网络浏览器窗口,要求您登录您的 Google 帐户。登录后,您将看到以下屏幕,请求权限。单击允许
。

接下来,您必须授予 gdfuse
对 Google 云端硬盘的访问权限。单击允许
。

随后,浏览器窗口会显示:
The application was successfully granted access. Please wait for the client to retrieve the authorization tokens
此时,如果您返回启动 google-drive-ocamlfuse 的终端窗口,您将看到以下消息:
Access token retrieved correctly.
如果出于某种原因,您看到以下错误,只需从终端重新启动 google-drive-ocamlfuse 并再次执行 Google 授权步骤即可。
Cannot get token. Quitting.
至此,初始配置完成。您应该会看到创建了一个名为 ~/.gdfuse/default
的新目录,其中包含配置文件 config
和文件缓存。
现在继续为您的 Google Drive 创建本地安装点并安装 Google Drive,如下所示。
$ mkdir ~/googledrive
$ google-drive-ocamlfuse ~/googledrive
此时,您的 Google 云端硬盘应该可以通过 ~/googledrive
访问。您可以使用 mount 命令来验证这一点。
$ mount | grep google
您还可以使用 df
命令检查您的 Google 云端硬盘帐户还剩多少空间。
$ df ~/googledrive

要从文件系统卸载 Google Drive,只需运行:
$ fusermount -u ~/googledrive
同时安装多个 Google Drive 帐户
如果您有多个 Google 云端硬盘帐户,您可以同时安装它们。在这种情况下,使用 -label
选项来区分它们,如下所示。
$ google-drive-ocamlfuse -label [label] [mountpoint]
请注意,您在上面安装的没有任何标签的原始 Google 云端硬盘被分配了名为 default
的标签。
每次使用新标签配置 google-drive-ocamlfuse 时,您都需要执行上述相同的 Google 身份验证过程,但适用于不同的 Google 帐户。之后,将创建~/.gdfuse/[label]
来存储不同Google帐户的配置数据。
启动时自动挂载 Google Drive
如果您希望在启动时自动安装 Google Drive,您可以使用 systemd
来实现。创建以下 systemd
单元文件。在此示例中,使用的用户帐户是 dan,并且相应地定义了 google-drive-ocamlfuse 的路径和挂载点。因此,请根据您的环境进行调整。
$ sudo vi /etc/systemd/system/google-drive.service
[Unit]
Description=FUSE filesystem over Google Drive
After=network.target
[Service]
User=dan
Group=dan
ExecStart=/home/dan/.opam/default/bin/google-drive-ocamlfuse -label default /home/dan/googledrive
ExecStop=fusermount -u /home/dan/googledrive
Restart=always
Type=forking
[Install]
WantedBy=multi-user.target
Alias=google-drive.service
现在重新加载 systemd 并使用以下命令测试运行它:
$ sudo systemctl daemon-reload
$ sudo systemctl start google-drive
验证 Google 云端硬盘 systemd
服务的状态是否为活动:
$ sudo systemctl status google-drive

现在,如果您重新启动系统,您的 Google 云端硬盘帐户将自动安装并可供 systemd 使用。
如果您不想使用 systemd
,也可以使用 /etc/fstab
或 pam_mount
自动挂载 Google Drive。详细内容请参考官方文档。