LoginSignup
0
0

More than 3 years have passed since last update.

Sencha Architect 4.2.5 を CentOS7 で動かしてみる

Last updated at Posted at 2019-07-16

JavaScript でのシングルページアプリケーション構築の商用フレームワークである Ext JS は Visual Studio Code や Eclipse などの IDE で開発できますが、ビジュアル開発環境である Sencha Architect を使えばコンポーネントをドラッグ&ドロップして画面デザインを見たままに作ることができます。

そして Sencha Architect は Windows, macOS, Linux のいずれでも利用できますが、Linuxの場合はディストリビューションによってlibc++.so.6のバージョンが異なるために、そのままではSencha Architectが実行できない場合があります。

その一つがCentOS7なのですが、この記事ではSencha Architectを動かすためにライブラリをソースからビルドして、動く環境を作ってみることにします。

必要な作業

  • OpenJDK 1.8 をインストールしておきましょう。
  • inotify の設定も変えておきます。
  • Sencha Architect が参照する libc++.so.6 は CentOS7 標準のバージョンよりも新しいため、ソースからビルドします。

OpenJDK 1.8 のインストール

これは特に難しいことはありませんので説明は省略します。

# yum install java

inotify の設定を変える

Sencha Architectはプロジェクトを保存するごとにバックグラウンドでビルドツールが自動的に実行されますが、Linuxではファイルの変更をinotifyで検知しています。しかし CentOS7 のデフォルトでは inotify の max_user_watches が下記のように 8192 と少々少なめに設定されています。

$ cat /proc/sys/fs/inotify/max_user_watches 
8192

そこで root 権限で以下のように実行して inotify の上限を増やすことにします。

# echo 100000 > /proc/sys/fs/inotify/max_user_watches

ただしこのコマンドは現在のOSに対する一時的な設定変更にすぎないので、永続的に有効化するために下記のように設定しておきます。

/etc/sysctl.d/inotify.conf
fs.inotify.max_user_watches=100000

libc++.so.6 の新しいバージョンを使うために gcc をソースからビルドする

libc++.so.6 は gcc に含まれるため、gcc をビルドします。この作業の説明はそれだけで記事が一つ書けてしまいますが、Qiitaに類似の記事がありましたので、そちらのリンクを提示いたします。

この作業を行っていない場合は上記記事で紹介されているような GLIBCXX のミスマッチにより Sencha Architect が実行できないのです。

なお、この記事の手順を抜粋し、またビルドに必要な rpm パッケージのインストールを行う手順を追加したものがこちらです。

# yum install gmp-devel mpfr-devel libmpc-devel glibc-devel.x86_64 glibc-devel.i686
# yum install gcc gcc-c++

# curl -LO http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.3.0/gcc-8.3.0.tar.gz
# curl -LO http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.3.0/sha512.sum
# sha512sum --check sha512.sum

# tar xzfv gcc-8.3.0.tar.gz -C /usr/local/src
# cd /usr/local/src/gcc-8.3.0/
# ./contrib/download_prerequisites
# mkdir build
# cd build
# ../configure --enable-languages=c,c++ --prefix=/usr/local --disable-bootstrap --disable-multilib
# make
# make install

gcc のビルドはそれなりに時間がかかる作業なので、ビルドを仕掛けてランチに出かけるとか帰宅するとよいでしょう。

ビルドした libc++.so.6 を使って Sencha Architect を起動する

ソースからビルドした libc++.so.6 は Sencha Architect 実行時だけ参照すればよいので、とりあえず、LD_LIBRARY_PATH の設定により一時的に参照できるようにします。

$ LD_LIBRARY_PATH=/usr/local/lib64
$ export LD_LIBRARY_PATH

Sencha Architect をインストールして実行する

ここまでの準備ができていれば、Sencha Architect をインストールして実行してみてください。インストールそのものは特に難しい点はないので省略します。

インストールした Sencha Architect は LD_LIBRARY_PATH を設定したシェルから次のように実行して起動します。

$ sencha/Sencha\ Architect\ 4.2/SenchaArchitect 

すると、Sencha Architect が無事起動しました。下記のスクリーンショットは CarListing のサンプルを開いた状態です。画面左上のアイコンを見るとCentOS7で動いていることが分かりますね。

image.png

では実際にブラウザでプレビューしてみましょう。画面左側の Firefox でプレビューしつつ、画面右側には Sencha Architect を配置しています。

image.png

RHEL8 系列ならこういう環境構築を行わずともSencha Architectを実行できまるはずですが、RHEL7/CentOS7 系列でSencha Architectを利用しなければならない場合はこういう方法で対応できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0