CentOS7 安装 Trilium Notes 中文版 折腾记

CentOS7 安装 Trilium Notes 中文版 折腾记

CentOS7 安装 Trilium Notes 中文版 折腾记

独立观察员 2023 年 12 月 24 日

 

一、资源地址

仓库:https://github.com/Nriver/trilium-translation 

文档:https://github.com/Nriver/trilium-translation/blob/main/README_CN.md 

Trilium 原版:https://github.com/zadam/trilium 

 

二、尝试使用 Release 包(失败)

2.1、下载和运行

使用方法:

使用方法 – Windows, Linux, MacOS 直接使用 Release 打包的文件

  1. Release 里下载对应客户端
  2. 解压运行 (Linux 桌面运行 trilium, Linux 服务端运行 trilium.sh, Windows 运行 trilium.exe, macOS 运行 trilium.app).
  3. 玩去吧 🙂

注 1: Trilium 的服务端可以直接通过浏览器访问单独使用。同时也可以作为同步服务器和桌面客户端进行数据同步。 注 2: Trilium 更新需要同时更新服务端与客户端,版本必须一致。更新前以防万一请备份好数据.

 

wget https://github.com/Nriver/trilium-translation/releases/download/v0.62.4_20231222/trilium-cn-linux-x64-server.zip

下载并解压后,执行 trilium.sh:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

2.2、GLIBC 缺失

可以看到出错了,没有相关的 GLIBC。问问 ChatGPT

You:CentOS7 运行 Node 程序报错:version `GLIBC_2.27′ not found (required by ./node/bin/node)

ChatGPT

这个错误表明你的系统缺少 GLIBC(GNU C Library)的版本 2.27。Node.js 二进制文件(./node/bin/node)可能是在需要 GLIBC 2.27 的系统上编译的。

在 CentOS 7 上,GLIBC 版本通常不会更新到 2.27,因为它是较旧的发行版。解决这个问题的方法有几种:

  1. 升级系统: 尽可能升级到较新的发行版,如 CentOS 8。这将提供较新版本的 GLIBC。请注意,升级系统可能会涉及到更改和配置的调整,因此请确保在进行升级之前备份重要数据。

  2. 使用 Node 源代码编译: 从 Node.js 的源代码构建 Node.js 可能是一个解决方案。这将确保 Node.js 编译时使用的 GLIBC 版本与你的系统兼容。以下是大致的步骤:

    a. 下载并解压 Node.js 源代码:

    1. wget https://nodejs.org/dist/v{your_version}/node-v{your_version}.tar.gz
    2. tar xvf nodev{your_version}.tar.gz
    3. cd nodev{your_version}  

    b. 配置和编译:

    1. ./configure 
    2. make 

    c. 安装:

    sudo make install

  3. 使用 Node 版本管理工具: 使用 Node 版本管理工具(如 nvm 或 n)安装特定版本的 Node.js,这将自动处理与系统 GLIBC 版本的兼容性。例如,使用 nvm:

    1. nvm install {desired_version} 
    2. nvm use {desired_version}​

请注意,选项 1 和 2 都需要谨慎操作,并在执行之前备份重要数据,以防发生意外情况。

 

2.3、安装 nvm

这里我们选择第 3 种方法,需要先安装 nvm,再问问:

You:如何安装 nvm 呢?

ChatGPT:

您可以使用以下步骤在 CentOS 7 上安装 nvm(Node Version Manager):

  1. 安装 Git:

    sudo yum install git

  2. 使用 curl 安装 nvm:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

    这将下载并运行 nvm 安装脚本。请注意,这里使用的是 v0.39.1 版本的 nvm,您可以根据需要选择最新版本。

  3. 重启终端或运行以下命令以使 nvm 生效:

    source ~/.bashrc

    如果您使用的是 Zsh,可以运行:

    source ~/.zshrc

  4. 安装 Node.js:

    通过 nvm 安装 Node.js。以下是一个示例:

    nvm install node

    这将安装最新版本的 Node.js。如果您需要安装特定版本,可以使用:

    nvm install 14.17.0

  5. 选择 Node.js 版本:

    安装完成后,您可能需要选择您安装的 Node.js 版本。例如:

    nvm use node

    或者:

    nvm use 14.17.0

    这将设置当前终端会话使用指定的 Node.js 版本。如果您希望永久设置默认版本,可以运行:

    nvm alias default node

    或者:

    nvm alias default 14.17.0

现在,您已经成功安装了 nvm 并使用它安装了 Node.js。您可以使用 node -vnpm -v 命令来验证安装是否成功。

 

安装 nvm:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

2.4、安装 Node

安装 node:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

再次尝试执行 trilium.sh,还是老样子:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

再问问:

You:安了 node v21.5 还是报 `GLIBC_2.27′ not found

