LoginSignup
10
10

More than 5 years have passed since last update.

itamae を使って CentOS6.5 に MySQL をインストールする時の注意

Last updated at Posted at 2015-04-14

結論

パッケージがインストール済みかのチェックにnot_ifアトリビュートを使います。

package 'http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm' do
  not_if 'rpm -q mysql-community-release-el6-5'
end

package 'mysql-community-server'
package 'mysql-community-devel'

解決した問題

package 'http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm'

では、インストール済みの判定に失敗します。
一度目の実行は成功します。
しかし、二回目以降の実行でエラーが出ます。

エラー内容

エラー時の実行メッセージを見ると

rpm -q http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

が実行されています。本来は、以下を実行して欲しいです。

rpm -q mysql-community-release-el6-5

packageリソースの実装

itamaeで使うpackageリソースはspecinfraというライブラリによって提供されています。

specinfra/package.rbの実装は

cmd = "rpm -q #{escape(package)}"

です。引数にurlを指定しているかは特に考慮していません。

対処方法

itamaeではリソースにアトリビュートを指定することができます。

ここではnot_ifアトリビュートを使います。
'rpm -q mysql-community-release-el6-5'が失敗した時だけ、インストールするように、以下の指定を行います。

package 'http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm' do
  not_if 'rpm -q mysql-community-release-el6-5'
end
10
10
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
10
10