前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 下尝试自建Anki服务器

Linux 下尝试自建Anki服务器

作者头像
idealclover
发布2018-10-31 17:21:40
2.6K0
发布2018-10-31 17:21:40
举报

什么是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

版权声明:

本作品由idealclover采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可,转载请注明出处。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-27O,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Anki
  • Anki服务端配置
    • CentOS中Python的升级
      • pip设置和yum的修复
        • AnkiServer的安装
        • AnkiServer服务器端的设置
        • AnkiServer电脑端的设置
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档