結論
/usr/include
配下のディレクトリのパーミッションが全て 744 になっていたため、コンパイルが通らなかった。
Docker で Volume 指定をしたディレクトリを予め作ってしまったことが問題っぽいです(自動で作られる前に)。
Docker で Volume 指定をすると思わぬ権限で上書きされて思わぬパーミッションエラーが出るので注意しましょうということです。
以下の内容は root うんぬんの話ではなく「適切なユーザでない」ことが原因と思われます。
Elasticsearch で Permission のことを言われたらおそらく標題のことが原因の可能性があります*1。具体的には以下のようなエラーメッセージが出ます。
Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")
root で実行しないのが一番ですが、chown
で対処することもできます。
*1:ファイルの読み書き作成など
Python でのパッケージ管理には pip が用いられますが、pip の内容や依存性を管理してくれるツールに Pipenv というものがあります。
Pipenv の使い方については公式ドキュメントが詳しいです(日本語です)。
Pipenv: 人間のためのPython開発ワークフロー — pipenv 2018.11.27.dev0 ドキュメント
続きを読む