schedule2021-11-10

fluentdがInstall by RPM Package (Red Hat Linux)の手順でインストールできないとき

CentOS 7にfluentdをインストールしようと公式の手順を実行したらインストールできなかった。

Install by RPM Package (Red Hat Linux) - docs.fluentd.org

こちらの公式ドキュメントの手順に従ってrpm Repsitoryからtd-agent 4をインストールしてみる。

途中でシェルスクリプトを取得して実行するコマンドがあり、そこでエラーが出た。

# td-agent 4
# curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent4.sh | sh

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   849  100   849    0     0    904      0 --:--:-- --:--:-- --:--:--   908
==============================
 td-agent Installation Script
==============================
This script requires superuser access to install rpm packages.
You will be prompted for your password by sudo.
sh: line 8: sudo: command not found
sh: line 11: sudo: command not found

Installation completed. Happy Logging!

問題だったのはrootユーザで実行したためsudoコマンドが見つからないとエラーが出てインストールできなかった。

解決方法

rootユーザ以外で実行すればよい。以上。

ただ、rootユーザしかない環境だったのでrootで実行できるようにする。 (ユーザ作るの面倒)

curlで取得しているinstall-redhat-td-agent4.shsudoを取り除けばいい。

install-redhat-td-agent4.shの中身と書き換えた箇所。

install-redhat-td-agent4.sh
echo "=============================="
echo " td-agent Installation Script "
echo "=============================="
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
++ 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/4/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

# message
echo ""
echo "Installation completed. Happy Logging!"
echo ""

中身はyumにTreasureDataのリポジトリを追加する設定ファイルを作ってyum installを実行している内容。

wgetして上記のように書き換えて実行すると無事インストールできた。

# 書き換えたスクリプトを実行する
# sh install-redhat-td-agent4.sh
==============================
 td-agent Installation Script
==============================

...

Installed:
  td-agent.x86_64 0:4.2.0-1.el7

Dependency Installed:
  libedit.x86_64 0:3.0-12.20121213cvs.el7                          libyaml.x86_64 0:0.1.4-11.el7_0

Complete!

Installation completed. Happy Logging!