この記事はLinuxでのジョークプログラムとして割と有名で、Twitterのシェル芸Botでも一時期使われてたCureutilsをCentOS7にインストールする備忘録記事です。
CentOS7ではPython2.7が入っており、なにもしてないとインストール時にエラーを吐くのでrbenvを使ったバージョン変更も解説します。
どうでもいいけどCureutilsのロゴ良すぎるよね。(CureutilsのGitHubのREADME.mdで見れます)

注意事項

この記事に記載されている内容を実行し、発生したいかなる問題について当サイト管理者は一切責任を負いません。自己責任でお願いします。

目次

環境

  • 実施鯖: Comet
  • CentOS 7.6.1810
  • gemバージョン: 2.6.14
  • Cureutilsバージョン: 1.2.0
  • rbenvバージョン: 1.1.2-2-g4e92322

やり方

必須パッケージをインストールする

もし以下に記載するパッケージがインストールされてないのであれば、yum等でインストールをしてください。

  • git
  • gcc
  • gcc-c++
  • openssl-devel
  • readline-devel

rbenvをインストールする

まずは、CureutilsをインストールするためにRubyのバージョンを一時的に変更したいので、rbenvというものをインストールします。

rbenvのファイル群をダウンロード(クローン)する

ホームディレクトリの直下に.rbenvというディレクトリを作り、そこにrbenvのファイルをダウンロード(Gitでクローン)します。

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

ちなみに、sstephenson/rbenvで解説している記事がありますが、執筆時現在アクセスするとrbenv/rbenvにリダイレクト(転送)されますので、どっちでも構いませんがまあrbenv/rbenvで良いと思います。

.bash_profileに環境変数(PATH)にrbenvのパスを追記させる

SSHなどでの接続時など(bash起動時)にロードされる.bash_profileというのがあります。
ここに、環境変数(PATH)にrbenvなパスを追記させるコードを書き、SSHなどでの接続後にrbenvが使えるようにします。
なお、.bash_profileはユーザー毎なので、ここで説明しているようにrbenvをインストールしても他のユーザー(ホームディレクトリが異なるユーザー)は利用できないことに注意してください。

以下の2つのコマンドを実行し、.bash_profileに書き込みます。
1つめのコマンドは環境変数への追記コマンド、2つめのコマンドはrbenvの初期処理(init)をさせるコマンドを書き込むコマンドです。言葉が回りくどっ

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

実行し終えたら、SSHなどを接続し直すか以下のコマンドを実行して.bash_profileを再度読み込みます。

source ~/.bash_profile

rbenvが使用できるか確認

rbenv -vを実行し、rbenvのバージョンが表示されるかどうかを確認しましょう。
コマンドが見つかりませんcommand not foundなどが出る場合はインストールに失敗しています。ここまでの作業でエラーなどが発生していないかどうかを確認してみてください。

rbenvでインストールするために、ruby-buildプラグインを導入する

実は、rbenvをインストールしただけではrbenvを使って新規に別のバージョンのrubyをインストールをすることはできません。(rbenv installがない)
それをできるようにするために、ruby-buildというプラグインを導入します。
以下のコマンドを実行しましょう。

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

これを導入すると、rbenv installが使用できるようになります。

Ruby2.2.2以上をインストールする

CureutilsのREADME.mdにも以下のように記載があるとおり、インストールおよび実行にはRuby2.2.2以上が必要となります。

Requirements
ruby >= 2.2.2

なので、rbenvでRubyの最新版をインストールします。

rbenv install -lでインストール可能なrubyの一覧を表示できますが、TruffleRubyやらRubinius(rbx)やらも表示されて見にくいので、rbenv install -l | grep -G "^ 2\."とか使って2.x.x系だけ表示させるとかするのが楽かと。
執筆時には以下のように表示されました。

[#21 [email protected] 23:18:59 ~]$ rbenv install -l | grep -G "^  2\."
  2.0.0-dev
  2.0.0-preview1
  2.0.0-preview2
(略)
  2.6.0-preview1
  2.6.0-preview2
  2.6.0-preview3
  2.6.0-rc1
  2.6.0-rc2
  2.6.0
  2.6.1
  2.6.2
  2.6.3
  2.7.0-dev

2.7.0のdevが利用できますが、とりあえずここでは最終安定版である2.6.3を選びます。実施時の使用可能バージョンに応じてインストールするバージョンを選択してください。

インストールするには以下のコマンドを実行します。少し時間がかかりますので、お茶でも飲んで気長に待ちましょう。

rbenv install 2.6.3

Installed ruby-2.6.3などと出たら、インストール完了です。

実行するRubyのバージョンを指定する

一時的にRubyのバージョンを切り替えます。今回は「ローカル」として、実行中のディレクトリ以下でのみそのバージョンで実行されるようにします。
以下のコマンドを実行します。

rbenv local 2.6.3

コマンドを実行すると、実行したカレントディレクトリに.ruby-versionというファイルが生成されます。このファイルに選択したバージョンが入力されています。

バージョンに応じたコマンドの振り分けをさせる

rbenv rehashを実行すると、rubyコマンドやgemコマンドなどをバージョンごとに振り分けさせるそうです。たぶん。
なので、とりあえず実行しておきましょう。


とりあえず、ここまで作業をすればCureutilsをインストールする環境が出来上がります。

Cureutilsをインストールする

Rubyのバージョンを変更したところで、やっとCureutilsをインストールすることができます。
ここからは簡単です。以下のコマンドを実行しましょう。

gem install cureutils

cureコマンドが実行できるか確かめる

Cureutilsのインストールが出来たら、さっそくcureコマンドを使ってみましょう。
cureと実行すると、使用可能なコマンドの一覧が出力されます。
詳しい使い方はCureutilsのGitHubのREADME.mdをチェック。

Ruby2.1で作業をしようとすると…

[#30 [email protected] 22:53:11 ~]$ gem install cureutils
Fetching: thor-0.20.3.gem (100%)
Successfully installed thor-0.20.3
Fetching: concurrent-ruby-1.1.5.gem (100%)
Successfully installed concurrent-ruby-1.1.5
Fetching: i18n-1.6.0.gem (100%)
ERROR:  Error installing cureutils:
        i18n requires Ruby version >= 2.3.0.

と出る。なんかCureutilsのRequirements表記とズレてるけど、まあ最新版をインストールするので問題なし。

終わりに

私自身はプリキュア好きではないですが、一部の曲自体は好きです。(キラリ☆彡スタートィンクルプリキュア・パペピプ☆ロマンチック)
アニメは自分から見たことがありません。

まあ、プリキュアにドハマりしている人たちを貶したり人格否定とかをする気は全くありませんが、強要はダメだぞ!w

以上。

Categories: 備忘録