libvirt-go 探索(入门)

基于https://github.com/libvirt/libvirt-go README

确保已安装libvirt-dev版本支持1.2.0版本之后的libvirt默认情况下,绑定将支持libvirt.so,libvirt-qemu.so和libvirt-lxc.so中的API。可以使用构建标记'without_qemu'或'without_lxc'分别从构建中删除后两个库。Go API被认为是生产就绪的,旨在保持未来版本的稳定性。

libvirt项目旨在将libvirt-go添加到主libvirt C库后立即添加对新API的支持。如果要提交对libvirt C库API的更改,请同时提交libvirt-go更改。

测试核心API单元测试都是使用内置的测试驱动程序(test:///default)编写的,因此它们与主机OS环境没有交互。

使用自动化测试验证libvirt C库API /常量的覆盖范围。这些可以通过传递'api'构建标记来运行。例如,go test -tags api

对于测试驱动程序缺乏功能的区域,可以使用QEMU或LXC驱动程序来执行代码。这些测试必须是'integration_test.go'文件的一部分,但只有在传递'integration'构建标记时才会运行。例如,go test -tags integration

为了运行单元测试,应将libvirtd配置为允许您的用户帐户以无密码进行读写访问。这可以使用polkit配置文件轻松完成

将'jahentao'替换为您的UNIX用户名。

Polkit是用于实现权限管理的, 通过给非特权进程授权,允许具有特权的进程(或者库文件lib)> 给非特权进程提供服务。

其中一个集成测试还要求libvirtd正在侦听localhost上的TCP连接,使用sasl auth。

这可以通过编辑/etc/libvirt/libvirtd.conf进行设置来设置

然后修改 vim /etc/default/libvirtd(在vagrant虚拟机中是 /etc/sysconfig/libvirtd) 添加--listen标志

PS:修改密码机制和存储位置/etc/sasl2/libvirt.conf

其实 sasldb_path 不改也行,默认在 /etc/sasldb2

重启libvirtd服务

然后创建一个sasl用户

并输入"pass"作为密码

查看用户名(注意前面是否修改密码存储路径)

PS:修改Vagrant的boxes存储位置

Vagrant的boxes默认是放在~/.vagrant.d/boxes下面的

修改box存放路径:
1. copy ~/.vagrant.d/下面的目录到新目录

2. 设置环境变量

就这样,重新登录shell后,boxes的存放目录就在 /path/to/vagrant_home/boxes 下面了

PS:vagrant使用代理

For Mac/Linux (in Bash)

then

For Windows use set instead of export.

then

PS:安装插件可能遇到问题,可能需要临时禁用Ipv6
https://github.com/hashicorp/vagrant/issues/8893
或者是代理配置的问题比如socks5协议

运行集成测试需要Vagrantfile,需要使用virtualbox。

在里面,做上面集成测试需要的修改。

其中一个集成测试还要求libvirtd正在侦听localhost上的TCP连接,使用sasl auth,这可以通过编辑/etc/libvirt/libvirtd.conf进行设置来设置

然后修改 ,在vagrant虚拟机中是 /etc/sysconfig/libvirtd 添加--listen标志

然后

在vagrant box中可能遇到问题,就是没有就行上述集成测试的修改。

Connection refused

史上最全Vim快捷键键位图(入门到进阶) | 菜鸟教程

作者:卢钧轶(cenalulu) 来自:http://cenalulu.github.io/linux/all-vim-cheatsheat/ 经典版 下面这个键位图应该是大家最常看见的经典版了。 对应的简体中文版 其实经典版是一系列的入门教程键位图的组合结果,下面是不同编辑模式下的键位图。 入门版 基本操作的入门版。 进阶版 增强版 下图是一个更新时间较新的现代版,含有的信息也更丰富。 ..

来源: 史上最全Vim快捷键键位图(入门到进阶) | 菜鸟教程

搭建适用Anki 2.1和2.0的同步服务器

看网上的搭建anki同步服务器的教程,发现不能用?

最后发现是版本问题。在2.1中更改了协议。中文教程中还没有提及的,就自己写篇博客补缺吧。

我的Windows Anki客户端是 2.0.x,AnkiDroid的App也是2.0.x支持的,但Linux 下载的是2.1.x的客户端。它们的配置还不一样。

需要参考这个库 https://github.com/tsudoko/anki-sync-server,这个库是Python3支持,之前的搭建anki同步服务器的库是 https://github.com/dsnopek/anki-sync-server 是Python2支持的。安装Python3支持的库。

下面就是客户端的配置了,由于我的Linux安装的2.1.x,不同于2.0

  1. 打开插件目录
  2. 新建文件夹ankisyncd
  3. 创建__init__.py文件,包含以下内容

由于Windows下的客户端是2.0.x版本,就是网上比较多的方法了。

  1. 打开插件目录
  2. 新建ankisyncd.py文件,包含如下内容:

对于安卓客户端的App,指定自定义同步服务器的地址即可,网上教程较多,不再赘述。

不过还是改用2.0.x客户端,因为为发现有些插件不支持2.1.x版本。