Buku 书签管理完全指南 / 第 02 章:安装与配置
第 02 章:安装与配置
学习通过多种方式安装 Buku,配置环境变量、浏览器扩展和开发环境。
2.1 环境要求
系统要求
| 项目 | 最低要求 | 推荐配置 |
|---|
| Python | 3.8+ | 3.10+ |
| 操作系统 | Linux / macOS / Windows | Linux |
| 磁盘空间 | 10 MB | 50 MB(含数据库) |
| 内存 | 64 MB | 128 MB |
| 网络 | 可选(离线可用) | 用于获取网页标题 |
Python 依赖
Buku 的核心依赖非常少,大部分为 Python 标准库模块:
| 依赖包 | 用途 | 是否必需 |
|---|
requests | HTTP 请求(获取标题) | 推荐 |
beautifulsoup4 | HTML 解析 | 推荐 |
cryptography | 加密功能 | 可选 |
flask | Web 服务器 | 可选 |
flask-admin | Web UI | 可选 |
urllib3 | HTTP 库 | 随 requests 安装 |
# 查看 Python 版本
python3 --version
# Python 3.10.12
# 查看 pip 版本
pip3 --version
# pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
2.2 通过 pip 安装(推荐)
基本安装
# 安装 Buku(核心功能)
pip3 install buku
# 安装 Buku(含所有可选依赖)
pip3 install buku[extras]
# 安装到用户目录(无需 root 权限)
pip3 install --user buku
# 安装到用户目录,含可选依赖
pip3 install --user buku[extras]
安装可选依赖
# 安装加密支持
pip3 install cryptography
# 安装 Web 服务器支持
pip3 install flask flask-admin
# 安装网络请求支持(获取网页标题)
pip3 install requests beautifulsoup4
# 一次性安装所有可选依赖
pip3 install cryptography flask flask-admin requests beautifulsoup4
pip 安装注意事项
# 如果遇到权限错误,使用 --user 或 sudo
pip3 install --user buku
# 或
sudo pip3 install buku
# 如果系统同时有 Python 2 和 Python 3
pip3 install buku # 明确使用 pip3
# 使用虚拟环境安装(推荐,避免系统污染)
python3 -m venv ~/buku-venv
source ~/buku-venv/bin/activate
pip install buku
# 退出虚拟环境后需要激活才能使用
# 或者创建一个 alias
alias buku="~/buku-venv/bin/buku"
验证安装
# 检查 Buku 版本
buku --version
# Buku 4.9
# 查看帮助
buku -h
# 快速测试
buku -a https://example.com "测试书签" ,test
buku -s test
buku -d 1
2.3 通过系统包管理器安装
Debian / Ubuntu
# 更新包索引
sudo apt update
# 安装 Buku
sudo apt install buku
# 注意:系统包版本可能较旧
buku --version
# 如需最新版本,建议使用 pip
pip3 install --user --upgrade buku
Arch Linux / Manjaro
# 从官方仓库安装
sudo pacman -S buku
# 或使用 AUR(最新版本)
yay -S buku-git
Fedora
# 从官方仓库安装
sudo dnf install buku
macOS(Homebrew)
# 安装 Homebrew(如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Buku
brew install buku
Alpine Linux
openSUSE
各平台安装方式对比
| 平台 | 命令 | 版本时效性 | 备注 |
|---|
| pip (通用) | pip3 install buku | 最新 | 推荐 |
| Debian/Ubuntu | apt install buku | 较旧 | 系统包 |
| Arch Linux | pacman -S buku | 较新 | 官方仓库 |
| Fedora | dnf install buku | 较新 | 官方仓库 |
| macOS | brew install buku | 较新 | Homebrew |
| Alpine | apk add buku | 较旧 | 社区仓库 |
2.4 从源码安装
克隆仓库
# 克隆源码
git clone https://github.com/jarun/buku.git
cd buku
# 查看分支
git branch -a
# 切换到稳定版
git checkout v4.9
# 或使用最新开发版
git checkout master
安装
# 方法一:使用 pip 安装(推荐)
pip3 install .
# 方法二:使用 setup.py
python3 setup.py install
# 方法三:开发模式安装(可编辑)
pip3 install -e .
# 安装可选依赖
pip3 install -e ".[extras]"
运行测试
# 安装测试依赖
pip3 install pytest pytest-cov
# 运行测试
python3 -m pytest tests/
# 运行测试并生成覆盖率报告
python3 -m pytest --cov=buku tests/
2.5 Docker 安装
使用 Docker Hub 镜像
# 拉取官方镜像
docker pull jarun/buku
# 运行一次命令
docker run --rm -v ~/buku_data:/root/.local/share/buku jarun/buku -p
# 交互式使用
docker run --rm -it -v ~/buku_data:/root/.local/share/buku jarun/buku
# 添加书签
docker run --rm -v ~/buku_data:/root/.local/share/buku \
jarun/buku -a https://example.com "测试" ,test
构建本地镜像
# Dockerfile
FROM python:3.11-slim
# 安装依赖
RUN pip3 install --no-cache-dir buku cryptography flask flask-admin
# 创建数据目录
RUN mkdir -p /root/.local/share/buku
# 暴露 Web 服务端口
EXPOSE 8080
# 默认启动 Web 服务
CMD ["buku", "--sr", "8080"]
# 构建镜像
docker build -t buku-local .
# 运行
docker run -d -p 8080:8080 -v ~/buku_data:/root/.local/share/buku buku-local
注意:Docker 部署的详细说明将在第 11 章:Docker 部署中深入介绍。
2.6 配置环境变量
常用环境变量
| 环境变量 | 用途 | 默认值 |
|---|
BUKU_DB | 自定义数据库路径 | ~/.local/share/buku/bookmarks.db |
EDITOR | 外部编辑器 | 系统默认 |
BROWSER | 默认浏览器 | 系统默认 |
# 在 .bashrc 或 .zshrc 中添加配置
cat >> ~/.bashrc << 'EOF'
# Buku 配置
export BUKU_DB="$HOME/.local/share/buku/bookmarks.db"
export EDITOR="vim"
alias bk='buku'
alias bks='buku -s'
alias bka='buku -a'
EOF
# 使配置生效
source ~/.bashrc
Shell 补全
# Buku 内置补全脚本生成
buku --comp bash > ~/.buku-completion.bash
echo 'source ~/.buku-completion.bash' >> ~/.bashrc
# 或直接添加到 bashrc
buku --comp bash >> ~/.bashrc
# Zsh 补全
mkdir -p ~/.zsh/completion
buku --comp zsh > ~/.zsh/completion/_buku
echo 'fpath=(~/.zsh/completion $fpath)' >> ~/.zshrc
echo 'autoload -Uz compinit && compinit' >> ~/.zshrc
# Fish 补全
buku --comp fish > ~/.config/fish/completions/buku.fish
2.7 浏览器扩展安装
Firefox 扩展
# 方法一:从 Firefox Add-ons 安装
# 访问 https://addons.mozilla.org/en-US/firefox/addon/buku/
# 点击 "Add to Firefox"
# 方法二:从源码安装开发版
git clone https://github.com/jarun/buku.git
cd buku/buku
# 在 Firefox 中加载扩展:
# 1. 打开 about:debugging#/runtime/this-firefox
# 2. 点击 "Load Temporary Add-on"
# 3. 选择 buku 目录中的 manifest.json
Chrome 扩展
# 方法一:从 Chrome Web Store 安装
# 访问 Chrome Web Store 搜索 "Buku"
# 方法二:手动加载(开发模式)
# 1. 打开 chrome://extensions/
# 2. 启用"开发者模式"
# 3. 点击"加载已解压的扩展程序"
# 4. 选择 buku/buku 目录
扩展配置
浏览器扩展需要配合 Buku Web 服务器使用:
# 1. 启动 Buku Web 服务
buku --sr 8080
# 2. 在浏览器扩展设置中配置服务器地址
# Server URL: http://localhost:8080
# Token: (如果设置了认证)
# 3. 使用扩展保存当前页面
# 点击扩展图标 → 填写标签 → 保存
扩展功能
| 功能 | Firefox | Chrome | 说明 |
|---|
| 一键保存书签 | ✅ | ✅ | 保存当前页面 |
| 自动获取标题 | ✅ | ✅ | 使用页面标题 |
| 标签输入 | ✅ | ✅ | 支持自动补全 |
| 搜索书签 | ✅ | ✅ | 快速搜索 |
| 打开书签 | ✅ | ✅ | 在新标签页打开 |
| Token 认证 | ✅ | ✅ | 安全认证 |
2.8 编辑器集成配置
Vim / Neovim
" 在 .vimrc 或 init.vim 中添加
" 安装 vim-buku 插件(使用 vim-plug)
Plug 'jhorsman/vim-buku'
" 或使用手动快捷键映射
nnoremap <leader>ba :!buku -a <C-R>=expand('%:p')<CR> "" ,<CR>
nnoremap <leader>bs :!buku -s
nnoremap <leader>bp :!buku -p<CR>
Emacs
;; 在 init.el 中添加
;; 安装 helm-buku
(use-package helm-buku
:ensure t
:bind ("C-c b" . helm-buku))
;; 或使用 counsel-buku
(use-package counsel-buku
:ensure t
:bind ("C-c b" . counsel-buku))
2.9 首次运行配置
初始化数据库
# Buku 会在首次使用时自动创建数据库
# 但你也可以手动触发创建
buku -p
# 输出: 0 records
# 确认数据库已创建
ls -la ~/.local/share/buku/
# -rw------- 1 user user 36864 May 10 10:00 bookmarks.db
导入现有书签
# 从 Chrome 导出书签(Chrome → 书签管理器 → 导出书签)
# 得到 bookmarks.html 文件
# 导入到 Buku
buku -i bookmarks.html
# 从 Firefox 导出
# Firefox → 书签 → 管理书签 → 导出书签到 HTML
buku -i firefox_bookmarks.html
# 查看导入结果
buku -p | head -20
基本测试
# 测试添加书签
buku -a https://github.com/jarun/buku "Buku 项目主页" ,bookmark,cli,python
# 测试搜索
buku -s buku
# 测试标签搜索
buku -s ,cli
# 测试打开书签
buku -o 1
# 测试删除书签
buku -d 1
# 测试 Web 服务
buku --sr 8080 &
# 在浏览器中访问 http://localhost:8080
# 测试完成后停止服务
kill %1
2.10 故障排查
常见问题
| 问题 | 原因 | 解决方案 |
|---|
command not found: buku | PATH 未包含 pip 安装路径 | 使用 python3 -m buku 或添加 PATH |
ModuleNotFoundError: No module named 'buku' | 未安装或虚拟环境问题 | 重新 pip3 install buku |
Permission denied | 数据库文件权限问题 | chmod 600 ~/.local/share/buku/bookmarks.db |
No module named 'cryptography' | 缺少加密依赖 | pip3 install cryptography |
No module named 'flask' | 缺少 Web 依赖 | pip3 install flask flask-admin |
| 浏览器扩展无法连接 | Web 服务未启动 | 启动 buku --sr 8080 |
PATH 配置问题
# 查看 buku 安装位置
which buku
# 如果为空,检查 pip 安装路径
pip3 show buku | grep Location
# Location: /home/user/.local/lib/python3.10/site-packages
# 添加到 PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# 或使用 Python 模块方式运行
python3 -m buku -p
数据库问题
# 检查数据库完整性
sqlite3 ~/.local/share/buku/bookmarks.db "PRAGMA integrity_check;"
# 备份数据库
cp ~/.local/share/buku/bookmarks.db ~/bookmarks_backup.db
# 修复损坏的数据库
sqlite3 ~/.local/share/buku/bookmarks.db ".dump" | sqlite3 ~/bookmarks_fixed.db
mv ~/bookmarks_fixed.db ~/.local/share/buku/bookmarks.db
2.11 本章小结
| 安装方式 | 命令 | 适用场景 |
|---|
| pip 安装 | pip3 install buku | 通用,推荐 |
| 系统包 | apt/pacman/dnf install buku | 系统集成 |
| 源码 | git clone && pip install . | 开发/最新版 |
| Docker | docker pull jarun/buku | 容器化 |
| 配置项 | 方法 |
|---|
| Shell 补全 | buku --comp bash |
| 环境变量 | BUKU_DB, EDITOR, BROWSER |
| 浏览器扩展 | Firefox Add-ons / Chrome Web Store |
| Web 服务 | buku --sr 8080 |
扩展阅读
下一章:第 03 章:基本操作 — 掌握 Buku 的核心书签管理操作:添加、搜索、打开、删除和更新。