(mysql-workbench-bin:1061): glibmm-ERROR **: 05:41:45.709: unhandled exception (type std::exception) in signal handler: what: locale::facet::_S_create_c_locale name not valid calimakvo ~ #
ちょっと調べて見たところ、落ちてる場所は、
cuomo@calimakvo ~ $ nm -D --demangle /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/libstdc++.so | grep std::locale::facet::_S_create_c_locale 00000000000d99b0 T std::locale::facet::_S_create_c_locale(__locale_struct*&, char const*, __locale_struct*) cuomo@calimakvo ~ $
なんとlibstdc++のなかではないですか、でそこのコード
void locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, __c_locale __old) { __cloc = __newlocale(1 << LC_ALL, __s, __old); if (!__cloc) { // This named locale is not supported by the underlying OS. __throw_runtime_error(__N("locale::facet::_S_create_c_locale " "name not valid")); } }細かいことは分かりませんが、__clocにロケールカテゴリオブジェクトを返せないようなので、こういうのは、英語のロケールまわりをいじくるのが「定説です」 ...自信はさほどありません
そこで、localeを確認してみる
calimakvo ~ # locale -a C C.utf8 POSIX ja_JP ja_JP.eucjp ja_JP.utf8
たぶん、この中のロケールでは足りない可能性があるので、さらに追加してみた
- /etc/locale.gen を修正し以下のコメントを外す
en_US.UTF-8 UTF-8
- locale-gen再実行
calimakvo ~ # locale-gen * Generating 6 locales (this might take a while) with 8 jobs * (1/6) Generating en_US.ISO-8859-1 ... [ ok ] * (3/6) Generating ja_JP.EUC-JP ... [ ok ] * (4/6) Generating ja_JP.EUC-JP ... [ ok ] * (5/6) Generating ja_JP.UTF-8 ... [ ok ] * (6/6) Generating C.UTF-8 ... [ ok ] * (2/6) Generating en_US.UTF-8 ... [ ok ] * Generation complete * Adding locales to archive ... [ ok ]めでたくmysql-workbenchが利用可能になりました、まぁ、「言語はローケールは母国語と英語は設定しときなさい」ということらしいです。