oinume journal

Scratchpad of what I learned

MySQL 5.1の最新のソースからdebを作成する

以前[permalink id=331]MySQL 5.1の最新版のdebパッケージを作成する方法[/permalink]というエントリを書いたのですが、Ubuntuの最新の開発版パッケージではなく、MySQLが出している最新のMySQLのソースをビルドしてdebパッケージを作成する方法を見つけたのでメモしておきます。ちなみにMySQL以外にもperlとかのパッケージもこの方法で最新にすることが出来ると思います。

 

debを作成するための準備

まずはビルドする人間のメールアドレスと名前を環境変数で設定しておきます。適当に自分のものに置き換えて下さい。

 

$ export DEBEMAIL="hogehoge@foo.com"

$ export DEBFULLNAME="Your Name"

 

 

次にパッケージをビルドするために必要なものをインストールします。

 

$ sudo aptitude install dh-make devscripts debhelper fakeroot lintian sudo pbuilder piuparts dpatch build-essential

$ sudo aptitude build-dep mysql-server-5.1

 

 

ソースの取得

Ubuntudebを作成するのに使われているソースを取得します。ソースはカレントディレクトリに展開されるので、必要があれば適当なディレクトリに cd しておいてください。

 

$ apt-get source mysql-server-5.1

 

次に最新のMySQLのソースをmysql.comより取得します。"Select Platform"というプルダウンで"Source Code"を選択し、"Generic Linux (Architecture Independent), Compressed TAR Archive"をダウンロードして下さい。現在の最新版は5.1.42になるので、mysql-5.1.42.tar.gz としてダウンロードしています。

 

ビルド

ではビルドを始めます。uupdate というコマンドを使うと、自動的に引数で指定した最新のソースパッケージを展開しそこにDebianのパッケージを作成するためのファイルが生成されます。(つーか

uupdate便利過ぎ!)

 

$ cd mysql-dfsg-5.1-5.1.37

$ uupdate ../mysql-5.1.42.tar.gz

 

 

"cd ../mysql-dfsg-5.1-5.1.42 しろ"と言われるので、cd してパッケージをビルドします。(私はAthlon X2 5050eの環境で約2.5時間かかりました)

 

$ dpkg-buildpackage -uc -us -rfakeroot

 

 

インストール

ビルドが完了すると .deb パッケージがソースパッケージのディレクトリに作成されているので、必要なものをdpkg -iしてインストールします。ただし、依存関係が若干複雑なのでエラーが出たら依存しているものを先にインストールすると良いでしょう。

 

sudo dpkg -i

libmysqlclient16_5.1.42-0ubuntu1_amd64.deb

libmysqlclient-dev_5.1.42-0ubuntu1_amd64.deb

libmysqlclient16-dev_5.1.42-0ubuntu1_all.deb

mysql-common_5.1.42-0ubuntu1_all.deb

mysql-client-5.1_5.1.42-0ubuntu1_amd64.deb

mysql-client_5.1.42-0ubuntu1_all.deb

mysql-server-5.1_5.1.42-0ubuntu1_amd64.deb

mysql-server-core-5.1_5.1.42-0ubuntu1_amd64.deb

mysql-server_5.1.42-0ubuntu1_all.deb

libmysqld-dev_5.1.42-0ubuntu1_amd64.deb

libmysqld-pic_5.1.42-0ubuntu1_amd64.deb

 

 

無事にインストールできれば、これでmysql-server-5.1が最新版になっています。mysqlコマンドでSQLを発行して動作を確認してみて下さい。

 

$ mysql -uroot -pxxxxx

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 72

Server version: 5.1.42-0ubuntu1-log (Ubuntu)