CentOS 7にpyenvでPythonをインストール

CentOS 7 には標準で Python がインストールされている。ただちょっと古い。それに pip もない。

[takatoh@aybesea ~]$ python -V
Python 2.7.5
[takatoh@aybesea ~]$ pip list
bash: pip: コマンドが見つかりませんでした...

なので、pyenv を使って Python をインストールすることにした。これはひと月程前にも Ubuntu でやってるから大丈夫だろう。

環境

  • CentOS 7.4.1708 (Core)
  • システムの Python: 2.7.5

参考ページ

依存ライブラリのインストール

これ、なにが必要なんだかいつもよく分からないんだけど、とりあえず参考ページの通りにしてみる。

[takatoh@aybesea ~]$ sudo yum -y install zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel

pyenvとpyenv-virtualenvのインストール

[takatoh@aybesea ~]$ git clone https://github.com/yyuu/pyenv.git .pyenv
[takatoh@aybesea ~]$ git clone https://github.com/yyuu/pyenv-virtualenv.git .pyenv/plugins/pyenv-virtualenv

.bash_profile に追記。

export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

.bash_profile を読み直し。

[takatoh@aybesea ~]$ source .bash_profile

Pythonのインストール

2.7.14 と 3.6.4 をインストール。

[takatoh@aybesea ~]$ pyenv install 2.7.14
Downloading Python-2.7.14.tar.xz...
-> https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz
Installing Python-2.7.14...
Installed Python-2.7.14 to /home/takatoh/.pyenv/versions/2.7.14

[takatoh@aybesea ~]$ pyenv install 3.6.4
Downloading Python-3.6.4.tar.xz...
-> https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
Installing Python-3.6.4...
Installed Python-3.6.4 to /home/takatoh/.pyenv/versions/3.6.4

バージョンの切り替え

[takatoh@aybesea ~]$ pyenv versions
* system (set by /home/takatoh/.pyenv/version)
  2.7.14
  3.6.4

とりあえず、常用には 2.7.14。

[takatoh@aybesea ~]$ pyenv global 2.7.14
[takatoh@aybesea ~]$ pyenv versions
  system
* 2.7.14 (set by /home/takatoh/.pyenv/version)
  3.6.4

OK。当面これで運用してみる。

rbenvを使ってRubyをインストールする(ユーザーローカル)→成功

ユーザーローカルにインストールする。まずは rbenv のインストール。

[takatoh@aybesea ~]$ git clone https://github.com/sstephenson/rbenv.git .rbenv

.bash_profile につぎの行を追記。

export RBENV_ROOT=$HOME/.rbenv
export PATH=$RBENV_ROOT/bin:$PATH
eval "$(rbenv init -)"

設定を読み直す。

[takatoh@aybesea ~]$ source .bash_profile

ruby-build をインストール。

[takatoh@aybesea ~]$ git clone git://github.com/sstephenson/ruby-build.git .rbenv/plugins/ruby-build
[takatoh@aybesea ~]$ cd .rbenv/plugins/ruby-build
[takatoh@aybesea ruby-build]$ sudo ./install.sh

これでインストールはOKのはず。

[takatoh@aybesea ~]$ rbenv -v
rbenv 1.1.1-28-gb943955

さあ、Ruby 2.5.0 をインストールしよう。

[takatoh@aybesea ~]$ rbenv install 2.5.0
Downloading ruby-2.5.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.bz2
Installing ruby-2.5.0...
Installed ruby-2.5.0 to /home/takatoh/.rbenv/versions/2.5.0

rbenv rehash を実行。

[takatoh@aybesea ~]$ rbenv rehash

グローバルに使用する Ruby を指定。

[takatoh@aybesea ~]$ rbenv global 2.5.0

インストールできているか確認。

[takatoh@aybesea ~]$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
[takatoh@aybesea ~]$ which ruby
~/.rbenv/shims/ruby
[takatoh@aybesea ~]$ which gem
~/.rbenv/shims/gem

参考ページ

cf. ruby 2.3.1をCentOS7に導入する。 – Qiita

rbenvを使ってRubyをインストールする(システムワイド)→失敗

