linuxBean14.04(63)MySQL Workbench6.3.4のビルドとインストール

ラベル: ,

前の関連記事:linuxBean14.04(62)MySQL5.6.26のインストール


MySQL Workbenchの公式サイトからはLinuxの32bit版のバイナリは提供されなくなり、ソースコードからビルドしてください、ということなのでlinuxBean14.04でMySQL Workbench6.3.4をビルドします。私の環境ではどうがんばってもXorgをアンインストールしないとビルドできませんでした。

捨てマシンでMySQL Workbench6.3.4をビルドする


MySQL Workbench6.3.4のソースコードをビルドするにはlibglu1-mesa-devパッケージのインストールが必要です。

しかしこのlibglu1-mesa-devをインストールする際にたくさんのパッケージが削除されます。

その削除するパッケージの中にはxorgがあります。

つまり再起動後にはXウィンドウシステムが使えなくなってしまいます。

その他wineやaudacityなどたくさんのパッケージが削除されるので、ビルドに使うマシンはビルド後はもう使えません、、、

再起動するまではXウィンドウシステムがまだ動いているので再起動前に削除したパッケージを再インストールすれば問題ないわけですが、とてもそんな面倒なことはしていられません。

再起動後はCUIでは普通にログインできますが、日本語名のファイルやフォルダは文字化けしています。

今回はVirtualBoxのクローンしたマシンでMySQL Workbench6.3.4をビルドしました。

ビルドしたらそのマシンからMySQL Workbench6.3.4のバイナリを取り出して、普段使っているマシンにインストールします。

ビルドしたマシンは再起動後はCUIしか使えないのでバイナリを取り出したあとに捨てます。

VirtualBoxへのlinuxBean14.04のインストールはlinuxBean14.04(1)VirtualBoxにインストール、ビルドしたMySQL WorkbenchのバイナリのホストOS(Windows7 64bit)へ退避にはlinuxBean14.04(19)VirtualBoxのホストOSとフォルダを共有を使いました。

ということで以下はVirtualBoxで作った捨てマシンで作業しています。

MySQL Workbench 6.3.4のソースコードのダウンロード  



MySQL :: Download MySQL WorkbenchでSource Codeを選択します。


mysql-workbench-community-6.3.4-src.tar.gzをダウンロードしました。

ファイルマネージャで右クリック→ここでファイルを展開。

mysql-workbench-community-6.3.4-srcフォルダができてその中にファイルが解凍されます。

INSTALLファイルをダブルクリックするとビルド方法が書いてあります。

makeする前にまずいろいろパッケージをインストールしないといけません。

ビルドに必要なパッケージをインストールする


まずはiodbcパッケージがインストールしてある場合はそれをアンイストールします。


今回はSynapticパッケージマネージャでiodbcで検索してみるとiodbcはインストールされていませんでした。

次にビルドに必要なパッケージを選択します。

INSTALLファイルには以下のパッケージをインストールするように書いてあります。
build-essential
cmake
cmake-data
autoconf
automake
pkg-config
libtool
libzip-dev
libxml2-dev
libsigc++-2.0-dev
libglade2-dev
libgtkmm-2.4-dev
libglu1-mesa-dev
libgl1-mesa-glx
mesa-common-dev
libmysqlclient-dev
libmysqlcppconn-dev
uuid-dev
libpixman-1-dev
libpcre3-dev
libgnome2-dev
libgnome-keyring-dev
libgtk2.0-dev
libpango1.0-dev
libcairo2-dev
python-dev
libboost-dev
libctemplate-dev
mysql-client
python-pysqlite2
libsqlite3-dev
libtinyxml-dev
swig
libvsqlitepp-dev
libgdal-dev
libproj0
全部で36個もあります。

ひとつずつSynapticパッケージマネージャで確認してみるとlibgl1-mesa-glxとmysql-clientはすでにインストール済でした。



mysql-clientはlinuxBean14.04(62)MySQL5.6.26のインストールでインストールした5.6.26です。

