如何构建 Mirage 的 Xen Unikernel OS
How to build a Xen unikernel of Mirage OS
我阅读了这篇文档(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
.
它们应该出现在您的 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
。
很可能您的 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
.
我阅读了这篇文档(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
.
它们应该出现在您的 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
。
很可能您的 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
.