LoginSignup
1
1

More than 5 years have passed since last update.

EC2(Amazon Linux)にSQL::Translatorをインストール

Posted at

概要

Amazon LinuにSQL::Translatorをyumでインストールするとバージョンが古く、
思わぬ不具合に遭遇したので別の方法でインストールする。

主にハマった問題

MySQLにおいてON UPDATEが解釈できずスカラーリファレンスに化けてしまう。
(この問題自体は 0.11019 2014-09-02 で解決済み)

+ DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- datetime on update SCALAR(0x3333b68) NULL DEFAULT CURRENT_TIMESTAMP

参考の修正履歴

yum で入れた場合のバージョン

$ sudo perl -MSQL::Translator -e 'print $SQL::Translator::VERSION'
0.11016
$ yum list | grep perl-SQL-Translator
perl-SQL-Translator.noarch           0.11016-1.2.amzn1             @amzn-main

環境

  • Amazon Linux AMI 2018.03.0.20180811 x86_64 HVM GP2
  • Amazon Linux AMI 2017.03.1.20170623 x86_64 HVM GP2

Amazon Linux 2 AMI 2.0.20181114 x86_64 HVM gp2だとyum listでperl-SQL-Translator上がってこない。

手順

開発関係のパッケージをインストール

$ sudo yum install gcc gcc-c++ perl perl-devel

$ sudo yum groupinstall "Development tools" でもいいかも?

yumでインストールしてしまっている場合は削除する

$ sudo yum remove perl-SQL-Translator.noarch

cpanmのインストール

$ curl -L https://cpanmin.us | perl - --sudo App::cpanminus

sudoでcpanmを使えるようにする

上記コマンドでインストールすると /usr/local/bin/ にスクリプトが配置される。
このままだとsudoのPATHが通っていないのでsecure_pathをいじるか、secure_pathが通っている場所にシンボリックリンクを貼る必要がある。

今回はsecure_pathを変更する。

$ sudo visudo
- Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
+ Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

SQL::Translatorのインストール

$ sudo cpanm SQL::Translator -n
$ sudo perl -MSQL::Translator -e 'print $SQL::Translator::VERSION'
0.11024
1
1
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
1
1