新潟の空は今日も灰色

技術ネタ中心にいきたいけど、そんなにネタは持ってません。

CentOS 6.xとAmazon Linux(2014.09.1)でyumの戻り値が違う件

状況説明

たとえば、こういうコマンドを打った場合。

  • ちゃんと yum コマンドが発行出来る(権限が足りてる)
  • インストールするパッケージは、パッケージ名では無くURLでの指定である
    • rpm -Uvh http://hoge/fuga.rpm と同義のコマンド
    • レポジトリ登録のときに***-release.2.3.x86_64.rpm みたいなのを最初にインストールすることは結構ありますよね。

とりあえずこの状況では、最初は対象のパッケージはインストールされていない前提で、1回目のコマンド発行でインストールされ、もう一度同じコマンドを実行したときのお話です。

$ sudo yum -y install http://hoge/fuga.rpm
$ sudo yum -y install http://hoge/fuga.rpm # 上と同じコマンド
$ echo $?

CentOS6とAmazon Linuxで値が違います。

結果

CentOS6の場合

0

Amazon Linuxの場合

1

なにが困るか

たとえば、Ansibleとかを使っていると、Amazon Linuxの場合は、- ignore_errors: yes が必須になります。気をつけましょう。

ちょっとつらい…。