Trilium 是一个开源的笔记软件项目,它允许用户创建、组织和管理他们的笔记。
项目地址
项目地址: https://github.com/zadam/trilium
汉化地址: https://github.com/Nriver/trilium-translation
安装准备
环境: CentOS 7.9
、trilium-cn-linux-x64-server.zip
(服务器端)、trilium-cn-windows-x64.zip
(客户端)
方式一
下载安装包,通过 SSH
工具上传至服务器
图1
方式二
在服务器中通过 wget
拉取,直接下载安装包
1
wget https://github.com/Nriver/trilium-translation/releases/download/v0.55.1_20220922/trilium-cn-linux-x64-server.zip
服务器端-安装
安装 zip
解压工具
1
yum install -y unzip zip
解压 trilium-cn-linux-x64-server.zip
1
unzip trilium-cn-linux-x64-server.zip
将解压后的文件移动到你想存放的位置
1
sudo mv trilium-linux-x64-server /opt/trilium
进入 /opt/trilium
目录下,通过 ./trilium.sh
启动,启动报错,错误解决方案如下
报错解决
错误一
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 查看当前的版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
# 执行命令升级
sudo yum provides libstdc++.so.6
cd /usr/local/lib64
# 下载最新版本的libstdc.so_.6.0.26
sudo wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
# 解压
unzip libstdc.so_.6.0.26.zip
# 将下载的最新版本拷贝到 /usr/lib64
cp libstdc++.so.6.0.26 /usr/lib64
cd /usr/lib64
# 查看 /usr/lib64 下 libstdc++.so.6 链接的版本
ls -l | grep libstdc++
# 删除/usr/lib64 原来的软连接 libstdc++.so.6,删除之前先备份一份
sudo rm libstdc++.so.6
# 链接新的版本
sudo ln -s libstdc++.so.6.0.26 libstdc++.so.6
# 查看新版本,成功
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
错误二
错误三
1
2
3
4
5
6
7
8
9
10
11
12
13
cd /usr/local/lib64
wget http://ftp.gnu.org/pub/gnu/make/make-4.3.tar.gz
tar -zxvf make-4.3.tar.gz
cd make-4.3
./configure --prefix= /usr
make && make install
make -v
错误四
1
2
3
4
5
6
7
8
9
10
11
12
13
cd /usr/local/lib64
wget http://ftp.gnu.org/pub/gnu/bison/bison-3.0.5.tar.gz
tar -zxvf bison-3.0.5.tar.gz
cd bison-3.0.5
./configure
make && make install
bison --version
错误五
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
yum -y install centos-release-scl
yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
#启动 gcc8
scl enable devtoolset-8 bash
# 通过 scl 命令启动 gcc,这个只是暂时的,当你的 shell 关闭后或者重启就会恢复原来的版本,
要想一直使用升级后的版本可以使用如下命令:
echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile
source /etc/bashrc
# 最后查看 gcc 版本
gcc --version
g++ --version
报错
Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64
问题原因
CentOS 7
的 SCL
源在 2024年6月30日
停止维护了。
当前 scl
源里面默认使用了centos
官方的地址,无法连接,需要替换为阿里云。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 重命名原来的文件
cd /etc/yum.repos.d/
mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak
mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak
vim CentOS-SCLo-rh.repo
# 粘贴以下内容
[ centos-sclo-rh]
name = CentOS-7 - SCLo rh
baseurl = https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck = 1
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
不用做,报错可以尝试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
mv /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo.bak
vim /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
# 粘贴以下内容
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 ( GNU/Linux)
mQENBFYM/AoBCADR9Q5cb+H5ndx+QkzNBQ88wcD+g112yvnHNlSiBMOnNEGHuKPJ
tujZ+eWXP3K6ucJckT91WxfQ2fxPr9jQ0xpZytcHcZdTfn3vKL9+OwR0npp+qmcz
rK8/EzVz/SWSgBQ5xT/HUvaeoVAbzBHSng0r2njnBAqABKAoTxgyRGKSCWduKD32
7PF2ZpqeDFFhd99Ykt6ar8SlV8ToqH6F7An0ILeejINVbHUxd6+wsbpcOwQ4mGAa
/CPXeqqLGj62ASBv36xQr34hlN/9zQMViaKkacl8zkuvwhuHf4b4VlGVCe6VILpQ
8ytKMV/lcg7YpMfRq4KVWBjCwkvk6zg6KxaHABEBAAG0aENlbnRPUyBTb2Z0d2Fy
ZUNvbGxlY3Rpb25zIFNJRyAoaHR0cHM6Ly93aWtpLmNlbnRvcy5vcmcvU3BlY2lh
bEludGVyZXN0R3JvdXAvU0NMbykgPHNlY3VyaXR5QGNlbnRvcy5vcmc+iQE5BBMB
CgAjAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AFAmIgbg0ACgkQTrhOcfLu
nVUzkAgAgJSl++PWo69OGI8eUn53whhfJ6ZyKCOyI9+Flghtfwq1mdcP4dIoAubw
nlQcvEsE4Erob2I1S+n/dXYh9y2+Si3HdXRreKzC1rCSG5ebYRrEqeMoJhBoDFSd
xydtxi03l+Dh2iWtLtXpAM85qHvgIrPfdUnLRVbDBT52Ph5igZl8ux2ooJ94CPm4
yTG/0aPIebNQsLP8LEpa2wad2WJfIeFgjEHranWIzhzapGgwyf2Iu9Sz3L8ljiz2
2HixHpI2es3IqgLyRsTBo2/EdbvMJWlFwiESe1UQIW6ObKNnVabIHUAxZgOlj59o
JhPOzTBG+Ma2fLs+ZFBV88cpKdctFQ==
= +Gr2
-----END PGP PUBLIC KEY BLOCK-----
不用做,报错可以尝试
1
2
yum-config-manager --enable centos-sclo-rh
yum-config-manager --enable centos-sclo-sclo
不用做,报错可以尝试
1
2
yum clean all
yum makecache
错误六
报错
Error: /lib64/libm.so.6: version `GLIBC_2.29’ not found
该问题表明 glibc
版本太低,可以安装更高版本的 glibc
,可以从以下地址下载压缩包
官方网站:https://ftp.gnu.org/gnu/glibc/
清华镜像:https://mirrors.tuna.tsinghua.edu.cn/gnu/glibc/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cd /usr/local/lib64
wget http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
tar -zxvf glibc-2.29.tar.gz
# 进入解压后的目录,创建 build 目录 (代码运行需要 build 目录),进入 build 目录后,再进行后面的操作
cd glibc-2.29
mkdir build
cd build
** 注意:--prefix= /usr 一定不能改,只能是 --prefix= /usr,否则安装不成功,后面坑一堆!**
../configure --prefix= /usr --disable-profile --enable-add-ons --with-headers= /usr/include --with-binutils= /usr/bin
make && make install
# 安装之后查看是否成功
ll /lib64/libc*
# 查看 glibc 支持的版本
strings /lib64/libc.so.6 | grep GLIBC
创建服务
为了让程序方便管理、后台启动,创建服务,通过 systemctl start trilium
来启动服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 创建服务
vi /etc/systemd/system/trilium.service
# 把下面的内容粘贴进去
[ Unit]
Description = Trilium Daemon
After = syslog.target network.target
[ Service]
Type = simple
ExecStart = /opt/trilium/trilium.sh
WorkingDirectory = /opt/trilium/
RestartSec = 5s
TimeoutStopSec = 20s
Restart = on-failure
[ Install]
WantedBy = multi-user.target
服务器端的启动成功后,通过 ip+:8080
进入网页
图2
下面是常用的服务操作相关的命令
1
2
3
4
5
6
7
systemctl start trilium # 启动服务
systemctl stop trilium # 停止服务
systemctl restart trilium # 重新启动服务
systemctl status trilium # 查看服务启动状态
journalctl -u trilium # 查看服务日志
systemctl enable trilium # 设置开机启动
systemctl disable trilium # 取消开机启动
电脑端-安装
解压 trilium-cn-windows-x64.zip
到一个新的目录,运行 .exe
文件就可以了
如果之前安装过原版的,安装汉化版后,显示的仍是英文,进到 C:\Users\用户名\AppData\Roaming
目录下,删除 Trilium Notes、trilium-data
文件夹
数据目录
document.db
: 里面包含了所有的笔记内容
config.ini
: 是软件相关的设置,可以设置使用的端口
backup
: 里面是软件自动备份的数据库
log
: 日志文件
数据目录的存储位置
(1) 客户端
win
: C:\Users\用户名\AppData\Roaming\trilium-data
linux
: /home/用户名/.local/share/trilium-data
mac
: /Users/用户名/Library/ApplicationSupport/trilium-data
(2) 服务器端
linux-server
在 /home/用户名/trilium-data
docker
在 docker-compose.yml
同目录的文件夹里 trilium-data
更该数据目录的位置
(1) Linux
中修改数据存储目录的方法
1
export TRILIUM_DATA_DIR = /home/myuser/data/my-trilium-data
(2) Windows
中修改数据存储目录的方法
图3
更改数据目录的位置 (高级做法)
Windows 批处理文件
在 trilium
安装目录下,创建一个 startWindows.bat
文件 (编码格式 utf-8
),内容如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
::这几句是为防止乱码的
REM
chcp 65001
CLS
echo ===== 当前的Trilium数据存储位置环境变量是 =====
set TRILIUM_DATA_DIR
echo ===== 重新设置Trilium数据存储位置环境变量 =====
::这个 H:\P rogramFiles\m y-trilium-data 可以替换成 你想要的 位置
::这样每次启动就用 指定的 临时 环境变量
set TRILIUM_DATA_DIR = H:\P rogramFiles\m y-trilium-data
echo ===== 修改后Trilium数据存储位置环境变量是 =====
set TRILIUM_DATA_DIR
echo ===== 后台启动trilium =====
start /b trilium.exe
startWindows.bat
用于设置和修改 Trilium
数据存储位置的环境变量,并后台启动 Trilium
程序,脚本的步骤如下:
@echo off : 关闭命令的回显
REM : 是一个注释符号,用于添加对代码的解释或说明。在批处理脚本中,rem 后面的文字会被视为注释,不会被执行,例如,“rem 这是注释”,这一行只是作为一个注释,不会影响脚本的执行
“chcp 65001” 命令用于设置命令行字符集为 UTF-8,以防止乱码
然后,“cls” 脚本清屏,并输出当前 Trilium 数据存储位置环境变量的值
接下来,脚本重新设置 Trilium 数据存储位置环境变量的值为 H:\ProgramFiles\my-trilium-data
然后,脚本再次输出修改后的 Trilium 数据存储位置环境变量的值
最后,脚本使用 “start /b” 命令后台启动 Trilium 程序
你可以将脚本中的 H:\ProgramFiles\my-trilium-data 替换为你想要使用的其他目录路径。这样,每次运行脚本时,Trilium 程序将使用指定的临时环境变量启动,而该环境变量的值可以> 在脚本中修改
运行 startWindows.bat
,运行结果如下
1
2
3
4
5
6
===== 当前的Trilium数据存储位置环境变量是 =====
Environment variable TRILIUM_DATA_DIR not defined
===== 重新设置Trilium数据存储位置环境变量 =====
===== 修改后Trilium数据存储位置环境变量是 =====
TRILIUM_DATA_DIR = H:\P rogramFiles\m y-trilium-data
===== 后台启动trilium =====
Linux 脚本
在 trilium-linux 安装目录下,创建一个 startLinux.sh
文件,内容如下所示
1
2
3
4
5
6
7
8
9
10
#!/bin/sh
echo "=====当前的Trilium数据存储位置环境变量是====="
echo $TRILIUM_DATA_DIR
echo "=====重新设置Trilium数据存储位置环境变量====="
export TRILIUM_DATA_DIR = /media/shijunzhi/TOSHIBA/ProgramFiles/my-trilium-data
echo "=====修改后Trilium数据存储位置环境变量是====="
echo $TRILIUM_DATA_DIR
echo "=====后台启动Trilium====="
nohup ./trilium &
# trilium 程序的输出内容在当前目录的 nohup.out 文件中
运行方式: 在命令行输入 ./startLinux.sh
startLinux.sh
的目的是更改 Trilium
数据存储位置的环境变量,并在后台启动 Trilium
,脚本的步骤如下:
#!/bin/sh: 告诉操作系统脚本应该使用哪个解释器来运行。在这种情况下,脚本将使用标准的Unix shell。
echo : 打印
echo $TRILIUM_DATA_DIR: 打印当前 Trilium 数据存储位置的环境变量值
export TRILIUM_DATA_DIR=/media/shijunzhi/TOSHIBA/ProgramFiles/my-trilium-data: 重新设置 Trilium 数据存储位置的环境变量,将其设置为新的路径
echo $TRILIUM_DATA_DIR: 打印修改后的 Trilium 数据存储位置的环境变量值
nohup ./trilium &: 后台启动 Trilium。nohup 命令使程序在后台运行,并忽略挂起信号。& 使 shell 在后台运行该命令
双开Trilium
Windows 批处理文件 startWindows.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
::这几句是为防止乱码的
REM
chcp 65001
CLS
echo ===== 当前的Trilium数据存储位置环境变量是 =====
set TRILIUM_DATA_DIR
echo ===== 重新设置Trilium数据存储位置环境变量 =====
::这个 H:\P rogramFiles\m y-trilium-data 可以替换成 你想要的 位置
::这样每次启动就用 指定的 临时 环境变量
set TRILIUM_DATA_DIR = H:\P rogramFiles\m y-trilium-data
echo ===== 修改后Trilium数据存储位置环境变量是 =====
set TRILIUM_DATA_DIR
echo ===== 当前的Trilium启动端口是 =====
set TRILIUM_PORT
echo ===== 重新设置Trilium启动端口 =====
set TRILIUM_PORT = 8090
echo ===== 修改后Trilium启动端口是 =====
set TRILIUM_PORT
echo ===== 后台启动trilium =====
start /b trilium.exe
Linux 脚本 startLinux.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
echo "=====当前的Trilium数据存储位置环境变量是====="
echo $TRILIUM_DATA_DIR
echo "=====重新设置Trilium数据存储位置环境变量====="
export TRILIUM_DATA_DIR = /media/shijunzhi/TOSHIBA/ProgramFiles/my-trilium-data
echo "=====修改后Trilium数据存储位置环境变量是====="
echo $TRILIUM_DATA_DIR
echo "=====当前的Trilium启动端口是====="
echo $TRILIUM_PORT
echo "=====重新设置Trilium启动端口====="
export TRILIUM_PORT = 8100
echo "=====修改后Trilium启动端口是====="
echo $TRILIUM_PORT
echo "=====后台启动Trilium====="
nohup ./trilium &
使用说明
比如在 Windows
系统上,我可以写 2 个批处理文件
startWindowsWork.bat
存储位置是 H:\ProgramFiles\work-trilium-data
端口是 8090
startWindowsLife.bat
存储位置是 H:\ProgramFiles\life-trilium-data
端口是 8100
这样,我就可以同时启动 2
个 Trilium
,一个用来记录工作笔记,另一个用来记录生活娱乐笔记,两个相互独立,互不干扰
还原备份
英文文档对于还原备份的描述:
Let’s assume you want to restore the weekly backup, here’s how to do it:
find data directory Trilium uses - easy way is to open “About Trilium Notes” from “Menu” in upper left corner and looking at “data directory”
I’ll refer to as data directory from now on ~/trilium-data
find - this is the document backup ~/trilium-data/backup/backup-weekly.db
at this point stop/kill Trilium
delete , and (latter two files are auto generated) /trilium-data/document.db、 /trilium-data/document.db-wal、~/trilium-data/document.db-shm
copy and rename this to /trilium-data/backup/backup-weekly.db、 /trilium-data/document.db
make sure that the file is writable, e.g. with chmod 600 document.db
start Trilium again
If you have configured sync then you need to do it across all members of the sync cluster, otherwise older version (restored backup) of the document will > be detected and synced to the newer version.
翻译:
我们假设您想恢复每周备份,以下是操作步骤:
找到 Trilium 使用的数据目录 - 简单方法是打开左上角 “菜单” 中的 “关于 Trilium Notes”,并查看 “数据目录”
从现在开始,我将称之为 “~/trilium-data”
找到 - 这是文档备份 “~/trilium-data/backup/backup-weekly.db”
此时停止/杀死 Trilium
删除 (~/trilium-data/document.db 和 ~/trilium-data/document.db-wal 和 ~/trilium-data/document.db-shm) 这三个文件(后两个文件是自动生成的)
复制 “/trilium-data/backup/backup-weekly.db” 文件并将他重命名为 “ /trilium-data/document.db”
确保该文件可写,例如使用 “chmod 600 document.db” 命令
重新启动Trilium
如果您已配置同步,则需要将其应用于同步集群的所有成员,否则将检测到旧版本(已恢复备份)的文档并将其同步到新版本。
总结:/trilium-data/backup
文件夹下放的备份是数据,根据名称可知,分别是 每日、每周、每月备份
,我们可以在 triliun
中的备份选项中点击 立即备份
,生成当前时间点的备份数据,/trilium-data
文件夹下的 document.db
是我们正在使用的数据文件,将 /trilium-data
文件夹下的 document.db、document.db-wal、document.db-shm
删除,将我们复制的备份文件复制到 /trilium-data
文件夹下并重命名位 document.db
,然后启动 trilium