nabeo がピーしているブログ (仮)

どーも、nabeop です

ubuntu で Dtrace が使える MySQL バイナリを作る

とあることで MySQL さんの働きっぷりを dtrace で追いかけようと思ったけど、ubuntu が提供しているバイナリでは、dtrace 向けのオプションが付いていない状態でビルドされていた。

$ sudo /usr/share/bcc/tools/tplist -l `which mysqld`
$

MySQL :: MySQL 5.7 Reference Manual :: 2.9.4 MySQL Source-Configuration Options を見ると cmake に -DENABLE_DTRACE=1 を渡せば良いらしい

というわけで、deb パッケージの作り方をググりながら MySQL を作り直してみた、というメモです。

まずはビルドに必要な最小限のパッケージを取ってくる

$ sudo apt install build-essential devscripts systemtap-sdt-dev
$ sudo apt build-dep mysql-server

で、ubuntu のレポジトリから MySQL パッケージを作成するために必要なファイル1式を取ってくる

$ mkdir tmp
$ cd tmp
$ apt source mysql-server

この状態で作業用ディレクトリには以下のようにファイルとディレクトリが生成されているはず。

$ ls -F
mysql-5.7-5.7.23/   mysql-5.7_5.7.23-0ubuntu0.16.04.1.debian.tar.xz  mysql-5.7_5.7.23-0ubuntu0.16.04.1.dsc  mysql-5.7_5.7.23.orig.tar.gz
$

deb パッケージ作成時にしようする cmake のオプションは mysql-5.7-5.7.23/debian/rules に書いてあるので、修正してあげる。

ここまできたら以下を実行して deb パッケージが作れるはず

$ cd mysql-5.7-5.7.23
$ debuild -uc -us -b

出来上がったバイナリを tplist -l で確認すると以下のようにそれっぽい感じになっている。わーい。

$ sudo /usr/share/bcc/tools/tplist -l mysql-5.7-5.7.23/builddir/sql/mysqld  | wc -l
56
$