ChatGPT:

如果您安装了 Node.js v21.5 仍然遇到 “GLIBC_2.27 not found” 的问题,这可能是因为您的系统 GLIBC 版本仍然不满足 Node.js 的要求。在这种情况下,可以考虑以下几个解决方案:

  1. 尝试更旧的 Node.js 版本: 尝试安装一个较旧版本的 Node.js,该版本可能与您的系统 GLIBC 版本兼容。您可以使用 nvm 安装特定版本:

    nvm install 14.17.0

    或者选择已安装的某个版本:

    nvm use 14.17.0

    请注意,14.17.0 只是一个示例版本,您可以尝试其他较旧的版本。

  2. 升级操作系统: 考虑升级您的操作系统到一个更新的版本,如 CentOS 8。这将提供较新版本的 GLIBC,从而与 Node.js v21.5 兼容。

  3. 从源代码构建 Node.js: 下载 Node.js 源代码并从源代码编译可能是一个解决方案。这样可以确保 Node.js 使用的 GLIBC 版本与您的系统兼容。以下是大致的步骤:

    1. wget https://nodejs.org/dist/v21.5.0/node-v21.5.0.tar.gz
    2. tar xvf nodev21.5.0.tar.gz
    3. cd nodev21.5.0
    4. ./configure
    5. make
    6. sudo make install

    请注意,版本号可能需要根据您下载的实际版本进行调整。

无论您选择哪种方法,请确保在进行更改之前备份您的数据,并理解潜在的风险。

 

版本关系:

You:GLIBC_2.27、2.25、2.28 大概对应哪个版本的 Node?

ChatGPT:

通常来说,Node.js 的不同版本可能与不同的 GLIBC 版本兼容。以下是一些大致的匹配关系:

  • GLIBC 2.25: 通常与 Node.js 8.x 和 9.x 版本兼容。

  • GLIBC 2.27: 通常与 Node.js 10.x 和 11.x 版本兼容。

  • GLIBC 2.28: 通常与 Node.js 12.x 版本兼容。

这只是一个概括,并不是绝对的规则。Node.js 团队可能会在发布新版本时调整兼容性,而且一般来说,新版本的 Node.js 会尽可能地支持较新的 GLIBC 版本。因此,如果您遇到 GLIBC 版本问题,考虑使用较新版本的 Node.js 或者更新您的操作系统,以匹配 Node.js 最新的系统要求。

 

安装一个 v12.0 版本试试:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

还是老样子:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

2.5、其它尝试

是否是内置的原因:

You:如何给程序内置的 node 安装 GLIBC?

ChatGPT:

将 GLIBC(GNU C Library)内置到程序中是一个相当复杂的任务,通常不太推荐,因为 GLIBC 是操作系统的基本组件,其正确性和稳定性取决于宿主操作系统。GLIBC 需要与系统其他部分相互配合,并且内置 GLIBC 可能会导致不可预知的问题。

通常情况下,更好的方法是通过以下几种方式之一解决 GLIBC 依赖性问题:

  1. 使用 Docker 或其他容器技术: 创建一个包含所需 GLIBC 版本的容器,然后在容器中运行您的 Node.js 程序。这样,您可以确保程序在一个独立的环境中运行,并且不受主机系统的影响。

  2. 升级操作系统: 如果可能的话,考虑将您的操作系统升级到支持所需 GLIBC 版本的版本。这可能涉及到一些工作,但可以提供更长期的解决方案。

  3. 从源代码编译 Node.js: 如果您确信您的程序需要与特定版本的 GLIBC 兼容,您可以从 Node.js 源代码编译 Node.js。这样,您可以确保 Node.js 与您的系统 GLIBC 版本兼容。具体步骤在之前的回答中已经提到。