CentOS 7 には、標準では Ruby がインストールされてない。なのでインストールするんだけど、今回はせっかくなので rbenv を使ってみることにした。それもユーザー単位ではなくシステムワイドにインストールする。

環境

[takatoh@aybesea ~]$ cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)

準備

予め依存するパッケージをインストールしておく。git はインストール済み。

[takatoh@aybesea ~]$ sudo yum install gcc gcc-c++ openssl-devel readline-devel

rbenvのインストールと設定

インストール先を /usr/local/rbenv にする。

[takatoh@aybesea ~]$ sudo git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv

環境変数等の設定。/etc/profile.d の下に rbenv.sh を作って、つぎのようにする。

export RBENV_ROOT="/usr/local/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init --no-rehash -)"

rbenv.sh を反映する。

[takatoh@aybesea ~]$ source /etc/profile.d/rbenv.sh
mkdir: ディレクトリ `/usr/local/rbenv/shims' を作成できません: 許可がありません
mkdir: ディレクトリ `/usr/local/rbenv/versions' を作成できません: 許可がありません
[takatoh@aybesea ~]$ sudo source /etc/profile.d/rbenv.sh
sudo: source: コマンドが見つかりません

あれ、困った。ログインし直してみよう。
ログインし直した結果、端末に次のように表示された。

mkdir: ディレクトリ `/usr/local/rbenv/shims' を作成できません: 許可がありません
mkdir: ディレクトリ `/usr/local/rbenv/versions' を作成できません: 許可がありません

先にディレクトリを作ってやったらどうだろう。

[takatoh@aybesea ~]$ sudo mkdir /usr/local/rbenv/shims
[sudo] takatoh のパスワード:
[takatoh@aybesea ~]$ sudo mkdir /usr/local/rbenv/versions
[takatoh@aybesea ~]$ source /etc/profile.d/rbenv.sh

ruby-buildのインストール

[takatoh@aybesea ~]$ sudo mkdir /usr/local/rbenv/plugins
[takatoh@aybesea ~]$ cd /usr/local/rbenv/plugins
[takatoh@aybesea plugins]$ sudo git clone https://github.com/sstephenson/ruby-build.git ruby-build

install.sh を実行。

[takatoh@aybesea plugins]$ cd ruby-build
[takatoh@aybesea ruby-build]$ sudo ./install.sh

Rubyのインストール

さて、これで準備は整ったはずだ。Ruby をインストールしよう。インストールできる Ruby のバージョンは rbenv install --list コマンドで見ることができる。

[takatoh@aybesea ~]$ rbenv install --list

せっかくなので、リリースされたばかりの 2.5.0 をインストールしよう。

[takatoh@aybesea ~]$ rbenv install 2.5.0
Downloading ruby-2.5.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.bz2
Installing ruby-2.5.0...
mkdir: ディレクトリ `/usr/local/rbenv/versions/2.5.0' を作成できません: 許可がありません

BUILD FAILED (CentOS Linux 7 using ruby-build 20171226)

Inspect or clean up the working tree at /tmp/ruby-build.20171231060736.25143
Results logged to /tmp/ruby-build.20171231060736.25143.log

Last 10 log lines:
/tmp/ruby-build.20171231060736.25143 ~
/tmp/ruby-build.20171231060736.25143/ruby-2.5.0 /tmp/ruby-build.20171231060736.25143 ~
[takatoh@aybesea ~]$ sudo rbenv install 2.5.0
[sudo] takatoh のパスワード:
sudo: rbenv: コマンドが見つかりません

あれ、ダメか。さっきの設定が root ユーザーには読み込まれてない様だ。かと言って sudo しないと書き込めないし。フルパスで指定してみるか。

[takatoh@aybesea ~]$ sudo /usr/local/rbenv/bin/rbenv install 2.5.0
rbenv: no such command `install'

ダメかーー!
設定がうまくいってないのかな。参考ページの通りにやってるんだけど。
あきらめてユーザーローカルに変更するか。

参考ページ

cf. CentOS7へのrbenvを用いたrubyの導入(システムワイド版) – Typo