一种解决方法,可让您在 Windows 10 上的 Windows Linux 子系统上使用 `mk-build-deps`(和 fakeroot)

unf*_*ica 3 package-management development dependencies windows-subsystem-for-linux

apt-get build-dep

apt-get build-dep是一个有用的工具。它安装指定应用程序的“构建依赖项”。

例如:

sudo apt-get build-dep firefox

将安装编译 Firefox 所需的所有工具。

mk-build-deps

过去没有简单的方法可以撤消apt-get build-dep操作。

但今天,mk-build-deps来拯救你。apt-get build-dep您可以使用 canmk-build-deps来创建一个依赖于您最喜欢的应用程序依赖项的新包,而不是使用。

mk-build-deps是作为devscripts包的一部分包含的 Perl 脚本。

然后您可以使用aptitude install安装新包,并aptitude remove安装它(连同它的依赖项)。

视窗 Linux 子系统

适用于 Linux 的 Windows 子系统 (WSL) 是一个兼容层,可让您在 Windows 10 之上使用部分(但不是全部)某些 Linux 发行版。

我的问题

我试着跑mk-build-deps jpilot。我在 Windows Linux 子系统上使用 Ubuntu 16.04.2,在 Windows 10 版本 1703(操作系统版本 15063.483)上。

我得到了这个输出:

fakeroot, while creating message channels: Function not implemented
This may be due to a lack of SYSV IPC support.
fakeroot: error while starting the `faked' daemon.
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Error in the build process: exit status 1
Run Code Online (Sandbox Code Playgroud)

解决方法是什么?

unf*_*ica 6

问题是 System V IPC 版本fakeroot在此版本的 Windows 上无法正常工作。

解决方法是运行以下命令:

sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp

在您运行该命令一次后,mk-build-deps将永远按预期工作。

(我的回答基于Hacker News 用户“danieldk”的帖子。)