请注意,内置 GLIBC 可能引入一系列问题,包括性能、稳定性和安全性方面的问题。因此,在进行此类操作之前,请确保了解潜在的风险,并在可能的情况下选择更为标准和可维护的解决方案。

 

换一种服务端安装方式:

服务端 – Linux – 通过 AUR 安装 Linux 服务端

安装:yay -S trilium-server-cn

直接运行 (可以使用 pm2 等应用管理来启动):trilium-server-cn

同时提供了一个 trilium-server-cn 的服务,也可以通过 systemctl 来管理:systemctl start trilium-server-cn

 

ChatGPT:

如果你是在 Arch Linux 或基于 Arch Linux 的发行版中(如 Manjaro)使用 AUR(Arch User Repository),你可以尝试通过 AUR 中提供的 Node.js 包来解决 GLIBC 版本的问题。在 AUR 中,通常有提供了使用了不同编译选项的 Node.js 包,其中一些可能与较旧的 GLIBC 版本兼容。

以下是一些在 AUR 中搜索并安装 Node.js 的方法:

  1. 使用 AUR 辅助工具: Arch Linux 系统通常有一些 AUR 辅助工具,例如 yaytrizen。你可以使用这些工具搜索和安装 AUR 中的软件包。示例:

    # 使用 yay yay -S nodejs-lts-erbium

    或者

    # 使用 trizen trizen -S nodejs-lts-erbium

    这里 nodejs-lts-erbium 是一个示例,你可以根据需要选择其他 Node.js 版本。

  2. 手动下载 PKGBUILD 文件: 在 AUR 中,每个软件包都有一个 PKGBUILD 文件,描述了软件包的构建过程。你可以手动下载 Node.js 的 PKGBUILD 文件并根据需要修改构建选项。然后使用 makepkg 构建和安装软件包。示例:

    1. # 下载 PKGBUILD 文件
    2. curl O https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=nodejs-lts-erbium
    3.  
    4. # 使用 makepkg 构建和安装软件包
    5. makepkg si

请注意,这些示例可能需要根据实际情况进行调整。使用 AUR 时,请确保理解所安装软件包的来源,以确保安全性。

 

看来只能支持 Arch Linux,放弃。

 

开始尝试安装原版:

https://github.com/zadam/trilium/wiki/Packaged-server-installation 

 

下载

https://github.com/zadam/trilium/releases/download/v0.62.4/trilium-linux-x64-server-0.62.4.tar.xz

CentOS7 安装 Trilium Notes 中文版 折腾记

 

使用 tar -xf 进行解压:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

移动文件夹:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

执行,还是老样子:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

三、使用 Docker 版

3.1、下载 docker-compose 配置文件

换中文版的 Docker 方式。

除了直接下载 Github 的 Release 文件,还可以通过以下方式安装服务端

 

? 服务端 – Linux – 在 Docker 里运行服务端

Trilium Notes 的服务端可以用我构建好的 docker 镜像运行。注意!请不要使用加速镜像,可以避免类似 #16, #14 下到旧版导致无法启动的问题.

如果无法拉取 docker 镜像,可以参考 docker 官方文档http-proxy.conf 设置代理。

直接下载 docker-compose.yml.

下载 docker-compose 配置文件

wget https://raw.githubusercontent.com/Nriver/trilium-translation/main/docker-compose.yml

运行:docker-compose up -d

 

它会从 Docker Hub 直接拉镜像运行.

浏览器打开 http://127.0.0.1:8080 访问服务端.

笔记数据会在 docker-compose.yml 同目录下

(docker 镜像存了一个 0.47.5 的旧版本备份,需要的可以自己拿)

 

? Docker 服务端版本更新

cd 到 docker-compose.yml 所在目录

先停止 trilium:docker-compose down

拉取最新镜像:docker-compose pull

运行:docker-compose up -d

 

下载 docker 文件:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