とりあえずINSTALLファイルに書いてあるコマンドでTerminalですべてをインストールしてみます。

その前にsudo apt-get updateでリポジトリの最新の内容を反映させておきます。
sudo apt-get install build-essential cmake cmake-data autoconf automake pkg-config libtool libzip-dev libxml2-dev \
                          libsigc++-2.0-dev libglade2-dev libgtkmm-2.4-dev libglu1-mesa-dev libgl1-mesa-glx \
                          mesa-common-dev libmysqlclient-dev libmysqlcppconn-dev uuid-dev libpixman-1-dev libpcre3-dev \
                          libgnome2-dev libgnome-keyring-dev libgtk2.0-dev libpango1.0-dev libcairo2-dev python-dev \
                          libboost-dev libctemplate-dev mysql-client python-pysqlite2 libsqlite3-dev libtinyxml-dev \
                          swig libvsqlitepp-dev libgdal-dev libproj0
これをコピペしてTerminalで実行します。
pq@pq-VirtualBox:~$ sudo apt-get install build-essential cmake cmake-data autoconf automake pkg-config libtool libzip-dev libxml2-dev \
>                           libsigc++-2.0-dev libglade2-dev libgtkmm-2.4-dev libglu1-mesa-dev libgl1-mesa-glx \
>                           mesa-common-dev libmysqlclient-dev libmysqlcppconn-dev uuid-dev libpixman-1-dev libpcre3-dev \
>                           libgnome2-dev libgnome-keyring-dev libgtk2.0-dev libpango1.0-dev libcairo2-dev python-dev \
>                           libboost-dev libctemplate-dev mysql-client python-pysqlite2 libsqlite3-dev libtinyxml-dev \
>                           swig libvsqlitepp-dev libgdal-dev libproj0
[sudo] password for pq: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
mysql-client は既に最新バージョンです。
libgl1-mesa-glx は既に最新バージョンです。
インストールすることができないパッケージがありました。おそらく、あり得ない状況を要求したか、(不安定版ディストリビューションを使用しているのであれば) 必要なパッケージがまだ作成されていなかったり Incoming から移動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 libglu1-mesa-dev : 依存: libgl1-mesa-dev または
                            libgl-dev
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
mysql-clientとlibgl1-mesa-glxについては事前に調べた通り既にインストール済ということですが、libglu1-mesa-devが依存関係に問題がありインストールできないといわれます。

とりあえずlibglu1-mesa-dev以外をインストールしてしまいます。
sudo apt-get install build-essential cmake cmake-data autoconf automake pkg-config libtool libzip-dev libxml2-dev \
                          libsigc++-2.0-dev libglade2-dev libgtkmm-2.4-dev libgl1-mesa-glx \
                          mesa-common-dev libmysqlclient-dev libmysqlcppconn-dev uuid-dev libpixman-1-dev libpcre3-dev \
                          libgnome2-dev libgnome-keyring-dev libgtk2.0-dev libpango1.0-dev libcairo2-dev python-dev \
                          libboost-dev libctemplate-dev mysql-client python-pysqlite2 libsqlite3-dev libtinyxml-dev \
                          swig libvsqlitepp-dev libgdal-dev libproj0
libglu1-mesa-devを除いたこれをコピペしてTerminalで実行します。

今度は問題なくインストール終了しました。

libglu1-mesa-devをSynapticパッケージマネージャでインストールする



Synapticパッケージマネージャでlibglu1-mesa-devをインストール指定しても破損パッケージ扱いになってインストールできません。

そこでまずは依存関係にあるlibgl1-mesa-devを先にインストールします。


この記事の最初に書いたようにこのlibgl1-mesa-devをインストールするとxorgをはじめたくさんのパッケージが削除されるので捨てマシンで作業を行ったほうがよいです。

「適用」ボタンをクリックすると1回目はなぜか最初はインストールできません、といわれ元の画面に戻りますが、もう一度「適用」ボタンをクリックするとインストールが始まります。


