Scientific Linuxでfluentdが入らなかったので何とかした

Scientific Linuxだと以下のようになってfluentd(というかtd-agent)が入らなかった件についてです。

[vagrant@localhost ~]$ curl -L https://td-toolbelt.herokuapp.com/sh/install-redhat-td-agent2.sh | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
110   662  110   662    0     0    103      0  0:00:06  0:00:06 --:--:--  2805
This script requires superuser access to install rpm packages.
You will be prompted for your password by sudo.
Loaded plugins: security
http://packages.treasuredata.com/2/redhat/6.5/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: treasuredata. Please verify its path and try again
Loaded plugins: security
http://packages.treasuredata.com/2/redhat/6.5/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: treasuredata. Please verify its path and try again

実行されるshellスクリプトは以下のようになっています。

[vagrant@localhost ~]$ curl -L https://td-toolbelt.herokuapp.com/sh/install-redhat-td-agent2.sh
echo "This script requires superuser access to install rpm packages."
echo "You will be prompted for your password by sudo."

# clear any previous sudo permission
sudo -k

# run inside sudo
sudo sh <<SCRIPT

  # add GPG key
  rpm --import https://packages.treasuredata.com/GPG-KEY-td-agent

  # add treasure data repository to yum
  cat >/etc/yum.repos.d/td.repo <<'EOF';
[treasuredata]
name=TreasureData
baseurl=http://packages.treasuredata.com/2/redhat/\$releasever/\$basearch
gpgcheck=1
gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent
EOF

  # update your sources
  yum check-update

  # install the toolbelt
  yes | yum install -y td-agent

SCRIPT

エラーメッセージと比較すると http://packages.treasuredata.com/2/redhat/\$releasever/\$basearchの部分が http://packages.treasuredata.com/2/redhat/6.5/x86_64/repodata/repomd.xmlになっていて これが404 not foundになっているようです。

td agent install is giving problems. please help - Googleグループによると、$releasever6.5といったマイナーバージョン込みの値ではなく6のようなメジャーバージョンのみが値として入っていて欲しいようです。

yumの$releaseverについて - こしごぇ(B)を参考にしながら$releaseverを調べてみると

[vagrant@localhost ~]$ yum whatprovides redhat-release
Loaded plugins: security
sl-release-6.5-1.x86_64 : Scientific Linux release file
Repo        : sl
Matched from:
Other       : redhat-release



sl-release-6.6-1.x86_64 : Scientific Linux release file
Repo        : sl6x
Matched from:
Other       : redhat-release



sl-release-6.5-1.x86_64 : Scientific Linux release file
Repo        : installed
Matched from:
Other       : Provides-match: redhat-release



[vagrant@localhost ~]$ yum info sl-release
Loaded plugins: security
Installed Packages
Name        : sl-release
Arch        : x86_64
Version     : 6.5
Release     : 1
Size        : 47 k
Repo        : installed
From repo   : anaconda-ScientificLinux-201303180938.x86_64
Summary     : Scientific Linux release file
License     : GPLv2
Description : Scientific Linux release files

Available Packages
Name        : sl-release
Arch        : x86_64
Version     : 6.6
Release     : 1
Size        : 35 k
Repo        : sl6x
Summary     : Scientific Linux release file
License     : GPLv2
Description : Scientific Linux release files

とのことなので、versionは6.5のようです。

どうすればいいのか困ったのですが、以下のどれかで解決できました。

  • '--releasever'オプションを使って、sudo yum --releasever=6 install -y td-agent を実行する。
  • 6をハードコードしたtd.repoを用意して /etc/yum.repos.d/td.repoに配置する。その後、sudo yum install -y td-agentを実行する。

ということで無事に入りました。 redhatとかcentosだと多分普通に上手くいくような気がします(´・_・`)