目前运行不了,需要安装 docker:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

3.2、安装 docker-compose

You:docker-compose: command not found

ChatGPT:

如果在使用 docker-compose 命令时出现 “command not found” 错误,可能是因为 Docker Compose 没有安装或者没有正确配置环境变量。以下是一些解决方法:

1. 安装 Docker Compose:

确保你已经安装了 Docker Compose。你可以通过以下步骤安装:

Linux:

  1. sudo curl “https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)” /usr/local/bin/dockercompose
  2. sudo chmod  /usr/local/bin/dockercompose

macOS:

brew install docker-compose

Windows:

在 Windows 上,Docker Desktop 包含 Docker Compose。你可以从 Docker Desktop 安装程序中选择安装。

 

2. 添加执行权限:

确保 docker-compose 文件有执行权限。如果使用 Linux 或 macOS,请运行以下命令:

sudo chmod x /usr/local/bin/docker-compose

 

3. 确保 docker-compose 在 PATH 中:

确保 docker-compose 所在的目录在系统的 PATH 环境变量中。你可以通过编辑 shell 配置文件(如 ~/.bashrc~/.zshrc)来添加:

export PATH=$PATH:/usr/local/bin

然后运行 source ~/.bashrcsource ~/.zshrc,以使更改生效。

 

4. 检查安装:

运行以下命令检查 Docker Compose 是否安装成功:

docker-compose --version

如果一切设置正确,应该显示 Docker Compose 的版本信息。

如果问题仍然存在,请确保按照官方文档或相应平台的安装说明来安装 Docker Compose。

 

实践:

CentOS7 安装 Trilium Notes 中文版 折腾记

3.3、安装 docker

再次运行 docker-compose up -d

CentOS7 安装 Trilium Notes 中文版 折腾记

 

询问 ChatGPT:

You:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

ChatGPT

这个错误通常表示 Docker 客户端不能连接到 Docker 守护进程。有几种可能的原因和解决方法:

1. 用户权限问题:

确保你当前的用户有权限访问 Docker。默认情况下,Docker 守护进程的 Unix 套接字文件位于 /var/run/docker.sock,而这个文件通常是具有 docker 组成员资格的用户才能访问的。

你可以将当前用户添加到 docker 组,然后注销并重新登录,或者执行以下命令:

sudo usermod -aG docker $USER

注意:在一些系统中,你可能需要重新启动计算机才能使组成员资格生效。

2. Docker 服务是否运行:

确保 Docker 服务正在运行。你可以使用以下命令来检查 Docker 服务状态:

sudo systemctl status docker

如果服务未运行,你可以使用以下命令启动它:

sudo systemctl start docker

3. Docker 守护进程没有正确配置:

在某些情况下,Docker 守护进程可能没有正确配置。你可以检查 /etc/docker/daemon.json 文件以查看配置。确保文件中没有语法错误,并且重要配置正确。

4. Docker 守护进程崩溃:

有时 Docker 守护进程可能会崩溃。你可以通过重新启动 Docker 服务来尝试解决:

sudo systemctl restart docker

5. 检查 Docker 守护进程日志:

你可以查看 Docker 守护进程的日志以获取更多详细信息:

sudo journalctl -xe | grep docker

6. 文件系统空间不足:

确保文件系统上有足够的空间。如果文件系统空间不足,Docker 守护进程可能无法启动。

7. Docker 命令需要 sudo

在某些系统上,Docker 命令可能需要使用 sudo 才能执行。如果你尝试在没有 sudo 的情况下运行 Docker 命令,请尝试添加 sudo 并重新运行。

如果上述方法仍未解决问题,可能需要更详细的检查 Docker 守护进程的状态和日志来找到问题的根本原因。

 

应该是还没安装 docker:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

ChatGPT:

如果你在尝试查看 Docker 服务状态时遇到 “Unit docker.service could not be found.” 错误,可能是因为 Docker 守护进程的 systemd 服务单元(service unit)未正确安装或未在系统中注册。

以下是一些可能的原因和解决方法:

1. Docker 未正确安装:

确保 Docker 已正确安装。你可以按照 Docker 官方文档提供的步骤进行安装。

 

