yum install Phusion Passenger ≒ yum -y remove ruby

Installing Passenger + Apache on Red Hat 7 / CentOS 7 (with RPM)
を何度やっても
# passenger-config validate-install
What would you like to validate?
Use <space> to select.
If the menu doesn’t display correctly, press ‘!’
(*) Passenger itself
> (*) Apache
————————————————————————-
Checking whether there are multiple Apache installations…
Only a single installation detected. This is good.
————————————————————————-
* Checking whether this Passenger install is in PATH… ?
* Checking whether there are no other Passenger installations… ?
* Checking whether Apache is installed… ?
* Checking whether the Passenger module is correctly configured in Apache… ?
Everything looks good. 🙂
とは出てくるものの
末尾の… ?のせいで、失敗したようにしか見えない。
# passenger-memory-stats
Version: 5.3.0
Date : 2018-05-12 03:27:00 +0900
———- Apache processes ———-
PID PPID VMSize Private Name
————————————–
13371 1 462.1 MB 0.3 MB /usr/sbin/httpd -DFOREGROUND
13418 13371 464.1 MB 0.2 MB /usr/sbin/httpd -DFOREGROUND
13419 13371 464.1 MB 0.2 MB /usr/sbin/httpd -DFOREGROUND
13420 13371 464.1 MB 0.2 MB /usr/sbin/httpd -DFOREGROUND
13421 13371 464.1 MB 0.2 MB /usr/sbin/httpd -DFOREGROUND
13422 13371 464.1 MB 0.2 MB /usr/sbin/httpd -DFOREGROUND
### Processes: 6
### Total private dirty RSS: 1.26 MB
——– Nginx processes ——–
### Processes: 0
### Total private dirty RSS: 0.00 MB
—– Passenger processes —–
PID VMSize Private Name
——————————-
13399 354.7 MB 1.9 MB Passenger watchdog
13402 858.4 MB 3.8 MB Passenger core
### Processes: 2
### Total private dirty RSS: 5.69 MB
も、うまくいっているようにも見えるし、
# rails new sample
-bash: rails: コマンドが見つかりません
となるので、騙されている様にしか観えない。
ま、Phusion の無いpassengerのみでは仕方がないか・・・

このサイトを探してみたが、
Phusion passengerで作ったサンプルはあるものの
Phusion passengerをどうインストするのか判らなかった。
 
多分、どこかの説明を偶然見つけるしかないのだろう。
 

更にぐぐってみると・・・

Ruby のインストール方法の選択肢

を見つけた。
概要
本稿では CentOS や RedHat に Ruby をインストールする方法について解説します。 検索エンジンで「Ruby インストール」などのキーワードで検索してみると様々な導入方法が検索結果に現れて、「いったいどの方法が良いのか?」と分からなくなってしまった人もいると思います(筆者のことです)。 Ruby を CentOS や RedHat をインストールする方法は、次のようにいくつかあります。

  1. ソースコードをコンパイルしてインストールする方法
  2. yumでインストールする方法
  3. RVM (Ruby Version Manager) を利用する方法
  4. rbenv + ruby-build を利用する方法

らしい。
しかし、
yum は RedHat 系 Linux におけるパッケージ管理機能です。 パッケージの依存関係を解決してくれて、パッケージのインストール・バージョンアップ・削除がとても簡単に行えます。 しかし yum で最新の Ruby が利用できるかというと、そうではありません。
2015年12月現在、Ruby の最新の安定バージョンは 2.2.3 ですが、例えば CentOS 6 の yum のリポジトリを覗いてみると 1.8.7-374 ベースの Ruby が配布されていますし、CentOS 7 だと 2.0.0.598 が配布されていることがわかります。 yum パッケージの場合、OSディストリビューターが最新のバージョンの Ruby を提供してくれるまで待たないといけませんので、最新の Ruby を使えないことがデメリットとなります。
と匙を投げていた。
※2018/5/12現在は、ruby.x86_64 0:2.0.0.648-33.el7_4
さらにググってみると
passengerのインストールで毎回つまづくのでいい加減にメモする
という記事に出会う。タイトル名は痛々しい限りだが、こう云う記事はとても頼りになる。
でも、# rbenv rehash しないとPATHが通らない。
/usr/binの下にpassengerも鎮座してるにもかかわらず、
passenger-configが
頑なにPATHが通っていない「?」と表示するし
Apacheのインスト先が不明(?)とメッセージが表示されたりするので、
rubyのgemダケを使って大方のパッケージをインストする以外に真面な方法は無いようだ。
しかも、インストールに失敗した後に
gemとyumのインストに対するスタンスの違いだと判ったりすると・・・
yum -y remove aaaa bbbb cccc dddd eeeee fffff
して・・・泣く泣く
gem aaaa bbbb cccc dddd eeeee fffff
と打つのは
誰でも
鬱になるんじゃない?
しかも、不意のyum updateで、いつ動かない?というフリダシに戻されないとも限らない!
いくらrbenvでバージョンが変えられても、些細なyum updateで、いくつか(または全て)のアプリがパァーになったりしないとも限らない。

そんなクソったれの相手をするのは嫌なので、ボクも素直に匙を投げる(レースを外す=yum -y remove ruby)ことにしました。
 
触らぬRubyなら祟り無し。
でも主原因はpassengerというパッケージ管理ツール。
JBOSSとApacheの様に直接Rubyアプリを起動して適当なポートでlistenしつつApacheからクライアントの要求を転送してもらった方が無難だと思う。
だがそれではpasenngerの出番が全く無いので、
無理やりpasenngerが割り込んで、可愛い絵と無限ループのページで訳が解らない状況を作り、
だからこそ、パッケージの管理はpasenngerにお任せください!
pasenngerの専門家がパッケージを作りますのでご安心を!
という流れに見えてくる。
今なら、JavaScriptですらRubyみたいなことができるし・・・
module.somcrypt.soになって世界のあちこちでエラーが垂れ流しになった時の様に・・・
時節が何とかしてくれるだろう。(笑
それまでは、RH系LinuxにRubyを入れないことが肝心だね。
とりあえず、ソースを根っこからpublicなパスに配置し、しかも0777属性にしないピクリともしないサンプルだったから
passengerのせいで、気分はsendmailのconfをにらめっこしている気分になってしまったけど、水に流そう。

メデタシメデタシ。




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA