我已经找了几个小时了,仍然找不到解决办法,感到很沮丧。
我安装了make和docker,并尝试构建linuxkit工具https://github.com/linuxkit/linuxkit,然后使用它为Docker构建linuxkit映像
来自自述的: "LinuxKit使用linuxkit工具来构建、推送和运行VM映像。
简单的构建说明:使用make进行构建。这将在bin/中构建该工具。“
我运行make install,但是一次又一次,无论我做什么,它都会失败
PS C:\Users\Tim\Desktop\linuxkit-master\linuxkit-master> make install
cp -R bin/* /usr/local/bin
process_begin: CreateProcess(NULL, cp -R bin/* /usr/local/bin, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [Makefile:78: install] Error 2在Makefile: 77,78:
install:
cp -R bin/* $(PREFIX)/bin我尝试过更改makefile,因为Windows上没有usr/local/bin这样的路径,但是无论我将其更改为什么,构建都不会成功。
我甚至尝试在wsl上运行它:
root@DESKTOP-GF982I3:/mnt/c/users# cd /mnt/c/Users/Tim/Desktop/linuxkit-master/linuxkit-master
root@DESKTOP-GF982I3:/mnt/c/Users/Tim/Desktop/linuxkit-master/linuxkit-master# make install
cp -R bin/* /usr/local/bin
cp: cannot stat 'bin/*': No such file or directory
make: *** [Makefile:78: install] Error 1
root@DESKTOP-GF982I3:/mnt/c/Users/Tim/Desktop/linuxkit-master/linuxkit-master#但是,这个错误再次出现在第78行。
拜托救救我。
编辑:
我在linux上也遇到了一个错误
安装了码头引擎并运行了守护进程:
tim@tim-vm:~/Desktop/linuxkit/linuxkit-1.0.1$ sudo make
make -C ./src/cmd/linuxkit
make[1]: Entering directory '/home/tim/Desktop/linuxkit/linuxkit-1.0.1/src/cmd/linuxkit'
fatal: not a git repository (or any of the parent directories): .git
tar cf - -C . . | docker run --rm --net=none --log-driver=none -i -e GOARCH= linuxkit/go-compile:7b1f5a37d2a93cd4a9aa2a87db264d8145944006 --package github.com/linuxkit/linuxkit/src/cmd/linuxkit --ldflags "-X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.GitCommit= -X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.Version="v0.8+"" -o linuxkit > tmp_linuxkit_bin.tar
gofmt...
vendor/github.com/Code-Hex/vz/v3/internal/objc/finalizer_118.go:8:18: expected '(', found '['
vendor/github.com/moby/buildkit/frontend/attest/sbom.go:75:13: expected '(', found '['
vendor/github.com/moby/buildkit/frontend/frontend.go:15:28: expected ';', found '['
vendor/github.com/moby/buildkit/frontend/gateway/client/client.go:17:28: expected ';', found '['
vendor/github.com/moby/buildkit/solver/result/result.go:16:15: expected ']', found any
vendor/github.com/moby/buildkit/solver/result/result.go:26:2: expected declaration, found 'if'
vendor/github.com/moby/buildkit/solver/result/result.go:68:3: expected declaration, found 'return'
vendor/github.com/moby/buildkit/solver/result/result.go:91:2: expected declaration, found 'if'
govet...
golint...
./cache/write.go:357:1: exported method Provider.ImageInCache should have comment or be unexported
sh: exported: unknown operand
make[1]: *** [Makefile:40: tmp_linuxkit_bin.tar] Error 2
make[1]: *** Deleting file 'tmp_linuxkit_bin.tar'
make[1]: Leaving directory '/home/tim/Desktop/linuxkit/linuxkit-1.0.1/src/cmd/linuxkit'
make: *** [Makefile:61: linuxkit] Error 2在调整windows上的makefile文件时,我遇到了类似的问题。
如您所见,脚本创建一个.tar文件,但立即删除它。
我将再次重申这个主要目标是在Windows上运行LinuxKit容器,正如我所读到的,LinuxKit将构建特定的.iso映像,以便与Hyper一起使用,这将提供更高的效率,例如比普通的Hyper机器更快的启动速度和更少的CPU和内存开销。
但由于我的linuxkit有问题,我将不得不求助于使用常规的超级V机器。
发布于 2022-11-13 19:34:34
您感到沮丧,因为您正在尝试使用一个在Windows系统上的GNU/Linux上创建的项目。这根本行不通。Windows和Linux在所有可以想象的方面都是完全不同的,一个项目要能够同时完成这两个方面都需要付出巨大的努力。大多数项目没有时间、精力或兴趣去做这件事。
此错误:
process_begin: CreateProcess(NULL, cp -R bin/* /usr/local/bin, ...) failed.是因为你试图在Windows上运行Linux程序cp。这个程序在Windows上不存在。
然后你转到WSL。我不太了解WSL,但您正在朝着正确的方向前进: WSL提供了一个类似Linux的环境,您可以在其中运行(一些)Linux样式的程序。
此错误:
cp: cannot stat 'bin/*': No such file or directory现在正在运行Linux cp,但是它说它正在试图复制bin目录中的文件,并且没有这样的文件。我无法确切地解释为什么,但要明确一点: Makefile中的install目标通常会安装您已经构建的文件。在上面的示例文本中,您没有运行实际构建任何内容的make命令(通常这只是没有目标的make )。
所以,您可能无法运行make install,因为没有什么可安装的,因为您还没有构建代码。
在我看来,像linuxkit这样用于构建Linux发行版的项目(只是从名称和描述上讲,我对它一无所知),几乎可以肯定的是,而不是可以在上运行。即使是在WSL也不可能。您应该与项目检查,看看他们的需求是什么。
您可能需要回到这里的绘图板:要么获得一个单独的系统并在其上安装GNU/Linux,要么创建一个真正的虚拟机(不仅仅是WSL)并在那里运行它,或者找到另一个设计用于在Windows上运行的工具。
https://stackoverflow.com/questions/74424032
复制相似问题