web-dev-qa-db-ja.com

Windows10のWindowsLinuxサブシステムで `mk-build-deps`(およびfakeroot)を使用できるようにする回避策

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を使用する代わりに、mk-build-depsを使用して、お気に入りのアプリケーションの依存関係に依存する新しいパッケージを作成できます。

mk-build-depsは、devscriptsパッケージの一部として含まれているPerlスクリプトです。

次に、aptitude installを使用して新しいパッケージをインストールし、aptitude removeを使用して(依存関係とともに)インストールできます。

WindowsLinuxサブシステム

Linux用Windowsサブシステム(WSL)は、Windows 10上で特定のLinuxディストリビューションの一部(すべてではない)を使用できるようにする互換性レイヤーです。

私の質問

mk-build-deps jpilotを実行しようとしました。私は、Windows Linuxサブシステム、Windows 10バージョン1703(OSビルド15063.483)でUbuntu16.04.2を使用していました。

私はこの出力を得ました:

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

回避策は何ですか?

問題は、System V IPCバージョンのfakerootがこのバージョンのWindowsでは正しく機能しないことです。

解決策は、次のコマンドを実行することです。

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

コマンドを1回実行した後、mk-build-depsは、期待どおりに永久に機能します。

(私の答えは、Hacker Newsユーザー「danieldk」による post に基づいています。)