[Linux]搭建Anki同步服务器(针对Anki2.1)
原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:https://blog.csdn.net/humanking7/article/details/94999409
文章目录
- @[toc]
- 0 环境
- 1 首先安装`anki2.1`
- 2. 配置安装
- 2.1 配置虚拟环境virtualenv
- 2.2 安装 ankisyncd
- 2.3 设置和运行服务器
- 3. Anki客户端设置
- 3.1. 客户端Anki2.1
- 3.2. 客户端Anki2.0
- 3.3. 手机端
- 4. 参考文献
搭建Anki同步服务器(针对Anki2.1)
针对Anki2.0
的版本:https://blog.csdn.net/humanking7/article/details/89299138
0 环境
Ubuntu 16.04
- PC:
anki 2.0.52
和anki 2.1.12
- Android: ankiDroid 2.8.4`
1 首先安装anki2.1
先去下载官网下载安装包https://apps.ankiweb.net/#download
$ tar xjf anki-2.1.14-amd64.tar.bz2
$ cd anki-2.1.14-linux-amd64
$ sudo make install# 如果要卸载
$ sudo make uninstall
2. 配置安装
2.1 配置虚拟环境virtualenv
先安装pip
和virtualenv
# 安装 pip
$ apt install python3-pip# 更新pip
$ pip3 install virtualenv# 安装 virtualenv
$ pip3 install virtualenv
在准备安装服务器的目录下创建 Python
虚拟环境:
$ cd [你想要安装服务器的目录]
$ virtualenv ankienv
注意将[你想要安装服务器的目录]
替换为你实际的目录的路径,路径不需要加方括号。
然后进入新创建的虚拟环境:
$ . ankienv/bin/activate
注意以上命令英文的句号后面有一个空格。
如果想要退出环境,输入命令deactivate
输入完成后,命令行前会多出 (ankienv)
表示当前的 Python
环境,之后与 Python
或 pip
有关的所有操作都要在这个环境中进行。
例子:
root@x60s:~/code_soft/ankiSyncService# . ankienv/bin/activate
(ankienv) root@x60s:~/code_soft/ankiSyncService# # 该目录下多了一个环境相关的文件
(ankienv) root@x60s:~/code_soft/ankiSyncService# ls
ankienv
(ankienv) root@x60s:~/code_soft/ankiSyncService# ls ankienv/
bin include lib
2.2 安装 ankisyncd
使用 git
来 clone
服务器代码:
$ git clone https://github.com/tsudoko/anki-sync-server.git
进入代码目录并安装 git
子模块:
$ cd anki-sync-server
$ git submodule update --init
我在执行这一步的时候报错 pyaudio
安装失败,解决方法是直接把 requirements.txt
文件中 pyaudio
删掉,再重新执行上面的 pip
命令。根据官方文档的说明这个模块不影响服务器同步功能的使用。
继续安装 Python
模块,安装完后进入 anki-sync-server
目录:
$ pip3 install webob
$ cd ..
最后,还可以修改服务器配置文件:anki-sync-server
目录下的 ankisyncd.conf
。对我来说无需更改任何配置。
[sync_app]
# change to 127.0.0.1 if you don't want the server to be accessible from the internet
host = 0.0.0.0
port = 27701
data_root = ./collections
base_url = /sync/
base_media_url = /msync/
auth_db_path = ./auth.db
# optional, for session persistence between restarts
session_db_path = ./session.db# optional, for overriding the default managers and wrappers
# # must inherit from ankisyncd.persistence.PersistenceManger, e.g,
# persistence_manager = great_stuff.postgres.PostgresPersistenceManager
# # must inherit from ankisyncd.session.SimpleSessionManager, e.g,
# session_manager = great_stuff.postgres.PostgresSessionManager
# # must inherit from ankisyncd.user.SimpleUserManager, e.g,
# user_manager = great_stuff.postgres.PostgresUserManager
# # must inherit from ankisyncd.collections.CollectionWrapper, e.g,
# collection_wrapper = great_stuff.postgres.PostgresCollectionWrapper
配置文件里包括 host
对应服务器监听地址,默认 0.0.0.0
表示接收所有 IP
的请求,如果改成 127.0.0.1
则无法接收外网或内网上的请求,也就是只能通过服务器本机访问,改成服务器内网 IP
则只接收内网的请求。port
表示监听端口,如果修改这个参数则客户端连接端口也要对应修改与其相同。data_root
应该是同步数据的保存目录。
其实基本不需要自己折腾,如果没有端口和IP
的特殊需求,就不需要改了
到此服务器已经安装完成了。
2.3 设置和运行服务器
设置的相关命令:
# 在 anki-sync-server 目录下
$ ./ankisyncctl.py -h
usage: ./ankisyncctl.py <command> [<args>]Commands:adduser <username> - add a new userdeluser <username> - delete a userlsuser - list userspasswd <username> - change password of a user
增加用户:
$ ./ankisyncctl.py adduser <username>
将命令中的 <username>
替换为实际的用户名。之后输入密码,按回车确定。
启动服务器:
$ python -m ankisyncd
执行这条命令的时候会一直占用命令行终端,否则表示服务器已停止运行。
如果是通过 ssh
连接到 Linux
服务器在服务器上运行,断开 ssh
连接会自动停止服务器运行,这就需要下面的命令防止进程停止:
$ nohup python -m ankisyncd &
当然也可以用 screen
或 tmux
之类的服务器上常用的工具解决这个问题。
话虽然如此,但是每次运行起来特别恶心,还需要进入环境,自己去运行,所以写一个脚本非常方便
#!/bin/bash# 进入环境目录
cd /root/code_soft/ankiSyncService# 激活环境
echo "激活 virtualenv 环境"
. ankienv/bin/activate# 进入anki-sync目录
cd /root/code_soft/ankiSyncService/anki-sync-server# 运行anki-sync
echo "运行 ankisyncd "
nohup python -m ankisyncd &echo -e "\n"
echo "查找anki-sync的PID:"
echo "ps -ef | grep anki"
echo -e "\n"
echo "如果想结束anki-sync运行,使用命令:"
echo "kill -9 PID"
不过到了最后,我发现还是别乱用virtualenv
,因为感觉我完全用不到,徒增烦恼
3. Anki客户端设置
3.1. 客户端Anki2.1
在 Add-on
文件夹下创建文件夹 ankisyncd
,并在其中创建并编辑文件 __init__.py
,里面不要有汉字,保存为utf-8
格式:
# just for sync -- add by Qfximport anki.sync, anki.hooks, aqtaddr = "http://127.0.0.1:27701/" # put your server address here
anki.sync.SYNC_BASE = "%s" + addr
def resetHostNum():aqt.mw.pm.profile['hostNum'] = Noneanki.hooks.addHook("profileLoaded", resetHostNum)
将 addr = "http://127.0.0.1:27701/"
行中的 127.0.0.1
换成对应服务器的 IP。27701
对应服务器配置的端口。
3.2. 客户端Anki2.0
见上文搭建Anki同步服务器(针对Anki2.0)
3.3. 手机端
- 安卓: 见上文搭建Anki同步服务器(针对Anki2.0)
- IOS: 不支持自定义服务器,而且还卖160多,还好我提前试了试
4. 参考文献
- http://genedan.com/no-127-ankisyncd-a-custom-sync-server-for-anki-2-1/
- https://gkzhb.gitee.io/2019/06/ankisyncd/
- https://extendswind.top/posts/technical/anki_and_anki_server/
- https://www.xiebruce.top/881.html
OK!
以上,Enjoy~
[Linux]搭建Anki同步服务器(针对Anki2.1)相关推荐
- [Linux]搭建Anki同步服务器(针对Anki2.0)
原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:https://blog.csdn.net/humanking7/article/details/89299138 文章目录 @[toc] ...
- linux 搭建nginx + rtmp服务器
linux 搭建nginx + rtmp服务器 一 环境准备 虚拟机ubuntu 装备,安装一些nginx 必要的依赖和服务 sudo apt-get install libpcre3 libpcr ...
- linux搭建ewomail邮件服务器完整步骤
linux搭建ewomail邮件服务器超完整细致步骤 啊 首先准备一台与服务器一个域名 安装EwoMail 测试邮局通信端口是否开启: 1.安装telnet:yum install telnet -y ...
- Linux搭建Postfix邮件服务器
第一章:实验环境和目标 1.实验环境 Vm虚拟机安装CentOs7系统 CentOs7的IP地址:192.168.81.133 Win7客户端(测试用),有Xshell或者SecureCRT工具 2. ...
- 用Windows Server 2008搭建时钟同步服务器
配置步骤: --服务器端配置-- 1. 选择一台服务器作为时间同步服务器. 2. 运行Regedit,打开注册表编辑器. 3. 找到注册表项HKEY_LOCAL_MACHINE\SYSTEM\Curr ...
- Linux搭建BT下载服务器,linux下搭建bt服务器–xbt篇
在windows2003下搭建bt服务器对硬件的要求较高,低配置的服务器容易死机,很是麻烦. 我们考虑用linux.据我所知,在linux下面可以作为bt tracker的软件并不是不多.现在介绍两个 ...
- linux做m3u8推流服务器,linux搭建nginx流服务器,OBS推流,VCL拉流播放
所需软件工具: 1.centos6.5 2.nginx1.16.0.tar.gz .nginx-rtmp-module-master.zip .nginx_mod_h264_streaming.tar ...
- Linux搭建Steam饥荒服务器教程 — Linux GSM方式
LinuxGSM 是用于快速.简单地部署和管理 Linux 专用游戏服务器的命令行工具. 官网地址:https://linuxgsm.com 饥荒服务器搭建文档:https://linuxgsm.co ...
- Linux搭建各种常用服务器(详细)
1.搭建telnet服务器 2.搭建DHCP服务器 3.搭建DNS服务器 4.搭建sendmail服务器 5.搭建FTP服务器 6.搭建web服务器 安装 apache tomcat 7.搭建samb ...
最新文章
- 报名 | 清华大学海外学者短期讲学:数字经济创新创业课程
- DOM方式动态加载数据
- 【网络安全】详细记录一道简单面试题的思路和方法
- 医保费用监控指标体系建立(四)医疗机构指标分析
- Backbone发展与语义分割网络发展
- html2canvas生成海报的各种问题
- J2EE如何生成验证码图片和点击刷新验证码
- 如何找到python的安装路径_在cmd中查看python的安装路径方法
- jmeter简单使用
- tensorflow实践笔记:屏蔽GPU版tensorflow的提示、分布式训练部署时的问题以及tensorboard的查看
- spring与jdk版本要求
- Hadoop 原理总结
- XSS 存储漏洞修复
- MSP430FR5994LannchPad开发笔记之一:CCS+DriverLib建立工程模板,及使用eZ-FET Debug进行printf
- 数据库实验——简单数据库应用系统设计与实现
- Auto.js实现i茅台自动化申购
- 直播系统app源码,简洁好看的登录页面
- linux grub error17,Ubuntu Grub 问题:提示 error17 修复方法
- 【历史上的今天】12 月 16 日:晶体管问世;IBM 停售 OS/2;科幻小说巨匠诞生
- 微信支付-当前页面的URL未注册
热门文章
- 西安科技大学能耗监测系统的研究与应用
- 详细!来看吧,包你不后悔 亲测7个!chrome浏览器好用的应用扩展程序/插件推荐
- HEVC标准(draft)翻译--亮度帧内预测
- 堆——鱼塘钓鱼:简直爽!
- java的workspace_Eclipse中的工作空间介绍(Workspace)
- 房子真是白买了 网友哭诉装修一年后后悔事(图)
- STC15F2K60S2制作简易的电压表
- Oracle游标共享,父游标和子游标的概念
- 深度学习环境配置超详细教程【Anaconda+PyTorch(GPU版)+CUDA+cuDNN】
- “智慧”引领视频监控新时代_智能视频分析