libgl1-mesa-dev 10.1.3がインストールできました。


今度はlibglu1-mesa-devをインストール指定にしても問題は起きません。

「適用」をクリックしてlibglu1-mesa-dev 9.0.0のインストールを行います。

これでMySQL Workbench6.3.4.0のビルドに必要なパッケージのインストールが完了しました。

Xウィンドウシステムが既にアンインストールされているので、MySQL Workbench6.3.4.0のバイナリを他のマシンに退避させるまではこの捨てマシンをシャットダウンさせてはいけません。

mysql-workbench-community-6.3.4-srcをビルドする


ファイルマネージャでmysql-workbench-community-6.3.4-srcフォルダを開きwb-buildというフォルダを作成しそれを開きます。

ファイルマネージャのメニューからツール→現在のフォルダを端末で開く。

cmake [-DCMAKE_INSTALL_PREFIX=/usr] ..

これを実行するとビルドファイルの作成が始まります。
-- Build files have been written to: /home/pq/ダウンロード/mysql-workbench-community-6.3.4-src/wb-build
これでビルドファイルの出力完了です。

wb-buildフォルダにMakefileなどが作られているのがわかります。

make

続いてmakeコマンドを実行するとコンパイルが始まります。

ウェブブラウザ(1)最速はChrome?に書いてあるCorei5のスペックのVirtualBoxのゲストOSのlinuxBean14.04でコンパイル完了まで50分間かかりました。

コンパイルが完了したらインストールします。

make install DESTDIR=.

このコマンドでwb-buildフォルダ内にusrフォルダが作られてそこにMySQL Workbench6.3.4のバイナリが出力されます。

ファイルマネージャでこのusrフォルダを右クリック→ファイルを圧縮する。

174.2MBあったusrフォルダが圧縮されて29.5MBのusr.tar..gzファイルになりました。

今後必要なのはこのusr.tar.gzファイルだけなのでこのファイルをホストOSに退避させます。

sudo make install

捨てマシンで動作を確認したいときはsudo make installとすると捨てマシンにインストールできます。

豆ボタン→プログラミング→MySQL Workbenchで起動できます。


起動すると既にlocalhost:3306へのMySQLサーバへのコネクションアイコンが作成されていました。

これで捨てマシンでの作業は終了です。

MySQL Workbench6.3.4のバイナリを他のマシンにインストールする


捨てマシンで作成したusr.tar.gzファイルをインストールしたいマシンに移動させます。

移動先のマシンではlinuxBean14.04(62)MySQL5.6.26のインストールの通りMySQL5.6.26をインストールしておきます。

ファイルマネージャで右クリック→ここでファイルを展開。

展開されたusrフォルダをコピー。

豆ボタン→アクセサリ→ファイルマネージャPCManFM(root)。

/にコピーしたusrフォルダを貼り付けます。


/usrフォルダはすでにあるので上書きを確認されます。

「このオプションを既存のすべてのファイルに適用する」にチェックをつけて「上書きする」をクリック。

MySQL Workbenchを起動するコマンドは/usr/local/bin/mysql-workbenchになります。

しかしこのままでは必要なパッケージが不足していますので、ビルドしたときと同じパッケージをインストールします。

sudo apt-get update

これでリポジトリの最新の内容を反映させたあとlibglu1-mesa-dev以外をインストールします。
sudo apt-get install build-essential cmake cmake-data autoconf automake pkg-config libtool libzip-dev libxml2-dev \
                          libsigc++-2.0-dev libglade2-dev libgtkmm-2.4-dev libgl1-mesa-glx \
                          mesa-common-dev libmysqlclient-dev libmysqlcppconn-dev uuid-dev libpixman-1-dev libpcre3-dev \
                          libgnome2-dev libgnome-keyring-dev libgtk2.0-dev libpango1.0-dev libcairo2-dev python-dev \
                          libboost-dev libctemplate-dev mysql-client python-pysqlite2 libsqlite3-dev libtinyxml-dev \
                          swig libvsqlitepp-dev libgdal-dev libproj0
