强曰为道

与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

第 02 章:安装与配置

第 02 章:安装与配置

学习通过多种方式安装 Buku,配置环境变量、浏览器扩展和开发环境。

2.1 环境要求

系统要求

项目最低要求推荐配置
Python3.8+3.10+
操作系统Linux / macOS / WindowsLinux
磁盘空间10 MB50 MB(含数据库)
内存64 MB128 MB
网络可选(离线可用)用于获取网页标题

Python 依赖

Buku 的核心依赖非常少,大部分为 Python 标准库模块:

依赖包用途是否必需
requestsHTTP 请求(获取标题)推荐
beautifulsoup4HTML 解析推荐
cryptography加密功能可选
flaskWeb 服务器可选
flask-adminWeb UI可选
urllib3HTTP 库随 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

# 从社区仓库安装
apk add buku

openSUSE

sudo zypper install buku

各平台安装方式对比

平台命令版本时效性备注
pip (通用)pip3 install buku最新推荐
Debian/Ubuntuapt install buku较旧系统包
Arch Linuxpacman -S buku较新官方仓库
Fedoradnf install buku较新官方仓库
macOSbrew install buku较新Homebrew
Alpineapk 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. 使用扩展保存当前页面
# 点击扩展图标 → 填写标签 → 保存

扩展功能

功能FirefoxChrome说明
一键保存书签保存当前页面
自动获取标题使用页面标题
标签输入支持自动补全
搜索书签快速搜索
打开书签在新标签页打开
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: bukuPATH 未包含 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 .开发/最新版
Dockerdocker pull jarun/buku容器化
配置项方法
Shell 补全buku --comp bash
环境变量BUKU_DB, EDITOR, BROWSER
浏览器扩展Firefox Add-ons / Chrome Web Store
Web 服务buku --sr 8080

扩展阅读


下一章第 03 章:基本操作 — 掌握 Buku 的核心书签管理操作:添加、搜索、打开、删除和更新。