ubuntuでXMonadをウィンドウマネージャーとして使用しようとしています。 これはnixOSを使って1つのホスト上でうまく動作していますが、nixOS用にまだ準備されていない2台目のデバイスがあります。 Ubuntuの上にはnixがありますが、xmonadは貢献ライブラリを見つけることができません。XMonad on Nix - xmonad-contribを見つけることができません
関連パッケージがインストールされます。
$ xmonad --recompile
Error detected while loading xmonad configuration file: /home/martyn/.xmonad/xmonad.hs
xmonad.hs:32:1: error:
Failed to load interface for ‘XMonad.Layout.NoBorders’
Use -v to see a list of the files searched for.
...
Please check the file for errors.
関連ファイルがインストールされています:
$ ls /nix/store/*xmonad-contrib*/lib/**/NoBorders*
/nix/store/4xrrwsm6362xkn9jn1b17kd891kv9z3a-xmonad-contrib-0.13/lib/ghc-8.0.2/xmonad-contrib-0.13/XMonad/Actions/NoBorders.dyn_hi
/nix/store/4xrrwsm6362xkn9jn1b17kd891kv9z3a-xmonad-contrib-0.13/lib/ghc-8.0.2/xmonad-contrib-0.13/XMonad/Actions/NoBorders.hi
/nix/store/4xrrwsm6362xkn9jn1b17kd891kv9z3a-xmonad-contrib-0.13/lib/ghc-8.0.2/xmonad-contrib-0.13/XMonad/Layout/NoBorders.dyn_hi
/nix/store/4xrrwsm6362xkn9jn1b17kd891kv9z3a-xmonad-contrib-0.13/lib/ghc-8.0.2/xmonad-contrib-0.13/XMonad/Layout/NoBorders.hi
$ nix-env -q | grep xmonad
xmonad-0.13
xmonad-contrib-0.13
xmonad-extras-0.12.1
しかし、私のxmonad.hsを再コンパイル、それはのcontrib LIBSを見つけることができません
私のnixpkgs config.nixにxmonad-contribを追加することで、これらのlibsをghcパッケージregに追加しましたistry:これで
$ cat ~/.config/nixpkgs/config.nix
with (import <nixpkgs> {});
{
packageOverrides = pkgs: with pkgs; {
myHaskellEnv = pkgs.haskellPackages.ghcWithPackages (haskellPackages: with haskellPackages; [ xmonad-contrib ]);
};
}
$ nix-env -iA nixpkgs.myHaskellEnv
$ ghc-pkg list | grep xmonad
xmonad-0.13
xmonad-contrib-0.13
$
、このGHC(i)がうまく機能:
$ /nix/store/7mkxsq7ydqcgnjbs59v1v47wfxpwrav5-ghc-8.0.2-with-packages/bin/ghc ~/.xmonad/xmonad.hs
[1 of 1] Compiling Main (/home/martyn/.xmonad/xmonad.hs, /home/martyn/.xmonad/xmonad.o) [flags changed]
Linking /home/martyn/.xmonad/xmonad ...
しかし、そのディレクトリ内xmonadのも、バージョンがLIBSを見つけることができません。
$ /nix/store/7mkxsq7ydqcgnjbs59v1v47wfxpwrav5-ghc-8.0.2-with-packages/bin/xmonad --recompile
Error detected while loading xmonad configuration file: /home/martyn/.xmonad/xmonad.hs
xmonad.hs:32:1: error:
Failed to load interface for ‘XMonad.Layout.NoBorders’
Use -v to see a list of the files searched for.
私ができます上記のようにghcを使ってコンパイルし、手作業で出力を〜/ .xmonad/xmonad-x86_64-linuxに移動して実行することで、この問題を回避できます。しかし、これはちょっとしたハッキーですが、必ずしも必要ではありませんか?
あなたの設定の特別な 'xmonad.hs'部分ではないので、(構成管理の観点から)nix内でコンパイルする必要がありますか? – Zeta
私はxmonadユーザーではありませんが、ここにはNixOSの@Ptivalのxmonad設定ファイルがあります:https://github.com/Ptival/config/blob/master/xmonad.nix –
おそらくxmonad.hsがより良く管理されます"nix"の中では、まだそれを達成する能力がありませんし、nixOSで示されているように、(それが賢明であるかどうかにかかわらず)まだ動作しないことを選択することは可能です。 – user3416536