質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Q&A

解決済

2回答

1191閲覧

stack build でパッケージビルド中にエラーが起きてしまいます。

nerianighthawk

総合スコア544

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

0グッド

0クリップ

投稿2019/12/20 00:41

編集2019/12/23 05:26

前提・実現したいこと

Haskell での Web アプリケーションの作成の勉強を始めたばかりです。
かなり序盤の部分で詰まっていて、まだ Haskell のソースコードを弄っていない段階です。
やろうとしていることとしては Yesod を使った Web アプリケーションの開発です。
Stack でパッケージ管理をしています。
環境は WSL の Ubuntu 上での開発です。
データベースは mysql を使おうとしています。
(バージョンに関しては下記補足情報にて)

現在の状況としては、stack のインストール完了、yesod-mysql のプロジェクトを作成、Yesod のインストールまでです。
次にプロジェクトをビルドしようとしたときにエラーが発生しています。

発生している問題・エラーメッセージ

mysql-0.1.6pcre-light-0.4.0.4 という2つのパッケージのビルド中にエラーが発生しています。

-- While building package mysql-0.1.6 using: Process exited with code: ExitFailure 1 -- While building package pcre-light-0.4.0.4 using: Process exited with code: ExitFailure 1

修正依頼にてご指摘いただいた通り、ビルド時の出力にエラーメッセージが出ていたため、編集にて追記します。

mysql > configure mysql > [1 of 2] Compiling Main ( /tmp/stack16110/mysql-0.1.6/Setup.hs, /tmp/stack16110/mysql-0.1.6/.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/setup/Main.o ) mysql > [2 of 2] Compiling StackSetupShim ( /home/nerianighthawk/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs, /tmp/stack16110/mysql-0.1.6/.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/setup/StackSetupShim.o ) mysql > Linking /tmp/stack16110/mysql-0.1.6/.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/setup/setup ... mysql > Configuring mysql-0.1.6... mysql > setup: Missing dependencies on foreign libraries: mysql > * Missing (or bad) C libraries: ssl, crypto mysql > This problem can usually be solved by installing the system packages that mysql > provide these libraries (you may need the "-dev" versions). If the libraries mysql > are already installed but in a non-standard location then you can use the mysql > flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.If mysql > the library files do exist, it may contain errors that are caught by the C mysql > compiler at the preprocessing stage. In this case you can re-run configure mysql > with the verbosity flag -v3 to see the error messages. mysql > pcre-light > configure pcre-light > Configuring pcre-light-0.4.0.4... pcre-light > Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.4: The program 'pkg-config' version pcre-light > >=0.9.0 is required but the version of /mnt/c/Strawberry/perl/bin/pkg-config pcre-light > could not be determined. pcre-light >

mysql 側はCライブラリが足りないもしくは参照先がおかしいとなっており、pcre-light はバージョン指定がおかしいのでしょうか?
どのように対処していいのかわからないので、対応方法を教えていただきたく思います。
よろしくお願いいたします。

該当のソースコード

ソースコードは書いていません。
stack new [プロジェクト名] yesod-mysql コマンドで生成されたプロジェクトに対する操作です。

試したこと

stack upgrade をしましたが、最新でした。

補足情報(FW/ツールのバージョンなど)

$ stack Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.3 LTS Release: 18.04 Codename: bionic

Yesod: 1.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakkun61

2019/12/20 03:02

stack build 時の出力にログファイルへのパスが含まれていると思います。 その内容を記載していただけますか? おそらく依存している C のライブラリー(libmysqlclient-dev・libpcre3-dev あたり)が足りていないのだと思われます。
nerianighthawk

2019/12/20 07:46

修正依頼をいただきありがとうございます。 しかし、stack build の出力内容に、ログファイルへのパスらしき記載は見つかりませんでした。 通常だとどこに入っている、もしくはどういったファイル名であるという情報はありますでしょうか。
igrep

2019/12/21 00:44

ログファイルじゃなくても標準エラー出力のもっと前の方に含まれてませんか? そのバージョンのstackですと mysql-0.1.6> とか、 pcre-light-0.4.0.4> みたいなプレフィックスを行頭に着けて、ビルド時の出力が出ているかと思います。
nerianighthawk

2019/12/23 05:27

すみません、確かに出力に出ていました。質問に追記しました。 よろしくお願いします。
guest

回答2

0

ベストアンサー

pcre-lightについてはこちらのIssueが見つかりました:

Building a project with pcre-light on Windows fails · Issue #7 · Daniel-Diaz/pcre-light

sudo apt-get install pkg-config でいかがでしょうか?

それから、mysql-0.1.6については推測ですが、

Missing (or bad) C libraries: ssl, crypto

とのことなので、足りないのはlibmysqlclient-devではなく、libssl-devとlibcrypto++-devではないかと推測されます。

参考:

と、いうわけで、pkg-configと合わせて

sudo apt-get install pkg-config libssl-dev libcrypto++-dev

で、足りないものをインストールしてみてください。

投稿2019/12/23 05:56

igrep

総合スコア428

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nerianighthawk

2019/12/23 06:08

根拠も含め、ご回答いただき、ありがとうございます。 無事、ビルドすることができました。
guest

0

mysql-0.1.6 の方は libmysqlclient-dev が、
pcre-light-0.4.0.4 の方は libpcre3-dev が
インストールされていないのが原因と思われます。

インストールは次のコマンドでできます。

sh

1$ sudo apt install libmysqlclient-dev libpcre3-dev

私の環境では上記二つがインストールされている状態でビルドできました。

sh

1$ stack --version 2Version 2.1.1, Git revision f612ea85316bbc327a64e4ad8d9f0b150dc12d4b (7648 commits) x86_64 hpack-0.31.2 3 4$ lsb_release -a 5No LSB modules are available. 6Distributor ID: Ubuntu 7Description: Ubuntu 18.04.3 LTS 8Release: 18.04 9Codename: bionic 10 11$ apt list --installed libpcre* 12Listing... Done 13libpcre16-3/bionic,now 2:8.39-9 amd64 [installed,automatic] 14libpcre3/bionic,now 2:8.39-9 amd64 [installed] 15libpcre3-dev/bionic,now 2:8.39-9 amd64 [installed,automatic] 16libpcre32-3/bionic,now 2:8.39-9 amd64 [installed,automatic] 17libpcrecpp0v5/bionic,now 2:8.39-9 amd64 [installed,automatic] 18 19$ apt list --installed libmysql* 20Listing... Done 21libmysqlclient-dev/bionic-updates,bionic-security,now 5.7.28-0ubuntu0.18.04.4 amd64 [installed] 22libmysqlclient20/bionic-updates,bionic-security,now 5.7.28-0ubuntu0.18.04.4 amd64 [installed,automatic] 23

投稿2019/12/22 02:12

kit494way

総合スコア317

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nerianighthawk

2019/12/23 05:30

apt list --installed で確認した結果、確かにライブラリが足りていない状況だったため、教えていただいたコマンドでインストールし、再度確認すると、ライブラリの状況は同じになりました。 しかし、それでも同じ場所でエラーが発生しました。 また、質問に出力メッセージも追加しました。 他に何か必要なことで思い当たることがありましたら、教えていただきたく思います。 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問