如何在Travis CI中安装循环设备

时间:2014-10-10 10:37:38

标签: kernel mount travis-ci

我正在尝试在Travis CI中运行以下命令:

$ sudo mount -o loop,offset=62914560 2014-09-09-wheezy-raspbian.img /home/travis/build/3DprintFIT/OctoPi/src/workspace/mount

但是我最终得到了:

mount: Could not find any loop device. Maybe this kernel does not know
   about the loop device? (If so, recompile or `modprobe loop'.)

我正在尝试:

sudo modprobe loop

但那失败了。我不再有错误消息,但我认为这是因为Travis CI环境在容器中运行而您无法从那里加载内核模块。

我是否已经使用FUSE安装设备(以及如何?)或者我可以对此做些什么吗?

2 个答案:

答案 0 :(得分:1)

似乎travis-ci目前不支持loopfs。

https://github.com/travis-ci/travis-ci/issues/1119

这意味着fuseiso也不起作用。

答案 1 :(得分:0)

由于其当前的虚拟化技术,Travis CI不支持此功能。但是,您应该可以使用vido来克服此限制;它是围绕用户模式Linux的包装,应该应该允许您使用内核的另一个实例挂载循环设备。

您应该可以运行:

var method = typeof(JsonConvert).GetMethods().FirstOrDefault(
            x => x.Name.Equals("DeserializeObject", StringComparison.OrdinalIgnoreCase) &&
            x.IsGenericMethod && x.GetParameters().Length == 1 &&
            x.GetParameters()[0].ParameterType == typeof(string));

允许vido --uml -- /bin/sh -c my_script.sh 安装回送设备。确保在my_script.sh部分中安装vido及其依赖项(包括Python 3.3 +)!