如何构建Mirage OS的Xen unikernel

时间:2015-01-23 05:54:45

标签: xen opam unikernel mirage

我阅读了这个文档(http://openmirage.org/wiki/hello-world),并尝试按如下方式构建一个xen unikernel:

mirage configure --xen
make depend
make    

但编译失败了:

ocamlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,mirage-console.xen,mirage-types.lwt -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -tag-line "<static*.*>: -syntax(camlp4o)" -cflag -g -lflags -g,-linkpkg,-dontlink,unix main.native.o
ocamlfind ocamldep -package mirage-types.lwt -package mirage-console.xen -package lwt.syntax -syntax camlp4o -modules main.ml > main.ml.depends
ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence -package mirage-types.lwt -package mirage-console.xen -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
ocamlfind ocamlopt -c -g -annot -bin-annot -principal -strict-sequence -package mirage-types.lwt -package mirage-console.xen -package lwt.syntax -syntax camlp4o -o main.cmx main.ml
pkg-config --print-errors --exists mirage-xen
Package mirage-xen was not found in the pkg-config search path.
Perhaps you should add the directory containing `mirage-xen.pc'

到PKG_CONFIG_PATH环境变量     找不到包''mirage-xen'     make:*** [build]错误1

我成功安装了opam install mirage-xen的mirage-xen。 但是在我的.opam目录中,没有mirage-xen.pc

2 个答案:

答案 0 :(得分:6)

它们应出现在您的OPAM前缀中。我明白了:

$ ls $(opam config var prefix)/lib/pkgconfig
gmp.pc                mirage-xen-ocaml-bindings.pc  mirage-xen-posix.pc
libminios-xen.pc      mirage-xen-ocaml.pc           openlibm.pc
mirage-xen-minios.pc  mirage-xen.pc

(你可能会少; mirage-xen.pc是重要的一个)

假设他们在那里,请检查项目的Makefile是否正确设置PKG_CONFIG_PATH

答案 1 :(得分:5)

mirage-xen的版本可能已过期。您可以通过以下方式通过OPAM更新它:

opam update -u
opam info mirage-xen

确保您拥有mirage-xen版本2.1.1或更高版本(此评论的最新版本为2.1.3)。

如果您没有接受升级,那么您可能有一个本地Git签出中央包数据库。通过查看以下输出来确认:

opam remote

此输出应告诉您本地git结帐的位置,然后在那里导航并从git://github.com/ocaml/opam-repository进行刷新,然后运行opam update -u