2. Docker 服务未启用:

如果 Docker 服务未在 systemd 中注册,你需要启用它。使用以下命令启用并启动 Docker 服务:

  1. sudo systemctl enable docker
  2. sudo systemctl start docker

 

3. 使用旧版本的 Docker:

在较新的 Docker 版本中,服务可能被命名为 dockerd 而不是 docker。尝试使用以下命令检查服务状态:

sudo systemctl status dockerd

如果 dockerd 存在,你应该能够看到服务的状态信息。

 

4. 查找 Docker 服务文件:

确保 /lib/systemd/system/docker.service/etc/systemd/system/docker.service 文件存在。这是 Docker 服务的 systemd 单元文件。

 

5. 重新安装 Docker:

如果上述步骤无效,尝试重新安装 Docker。

在 Ubuntu 上:

  1. sudo aptget remove docker dockerengine docker.io containerd runc
  2. sudo aptget update
  3. sudo aptget install docker.io

在 CentOS 上:

  1. sudo yum remove docker dockerclient dockerclientlatest dockercommon dockerlatest dockerlatestlogrotate dockerlogrotate dockerengine
  2. sudo yum install docker

请注意,具体的命令可能根据你的 Linux 发行版而有所不同。

 

6. 使用 snap 安装 Docker:

在一些 Linux 发行版上,你可以使用 snap 安装 Docker。在这种情况下,Docker 服务的 systemd 单元文件可能位于 /var/lib/snapd/snap/docker/xxxx/lib/systemd/system/docker.service。你可以检查该路径。

ls /var/lib/snapd/snap/docker/xxxx/lib/systemd/system/docker.service

替换 xxxx 为实际的版本号。

通过检查上述步骤,你应该能够解决 “Unit docker.service could not be found.” 的问题。如果问题仍然存在,可能需要更详细的系统信息来进一步诊断。

 

在 CentOS7 上如何安装 Docker

ChatGPT

在 CentOS 7 上,可以按照以下步骤安装 Docker:

1. 卸载旧版本

如果你之前已经安装过旧版本的 Docker,请先卸载:

sudo yum remove docker docker-common docker-selinux docker-engine

2. 安装依赖

确保系统上已经安装了必要的依赖:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3. 添加 Docker YUM 源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4. 安装 Docker Engine

sudo yum install docker-ce docker-ce-cli containerd.io

5. 启动 Docker 服务

sudo systemctl start docker

6. 设置 Docker 开机启动

sudo systemctl enable docker

7. 验证安装

运行以下命令来验证 Docker 是否正确安装:

docker --version

你应该能够看到 Docker 版本信息。然后可以运行一个简单的测试:

sudo docker run hello-world

如果一切正常,你将看到一条消息,说明 Docker 已成功安装并正在运行。

以上步骤应该足以在 CentOS 7 上安装 Docker。请注意,具体的命令和步骤可能会有所变化,具体取决于你的系统和 Docker 的版本。在安装之前,请查看 Docker 官方文档以获取最新的安装说明。

 

按照步骤成功安装了 Docker:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

四、拉取镜像和使用浏览器访问

再次运行 docker-compose up -d ,可以成功执行了:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

然后浏览器上就可以访问了(8080 端口):

CentOS7 安装 Trilium Notes 中文版 折腾记

 

选择第一项(新用户),下一步:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

设置密码:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

登录:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

主页面:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

新建一篇笔记:

CentOS7 安装 Trilium Notes 中文版 折腾记

 

五、说明

1、这样操作后(使用 Docker 版本),重启服务器,笔记服务也能自启,还是挺方便的。

2、数据在 yml 同级目录下:

CentOS7 安装 Trilium Notes 中文版 折腾记

CentOS7 安装 Trilium Notes 中文版 折腾记

 

原创文章,转载请注明: 转载自 独立观察员(dlgcy.com)

本文链接地址: [CentOS7 安装 Trilium Notes 中文版 折腾记](https://dlgcy.com/centos7-trilium-cn/)

关注微信公众号 独立观察员博客(DLGCY_BLOG) 第一时间获取最新文章

%title插图%num

%title插图%num1

发表评论