准备 Python3
安装repo管理器
sudo yum install yum-utils
为Python3构建环境
sudo yum-builddep python
寻找最新的稳定版本
地址:https://www.python.org/ftp/python/
我选择了 3.7 版本。
安装 wget 下载工具
sudo yum install wget
下载 python3 的源码
mkdir tmp && cd $_ && sudo wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
下载速度惨不忍睹,挂上代理
我的 CentOS 安装在了虚拟机上。所以我直接这么写:
export http_proxy=192.168.0.100:1080
export https_proxy=192.168.0.100:1080
export use_proxy=yes
记得ss要【允许其它设备连入】,不然就会访问拒绝。挂上代理之后,速度就快多了。也可以用 aria2c
。甚至可以用迅雷下载好,通过文件共享传输到虚拟机里。VMware 可参考:[VMware]主机与虚拟机共享文件](https://zhuanlan.zhihu.com/p/43920548))。VBOX 可参考:mac下virtualbox设置共享文件夹、# virtualbox ubuntu系统挂载window上的目录。如果要省事的化,直接用 SFTP 也可以。
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
解压,编译 Python3
tar xf Python-3.7.3.tar.xz
cd Python-3.7.3
./configure
make
sudo make install
顺利的话,现在执行 python3
就不会报错。同时还捆绑了个 pip3
安装 git
sudo yum install git
安装 ankisyncd
mkdir anki && cd $_ &&git clone https://github.com/tsudoko/anki-sync-server.git
cd anki-sync-server
git submodule update --init
cd anki-bundled/
sudo pip3 install -r requirements.txt
这里我就比较不幸了。我发现我用普通账户可以执行 pip3
但是用 sudo 就不行。解决方式如下:
[[email protected] anki-bundled]$ whereis pip3
pip3: /usr/local/bin/pip3 /usr/local/bin/pip3.7
[[email protected] anki-bundled]$ sudo ln -s /usr/local/bin/pip3 /usr/bin/pip3
现在就可以执行下列命令了:
sudo pip3 install -r requirements.txt
果然,我们遇到了曾几何时见过的经典错误:
Running setup.py install for pyaudio ... error
我安装十次,十次要出这个错,不管是 Ubuntu 还是 CentOS。解决起来也简单,运行:
sudo yum install portaudio-devel
这次并不顺利,又有意外:
No package portaudio-devel available.
Error: Nothing to do
不要着急,解决方法也是相当经典:添加 EPEL 源。
sudo yum install epel-release
sudo vi /etc/yum.repos.d/epel.repo
# 替换为清华大学的镜像
:%s#download.fedoraproject.org/pub#/mirrors.tuna.tsinghua.edu.cn
sudo yum install portaudio-devel
(这里相当于添加了个源,你也可以直接下载所需的包:# portaudio-devel-19-16.el7.x86_64.rpm)。
(复读)现在就可以执行下列命令了:
sudo pip3 install -r requirements.txt
接下来,执行
sudo pip3 install webob
创建用户
cd ..
python3 ./ankisyncctl.py adduser pluveto
后台运行
安装screensudo yum install screen
新建一个screen会话:screen -S anki
执行 python3 -m ankisyncd
Ctrl+A,D 退出会话(该会话仍会在后台运行)
若想恢复会话:screen -r #恢复上一次离线的会话
或
screen -x [会话id]
而会话id可通过screen -ls
查看
客户端连接
手机上我就不说了,很简单。(提示:/msync)
电脑上复杂一些:
在 Addons21 文件夹写入插件,从而接管Anki的同步服务器设置:
Anki2\addons21\custom-sync-server\__init__.py
import anki.sync, anki.hooks, aqt
addr = 'http://45.78.51.108:27701/'
anki.sync.SYNC_BASE = "%s" + addr
def resetHostNum():
aqt.mw.pm.profile['hostNum'] = None
anki.hooks.addHook("profileLoaded", resetHostNum)
此致。
Written with StackEdit.