Ubuntu 16.04 で Maya 2017, Maya 2018 を動かす(Maya 2018 Update6 動作)

漢なら Ubuntu 16.04 で Maya 2017, Maya 2018 動かしたいですよね!

Maya が正式サポートする環境は RHEL/CentOS ですが, 頑張れば Ubuntu 16.04 でも動くときがあります.

# Environment

* Maya 2017, Maya 2018u6
* Ubuntu 16.04.6 TLS 
* NVIDIA RTX 2080 Ti(Driver 418.56)

## インストール

すでに先人たちの手によってインストールスクリプトができています. ありがたいですね.

https://gist.github.com/borgfriend/b83467639cb8039dc79974bf780a4994

こちらも参考になります.

Install Maya 2017 on Ubuntu 16.04
https://lost-triangle.com/2016/09/05/install-maya-2017-on-ubuntu-16-04/

似たようなやり方で Maya 2018 Update6 も動きました.

## トラブルシューティング

### std::logic_error で起動時 seg failt

起動時に segmentation fault する場合.

https://github.com/CGRU/cgru/issues/257

```
MAYA_DISABLE_CIP=1
```

を設定する.

### OpenGL 周りでエラー


```
Graphic device does not support OpenGL Core Profile, fallback to OpenGL renderer.
Stack trace:
  /usr/autodesk/maya2017/lib/libOGSDeviceOGL-16.so(+0x43309) [0x7f8c33d5d309]
  /usr/autodesk/maya2017/lib/libOGSDeviceOGL-16.so(+0x38e1a) [0x7f8c33d52e1a]
  /usr/autodesk/maya2017/lib/libOGSDeviceOGL-16.so(+0x2453d) [0x7f8c33d3e53d]
  OGS::Devices::Sys::CreateVirtualDevice(OGS::Devices::ACreationParameters*)
  CreateOGSDevice(OGS::Devices::ACreationParameters*)
  OGSRenderer::initializeOGSDevice(OGS::Objects::UString*, int)
  OGSMayaRenderer::initialize(OGSRenderer::DeviceAPI, int, void*, void*, void*, bool)
  OGSMayaBridge::CreateOGSRenderer()
  OGSMayaBaseRenderer::initialize()
  OGSViewportRenderer::initialize()
  OGSMayaBridge::Create3DViewportRenderer()
  /usr/autodesk/maya2017/bin/maya.bin() [0x417d9b]
  Tapplication::start()
  /usr/autodesk/maya2017/bin/maya.bin() [0x40ee50]
  main
  __libc_start_main
  /usr/autodesk/maya2017/bin/maya.bin() [0x40e6ed]
```

と出る場合.

一旦 Maya をインストールしたあとに NVIDIA のドライバをアップデートして `libGL.so` のシンボリックリンクが消えていませんでしょうか? シンボリックリンクが無効になっている場合, `nvidia-smi` などで現在利用のドライババージョンを確認し, 同じバージョンのの `libGL.so` をポイントするようにしておきます.

``
$ sudo ln -s /usr/lib/nvidia-LATEST/libGL.so /usr/autodesk/maya2017/lib/
```

## Licensing Error が出る場合.

```
maya: Autodesk Maya 2017Licensing ErrorA licensing error occurred that Autodesk systems were not able to handle for you. Please contact Autodesk Customer Support for help in resolving this error.GetFeatureAuthorizationStatus 1 (Failure)
```

起動時にこのようなエラーが出る場合. 
NTP を設定すると治るケースもあるようですが, 治らないケースもあるようです...

https://forums.autodesk.com/t5/maya-forum/autodesk-2017-licensing-error-centos-7/td-p/6980071

## Maya 2018 Update 5

2018 Update5 では bifrost まわりで起動エラーがでてしまいます.
bifrost をアンインストール(apt remove bifost*)で起動しました.
Bifrost による流体シミュレーションはあきらめましょう.


```
Stack trace:
  pthread_mutex_lock
  /usr/autodesk/maya2018/lib/libawjemalloc.so.1(+0x1153b) [0x7fccce39253b]
  awje_malloc
  Bifrost::VoxelLayoutNode::init(int, unsigned long, int, int, int, int, int, long, bool)
  /usr/autodesk/bifrost/maya2018/plug-ins/../lib/libbifrostcore_1_0.so(+0x1e472a) [0x7fcccd4ff72a]
  /lib64/ld-linux-x86-64.so.2(+0x106ba) [0x7fce7ed026ba]
  /lib64/ld-linux-x86-64.so.2(+0x107cb) [0x7fce7ed027cb]
  /lib64/ld-linux-x86-64.so.2(+0x158e2) [0x7fce7ed078e2]
  /lib64/ld-linux-x86-64.so.2(+0x10564) [0x7fce7ed02564]
  /lib64/ld-linux-x86-64.so.2(+0x14da9) [0x7fce7ed06da9]
  /lib/x86_64-linux-gnu/libdl.so.2(+0xf09) [0x7fce6ace7f09]
  /lib64/ld-linux-x86-64.so.2(+0x10564) [0x7fce7ed02564]
  /lib/x86_64-linux-gnu/libdl.so.2(+0x1571) [0x7fce6ace8571]
  dlopen
  TdynamicLoad::open(char const*, TdynamicLoad::TdynamicLoadMode)
  Tplugin::primaryLoad(Tstring const&, Tstring*)
  Tplugin::load(Tstring const&, Tstring*)
  /usr/autodesk/maya2018/lib/libOpenMaya.so(+0x449bbb) [0x7fcdb2682bbb]
  /usr/autodesk/maya2018/lib/libOpenMaya.so(+0x44a510) [0x7fcdb2683510]
  /usr/autodesk/maya2018/lib/libOpenMaya.so(+0x44b176) [0x7fcdb2684176]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0x594b4) [0x7fce7c6c74b4]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0x82c41) [0x7fce7c6f0c41]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0xa882d) [0x7fce7c71682d]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0x80871) [0x7fce7c6ee871]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0xa7d78) [0x7fce7c715d78]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0x82c41) [0x7fce7c6f0c41]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0xa7f39) [0x7fce7c715f39]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0x82c41) [0x7fce7c6f0c41]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0xa9cd0) [0x7fce7c717cd0]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0x82c41) [0x7fce7c6f0c41]
  /usr/autodesk/maya2018/lib/libCommandEngine.so(+0x82e01) [0x7fce7c6f0e01]
  SophiaExecutable::evaluate(void*)
  TcommandEngine::executeCommand(Tstring const&, bool, bool, TmelCmdResult*, unsigned int)
  TidleScriptAction::doIdleAction(Tevent const&)
  TidleAction::preDoIdleAction(Tevent const&)
  /usr/autodesk/maya2018/lib/libExtensionLayer.so(+0x1e50af) [0x7fce7abd30af]
  TeventHandler::doIdles()
  /usr/autodesk/maya2018/lib/libExtensionLayer.so(+0x1f96dd) [0x7fce7abe76dd]
  QObject::event(QEvent*)
  QApplicationPrivate::notify_helper(QObject*, QEvent*)
```

## TODO

* RHEL8(CentOS8)だといろいろパッケージが新しくなっており, Ubuntu 16.04 と同等の開発環境揃えることができそうなのでで Maya 2019 で RHEL8 対応してほしい.