(Chromeからのコピペではエラーがでます。Firefoxからのコピペは問題ありません。)

本当はこんなにたくさんのパッケージのインストールは不要と思いますがどれが必須のものなのかわかりませんでした。

あとはTerminalで/usr/local/bin/mysql-workbenchとコマンドを打つとMySQL Workbench6.3.4が起動できました。
pq@pq-VirtualBox:~$ /usr/local/bin/mysql-workbench
Traceback (most recent call last):
  File "/usr/local/lib/mysql-workbench/modules/wb_admin_ssh.py", line 44, in <module>
    import paramiko
ImportError: No module named paramiko
Warning! Can't use connect with timeout in paramiko None
Ready.
paramikoモジュールがないという警告がでてきますがとくに支障はないようです。

ビルドに使った捨てマシンでもTerminalから起動すると同様の警告がでていました。


usrフォルダを上書きした時点ですでに豆ボタン→プログラミング→MySQL Workbenchのアイコンが登録されていました。

ハード構成の違う実機のlinuxBean14.04にインストールして、すでにSynapticパッケージマネージャからインストールしてあったmysql-server-5.5との接続もできました。

MySQL Workbenchのフォントの設定を日本語にする


MySQL WorkbenchでEdit→Preferences。

Modeling→Appearance。



Cofigure Fonts ForをDefault(Western)からJapaneseに変更します。


フォント一覧のFont欄がHelvetica 11からVL Gothic 11に変更になります。

「OK」をクリックすると設定が保存されます。

再度設定をみてみるとConfigure Fonts ForはデフォルトのDefault(Western)になっていますが、FontはちゃんとVL Gothic 11になっていることがわかります。

Python2.7にparamikoをインストール


MySQL Workbench6.3を起動するときにparamikoがないと警告がでていましたが、MySQL Workbench 6.3 » Blog Archive » Paramiko Update Tutorialを読んでparamikoをインストールすることにしました。

Synapticパッケージマネージャには1.10.1しかなかったのでlinuxBean14.04(39)Pythonのパッケージ管理をPyCharmで行うでやったようにPyCharm4.5から1.15.2をインストールすることにしました。

linuxBean14.04にはPython2.7, 3.3, 3.4の3つのバージョンがインストールしてありどれに対してparamikoをインストールすればよいのかわからなかったのでとりあえずPython3.4に対してインストールしました。

ところがPython.hがないといわれてインストールできません。

これはpython3.4-devをSynapticパッケージマネージャでインストールすれば解決するようですが、今回はすでにpython-devがインストールしてあったのでPython.2.7に対してparamikoをインストールすることにしました。

Paramiko Update Tutorialにはecdsaもインストールするように書いてあるのでecdsa 0.13もインストールしました。

ところがparamiko/paramiko · GitHubを読むとecdsaは0.9以上と書いてあります。

でもecdsaのページReleases · warner/python-ecdsa · GitHubでは0.13が最新ですのでどうしようもありません。

pycrypto 2.1以上のインストールも必要とparamiko/paramiko · GitHubに書いてありますが、これはすでに2.6.1がインストール済でした。

これで/usr/local/bin/mysql-workbenchでTerminalからMySQL Workbench6.3を起動しても何も警告がでなくなりました。

ちなみにSSH2プロトコルが使えるかどうかは未確認です。

参考にしたサイト


MySQL :: Supported Platforms: MySQL Workbench
Linuxの32bit版のバイナリは自分でビルドしてくださいとのことです。

MySQL :: Download MySQL Workbench
linuxBean14.04で動くMySQL Workbench6.3.4はここからSourceをダウンロードしました。

次の関連記事:linuxBean14.04(64)MySQL Utilities1.5.5とConnector/Python2.0.4のインストール

PR

0 件のコメント:

コメントを投稿