― Web Technology and Life ―

Ubuntuのaptitudeでいれたパッケージのソースと取得する方法

2011-06-04
HandlerSocketを既存のMySQLに入れようとしたときにはまったaptitudeでいれたMySQLのソースをゲットする方法についてのメモ。

そもそも、debパッケージはソースから作られるっぽいので、aptitudeでいれたパッケージにmysqlのソースはないみたいです(間違っていたら誰か教えてください?)。なので、何らかの方法でWeb上から自分のいれたバージョンのMySQLのソースをゲットしなくてはいけないのです。

自分のいれたMySQLのバージョンを確認する

まず、自分のいれたMySQLのバージョンがなんなのか知らないと話になりません。以下で確認します。

$ mysql -uuser -ppass
mysql> select version();
+------------------------+
| version()              |
+------------------------+
| 5.1.41-3ubuntu12.7-log |
+------------------------+
1 row in set (0.00 sec)

私のいれたバージョンは「5.1.41-3ubuntu12.7-log」でしたので、これを具体例に使っていきます。

特定のバージョンのdebパッケージのソースを取得する

これには二つの方法があります。

apt-get sourceコマンドによるを使用する方法

特定のバージョンは「apt-get source パッケージ名=バージョン」というコマンドでカレントディレクトリにソースを落とすことが可能です。しかし、現在、aptで落とせる対象になっているバージョンでないとこの方法は使えませんので、まず、それを確認します。ubuntuにおけるMySQLのパッケージはmysql-server-5.1です。

sudo apt-cache showpkg mysql-server-5.1
#...
Provides:
5.1.41-3ubuntu12.10 - virtual-mysql-server mysql-server
5.1.41-3ubuntu12.7 - virtual-mysql-server mysql-server
5.1.41-3ubuntu12 - virtual-mysql-server mysql-server

うじゃうじゃでできますが、上記の「Provides」とかにパッケージ名が載っていればオッケーです。以下でカレントディレクトリ配下にソースを落とせます。

sudo apt-get source mysql-server-5.1=5.1.41-3ubuntu12.7

以下のファイル、ディレクトリが作成されましたが、「mysql-dfsg-5.1-5.1.41」がソースのディレクトリです。

$ ls -l
合計 19848
drwxr-xr-x 33 root     4096 2011-06-04 14:57 mysql-dfsg-5.1-5.1.41
-rw-r--r--  1 root   341522 2010-11-12 00:07 mysql-dfsg-5.1_5.1.41-3ubuntu12.7.diff.gz
-rw-r--r--  1 root     2577 2010-11-12 00:07 mysql-dfsg-5.1_5.1.41-3ubuntu12.7.dsc
-rw-r--r--  1 root 19970033 2010-01-17 23:04 mysql-dfsg-5.1_5.1.41.orig.tar.gz

Webから落としてdpkg-sourceコマンドを使用する方法

残念ながら、「sudo apt-cache showpkg mysql-server-5.1」で自分のいれたバージョンが確認できない場合、ソースを作るパッケージをWebから落としてくる必要があります。

よくわかりませんが、https://launchpad.net/ubuntu/lucid/+source/mysql-dfsg-5.1の「Releases in Ubuntu」にリリースバージョンの一覧が載っているので自分のいれたバージョンをクリックします。私の場合は、https://launchpad.net/ubuntu/+source/mysql-dfsg-5.1/5.1.41-3ubuntu12.7に飛びます。この飛び先ページの「Downloads」にある三つのファイルを落としてきます

$ wget https://launchpad.net/ubuntu/+archive/primary/+files/mysql-dfsg-5.1_5.1.41.orig.tar.gz
$ wget https://launchpad.net/ubuntu/+archive/primary/+files/mysql-dfsg-5.1_5.1.41-3ubuntu12.7.diff.gz
$ wget https://launchpad.net/ubuntu/+archive/primary/+files/mysql-dfsg-5.1_5.1.41-3ubuntu12.7.dsc

よくわからないパッケージが三つ落ちてきましたがどうやってソースを出すのかよくわかりません。gzipで解凍するのか?と思いきやそんなことはありません。専用のコマンドがあるようです。以下を実行します。

dpkg-source -x mysql-dfsg-5.1_5.1.41-3ubuntu12.10.dsc

「mysql-dfsg-5.1-5.1.41」というディレクトリが作成されました。これが、MySQLのソースdirということになります。

まとめ

これで、MySQLでもApacheでも他のなんかでもソースをゲットすることが出来ます。個人的な、進捗としては、これでHandlerSocketを./configureするときのソースdirが指定できるようになりました。

Linux update_at : 2011-06-04T18:07:34
hirobanex.netの更新情報の取得
 RSSリーダーで購読する   
blog comments powered by Disqus