XSERVERでRoR動かしたい!

せっかくXserver持ってるので、RoR動かしたくなるが、失敗した記事ばかり。何とかできないかなと思ってやったら、なんとかできた。その3まであるよ。試行錯誤しているので割と長い。

Rbenvのインストール

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

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

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

source ~/.bash_profile

rbenv --version

Rubyのインストール

  • Rbenvは入った。
  • これでRubyが入れられる

rbenv install 2.5.1

エラー。

ERROR: Ruby install aborted due to missing extensions
Try running `yum install -y openssl-devel readline-devel` to fetch missing dependencies.

yum installはできない。こまった。ソースから入れるか。

その2でRubyをコンパイルして入れてます。Rbenv結局使わない。

OpenSSL-develのインストール

mkdir sysad

cd sysad

wget https://www.openssl.org/source/openssl-1.1.0i.tar.gz

tar xzvf openssl-1.1.0i.tar.gz

cd openssl-1.1.0i

./config --prefix=/home/サーバー名/opt/openssl --openssldir=/home/サーバー名/opt/openssl shared

make

make install

echo 'export PATH="$HOME/opt/openssl/bin:$PATH"' >> ~/.bash_profile

openssl version

// => openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

libssl.soがないと怒られた。

https://qiita.com/DQNEO/items/3613cc1d87c01121a9e2

configのパラメータを変えて再試行してみる

./config --prefix=/home/ユーザー名/opt/openssl --openssldir=/home/ユーザー名/opt/openssl shared zlib

(zlibがふえた)

make

make install

だめだった。libssl.soはあるんだけど、1.0.2kとかのなのでこのopensslには使えない。とはいえ、1.1.0のlibssl.soはない。こまった。

しかたがない。

make clean

cd ../

rm -rf openssl-1.1.0i

rm openssl-1.1.0i.tar.gz

1.0.2kを入れます。(いみあるのか?)

wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz

tar xzvf openssl-1.0.2k.tar.gz

cd openssl-1.0.2k

./config --prefix=/home/ユーザー名/opt/openssl --openssldir=/home/ユーザー名/opt/openssl shared zlib

make

make install

openssl version

// => OpenSSL 1.0.2k 26 Jan 2017

とりあえずはいった。

Readline-develのインストール

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/952rpmbuild.html

http://d.hatena.ne.jp/arupaka-_-arupaka/20121006/1349517441

一般ユーザーでもrpm使えるってマ?

やってみよう。

mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

vi ~/.rpmmacros

i

%_topdir                /home/ユーザー名/rpm
%_builddir              %{_topdir}/BUILD
%_rpmdir                %{_topdir}/RPMS
%_sourcedir             %{_topdir}/SOURCES
%_specdir               %{_topdir}/SPECS
%_srcrpmdir             %{_topdir}/SRPMS

:q

cd ~/sysad

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/readline-devel-6.2-10.el7.x86_64.rpm

rpm -ivh readline-devel-6.2-10.el7.x86_64.rpm

// => エラー: 依存性の欠如:
ncurses-devel は readline-devel-6.2-10.el7.x86_64 に必要とされています

ncurses-develのインストール

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm

rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm

// => エラー: トランザクション ロックを(/var/lib/rpm/.rpm.lock 上に)作成できません。(許可がありません)

は?むりやんけ

ソースファイルを持ってこなあかんことに気づいた。ちゃんとよんでなかった。

けっきょくいっしょか。

wget https://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz

tar xzvf ncurses-5.9.tar.gz

cd ncurses-5.9

./configure --prefix=/home/ユーザー名/opt

make

make install

はいった。

Readline-develのインストール

cd ../

wget https://ftp.gnu.org/pub/gnu/readline/readline-6.2.tar.gz

tar xzvf readline-6.2.tar.gz

cd readline-6.2

./configure --prefix=/home/ユーザー名/opt

make && make install

はいった。

rbenv install

相変わらずrbenv installはできない。リンカにインストールしたもののパスを教えてあげないといけない。

ところで、LD_LIBRARY_PATH環境変数を見てみると、/home/ユーザー名/libがあるではないか。もしかしてここにシンボリックリンク張ればいけるのでは?

ln -s /home/ユーザー名/opt/lib ~/lib

rbenv install 2.5.1

だめだ。

gccが古いのでアップグレードしてみる。

あたらしいgccのインストール

gcc-8.2.0をいれようとしたらもろもろが古いといわれた。

GCCアプデあきらめたけどgemのinstallの時にgmpいるぽい。

そのほかももしかしたらいるかもしれない。足りなかったら入れて

gmp-6.1.2

wget https://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.xz

tar xJvf gmp-6.1.2.tar.xz

xzはJ。

configure, make, make install

mpfr-4.0.1

wget https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.gz

解凍。

gmp関連がないっておこられるのでconfigureに追加でオプションを付けないといけない。

./configure --prefix=/home/ユーザー名/opt --with-gmp-include=/home/ユーザー名/opt/include/ --with-gmp-lib=/home/ユーザー名/opt/lib

make, make install

警告がいっぱいだけど大丈夫かなぁ…

mpc-1.1.0

wget https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz

解凍

これもgmpいるみたい

./configure --prefix=/home/ユーザー名/opt --with-gmp-include=/home/ユーザー名/opt/include/ --with-gmp-lib=/home/ユーザー名/opt/lib

make, make install

依存がインストールできたのでgccのところへ移動

gcc-8.2.0

./configure --prefix=/home/ユーザー名/opt --with-gmp-include=/home/ユーザー名/opt/include/ --with-gmp-lib=/home/ユーザー名/opt/lib --with-mpfr-include=/home/ユーザー名/opt/include/ --with-mpfr-lib=/home/ユーザー名/opt/lib --with-mpc-include=/home/ユーザー名/opt/include/ --with-mpc-lib=/home/ユーザー名/opt/lib --disable-multilib

依存の場所を指定。最後のdisable-は32bitを無効にする。エラーになったし、とりあえず64bitだけでいいやろ。

make, make install

じかんかかりそう。とりあえずこれで投稿します

GCCアプデはあきらめました。

つぎ! https://www.nijitei.com/it/run_ruby_on_rails_on_xserver_2/