Widnwos環境での現象:
windows上でyesodのscafolding siteをセットアップし、さあ起動!ブラウザから接続確認してOKとなるはずが、なぜか「The application isn't built」という表示が出てしまいました。このときターミナルには以下のようなログが出力されていました。
% stack exec -- yesod devel Yesod devel server. Type 'quit' to quit Application can be accessed at: http://localhost:3000 https://localhost:3443 If you wish to test https capabilities, you should set the following variable: export APPROOT=https://localhost:3443 Warning: The package list for 'hackage.haskell.org' is 146.0 days old. Run 'cabal update' to get the latest list of available packages. Resolving dependencies... Configuring my-project-0.0.0... Rebuilding application... (using cabal) Starting development server... Starting devel application Devel application launched: http://localhost:3000 devel.hs: getAddrInfo: does not exist (error 11001) receiveloop: failed (No error)
ブラウザには「ビルドができてない!」と表示されていますが、ビルド自体は成功しています。以下のディレクトリにバイナリが生成されています。
% find . -name "*.exe" ./.stack-work/dist/2672c1f3/build/my-project/my-project.exe ./.stack-work/dist/2672c1f3/build/test/test.exe
PCによってはうまく動くこともあり原因を切り分けて調査したところ、HOST環境変数の有無で挙動が変わることがわかりました。ここから先は推測ですが、HOST環境変数に設定されている名前でIPアドレス解決を試みてエラーとなっているような気がします。
以下の手順のいずれかでHOST環境変数を空にして、scaffolding siteを再起動すると正常にアクセスできるようになります。
- cmd.exe
set HOST=
unsetenv HOST
export HOST=
mac環境の現象:
macでも同様の問題が発生します。mac上のログは以下のようになります。やはりHOST環境変数を無効にすることでブラウザからアクセスできるようになりました。% stack exec -- yesod devel Yesod devel server. Type 'quit' to quit Application can be accessed at: http://localhost:3000 https://localhost:3443 If you wish to test https capabilities, you should set the following variable: export APPROOT=https://localhost:3443 Warning: The package list for 'hackage.haskell.org' is 42.1 days old. Run 'cabal update' to get the latest list of available packages. Resolving dependencies... Configuring my-project-0.0.0... Rebuilding application... (using cabal) Starting development server... Starting devel application Devel application launched: http://localhost:3000 devel.hs: getAddrInfo: does not exist (nodename nor servname provided, or not known)
参考:
- Yesod quick start guide
- yesod init && yesod devel fails with "getAddrInfo: does not exist"
- The Glorious Glasgow Haskell Compilation System, version 7.10.3
- yesod-bin version: 1.4.17.1
0 件のコメント:
コメントを投稿