AI摘要:本文介绍了在CentOS 6.5环境下自建Anki服务器的详细步骤。首先升级Python到2.7版本,配置pip和修复yum,然后使用easy_install安装AnkiServer。接着配置AnkiServer,包括修改配置文件和添加用户。最后,设置Anki客户端和安卓端以实现同步。
Powered by AISummary and MoonShot KimiChat.
什么是Anki
关于Anki是什么,具体怎么用,也许以后会在公众号中做进一步的介绍。总的来说,Anki是一个很好用的,在电脑端手机端均可用的,开源的记忆应用。可以帮助自己记住包括英语单词在内的各种知识,并支持各种各样的扩展。
今天的博文主要聚焦在Anki的同步问题上。anki的服务器在日本,同步相对较慢;另一方面自己也希望能更GEEK一点,将东西寄存在自己的服务器上。正巧自己的服务器也处于闲置状态,就开始着手搭建Anki的服务器。
本文的主要环境是CentOS6.5。
Anki服务端配置
CentOS中Python的升级
此部分主要参考资料
http://blog.ruterly.com/2015/12/03/Update-python/
在此基础上做了一些修改。
CentOS中Python的默认版本是2.6,而Ankiserver中相关组件所需要的版本最低为2.7。所以相应的,我们需要升级Python的版本。
写这篇博文的时候,Python2的最新版本是2.7.14。对应的命令如下。如果之后版本有更新只需做相应修改。
wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz tar -xzvf Python-2.7.14.tgz cd Python-2.7.14
如果没有安装wget可以使用yum进行wget的安装
yum install wget -y
其中 -y 命令指的是对于所有的设置都回复“yes“,可以省很多事hhhh
进入到解压后的文件夹后,执行以下的命令进行配置
./configure --enable-shared --enable-loadable-sqlite-extensions --with-zlib
其中 --enable-loadable-sqlite-extensions 是sqlite的扩展,如果需要使用的话则带上这个选项
之后执行
vi ./Modules/Setup
找到#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz去掉注释并保存,然后进行编译和安装
make && make install
安装好Python2.7之后我们需要先把Python2.6备份起来,然后再对yum的配置进行修改,如果不进行这一步操作的话,执行yum命令将会提示你Python的版本不对。
执行以下命令,对Python2.6进行备份,然后为Python2.7创建软链接
mv /usr/bin/python /usr/bin/python2.6.6 ln -s /usr/local/bin/python2.7 /usr/bin/python
然后编辑/usr/bin/yum,将第一行的#!/usr/bin/python修改成#!/usr/bin/python2.6.6
现在执行yum命令已经不会出现之前的错误信息了。
我们执行python -V查看版本信息,如果出现错误
error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
则编辑配置文件
vi /etc/ld.so.conf
添加新的一行内容/usr/local/lib,保存退出,然后
/sbin/ldconfig /sbin/ldconfig -v
pip设置和yum的修复
此部分主要参考资料
http://blog.ruterly.com/2015/12/03/Update-python/
https://ruiaylin.github.io/2014/12/12/python%20update/
在此基础上有修改
下载最新版的pip,然后安装
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py
查找pip的位置
whereis pip
找到pip2.7的路径,为其创建软链作为系统默认的启动版本
ln -s /usr/local/bin/pip2.7 /usr/bin/pip
到此pip设置完成,下面进行yum的修复
which yum
获取yum的目录,一般为/usr/bin/yum
接下来打开/usr/bin/yum
vim /usr/bin/yum
将第一行 #!/usr/bin/python 改为 #!/usr/bin/python2.6
之后:wq保存退出,此时yum就可以了
AnkiServer的安装
使用easy_install进行安装,有博文提到使用pip安装会出现莫名其妙的bug,未加以验证。
easy_instlall AnkiServer
如果提示 No module named _sqlite3,是因为没有安装sqlite3,相应的命令
yum instal sqlite-devel -y
之后重新回到Python下载后解压的目录(Python-2.7.14),重新安装Python
./configure make make altinstall
AnkiServer就被安装好了
AnkiServer服务器端的设置
此部分主要参考文章
https://zhuanlan.zhihu.com/p/25187159
此基础上有更改
在自己想创建的目录下创建目录Anki
mkdir Anki
进入这个目录
cd Anki
找到AnkiServer中示例配置的目录,我的在/usr/local/lib/python2.7/site-packages/AnkiServer-2.0.6-py2.7.egg/examples
如果找不到的话可以尝试全局的搜索定位到目录
cd / find -name examples
可以定位到examples目录的位置
之后打开
cd /usr/local/lib/python2.7/site-packages/AnkiServer-2.0.6-py2.7.egg/examples
查看目录,我们发现其中有一个examples.ini文档
ls logging.conf example.ini supervisor-anki-server.conf
复制一个example.ini 到当前目录,修改为production.ini。
cp example.ini ~/Anki/production.ini
之后编辑该文档
vim ~/Anki/production.ini
修改其中的设置
host = 192.168.0.100 #服务器的地址 allowed_hosts = 192.168.0.30,192.168.0.40 #允许同步的客户端ip地址,你也可以写0.0.0.0 允许任何ip地址连接
之后:wq保存并退出
添加用户名密码
ankiserverctl.py addser <username> #添加一个用户,而后输入密码
测试运行
ankiserverctl.py debug
没有什么特殊的问题,这个时候就可以运行了
AnkiServer电脑端的设置
此部分主要参考文章同上,此基础上有更改
开启插件文件夹
新增一个txt挡案,檔名修改为mysyncserver.py
文件内容如下
import anki.sync anki.sync.SYNC_BASE = 'http://192.168.0.100:27701/' #上面设置的ip地址和端口号 anki.sync.SYNC_MEDIA_BASE = 'http://192.168.0.100:27701/msync/'
保存后,重启anki即可测试同步。
<h2>AnkiServer安卓端的设置</h2>
按照截图进行一步步操作
网址要注意ankiserver预设是使用http而不是https
已有 2 条评论
我说怎么看着这么熟悉的样子,前两天在看芭芭拉·奥克利的《学习之道》有一章介绍重复记忆的,正好提到了Anki这个APP哈哈哈哈哈
hhhh~Anki超好用的~而且不知道为什么就是对开源的东西充满了好感hhhh