【vagrant】CentOS7.3とPython3.6をインストールする

目的

Windowsで開発してもいいことないのでvagrantにcentos7.3のboxを入れてPython3.6もインストールして環境構築する。

2018-06-23 box追加のときの作業が抜けていたので追加、ついでにエラー対応方法も追加

作業環境

Windows8.1
Vagrant 2.0.2
VirtualBox 5.2.6

参考URL

https://app.vagrantup.com/bento/boxes/centos-7.3
https://qiita.com/ozawan/items/160728f7c6b10c73b97e
https://weblabo.oscasierra.net/python3-centos7-yum-install/
https://qiita.com/H-A-L/items/5d5a2ef73be8d140bdf3

実構築

Vagrantとvirtualboxのインストール
CentoOS7.3を起動

Vagrantとvirtualboxのインストール

VirtualBoxは仮想マシンを作るソフト
Vgrantは仮想マシンが簡単に作れるソフト

●Vagrant
https://www.vagrantup.com/

●Virtualbox
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp

それぞれファイルをダウンロードしてインストールする

CentoOS7のインストール

スタートメニューを右クリックしてコマンドプロントを選択

コマンドプロンプトを開いたら下記を入力
boxを追加する(やらないとあとで使用するinitコマンドでエラーが出る)
bento/centos-7.3などのbento系boxはシェフ社が用意してるboxファイルらしいです。

vagrant box add bento/centos-7.3

下記のように出るので「2」と入力してEnter

==> box: Loading metadata for box 'bento/centos-7.3'
    box: URL: https://vagrantcloud.com/bento/centos-7.3
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) parallels
2) virtualbox
3) vmware_desktop

Enter your choice:

このときテキストが出ず、下記のようなエラーが出る場合、VirtulBoxやVagrantのバージョンが低い場合があるのでバージョンアップする。
といっても公式サイトからVirtulBoxとVagrantをDLしてきてインストールするだけでいいはず。
(windowsの場合はアンインストールせずに再インストールするだけでバージョンアップできた)

The box 'bento/centos-7.3' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Atlas, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:

URL: ["https://atlas.hashicorp.com/bento/centos-7.3"]
Error: The requested URL returned error: 404 Not Found

boxが追加できたらcdコマンドで仮想マシンを置きたいフォルダに移動
(デスクトップとかにmy_centos73_dirとかフォルダ作ってパスをコピーする)
下記のようにmkdir とかでフォルダ作ってもいい

mkdir my_centos73_dir
cd my_centos73_dir

さきほど追加したboxを初期化する

vagrant init bento/centos-7.3

初期化するとmy_centos73_dirフォルダ内にvagrantfileができるので、これをテキストエディタで開き、下記行の先頭の#マークを外して保存。
このipが仮想マシンのipになる。

  # config.vm.network "private_network", ip: "192.168.33.10"

同じコマンドプロンプトで下記を打って仮想マシン起動

vagrant up

このとき下記エラーが出たらPowerShellのバージョンが低いかららしいのでおとなしくバージョンをあげよう(Windows7とかで起きる)。
参考:PowerShellのバージョンアップをする

The version of powershell currently installed on this host is less than
the required minimum version. Please upgrade the installed version of
powershell to the minimum required version and run the command again.

  Installed version: 2

  Minimum required version: 3

Winscpとか適当なFTPソフトで下記みたいに入力して保存、ログインをクリックすればサーバーに入れるはず。
パスワードはvagrantのboxはだいたい『vagrant』で統一されているのでそれを入力する

下記の画像のようにフィンガープリントがどうのこうのとでてくるので「はい」押す

以下はsshで作業するのでsshで

とりあえずsuと打ってroot(なんでもできる管理者権限、全てのデータを消せるので本来は危ない)になってみる
rootパスワードを聞かれるのでvagrantを入力する。
vagrantでは一応vagrantもrootもパスワードはvagrantに初期設定してあるらしい

exitとうつとrootをやめて元のvagrantユーザーに戻れる

exit

システムをアップデートする、とても時間がかかる

sudo yum update

Pythonをインストールする

今まで一度もインストールした記憶がないので参考サイトに従って作業する
最新のソフトウェアをそろえておいてくれるリポジトリ(ソフトウェア置き場みたいなもの)らしい

sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm

今(2018-04-27)は3.6系が最新らしいので検索

sudo yum search python36

よく使うパッケージもインストールする

sudo yum install -y python36u python36u-libs python36u-devel python36u-pip

バージョンの確認

python3.6 -V
Python 3.6.5

インストールされた場所の確認

which python3.6
/usr/bin/python3.6

ちなみにこのままpythonと打ってもpython2で実行される。
なのでエイリアス(別名)を設定してpython3実行時にpython3.6とかいれなくてもいいようにする

sudo ln -s /bin/python3.6 /bin/python3

これでpython3と打つとpython3がコマンドラインで実行できるモードになる

python3
Python 3.6.5 (default, Apr 10 2018, 17:08:37)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Python 3.6.5と出ているので大丈夫そう

下記でこのモードを終わらせる

>>> exit()

一応python2も動くか確認する、Python 2.7.5て出ているので大丈夫そう

python
Python 2.7.5 (default, Aug  4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

ファイルに書いたpythonを動かす場合は、バージョン別でそれぞれ下記のように書く
/home/vagrant/にあるtest.pyを実行する場合

python /home/vagrant/test.py
python3 /home/vagrant/test.py

感想

インストール直後にsshがinactiveになってインストールしたpythonが消えたのが気がかりだけど理由は最後までわからなかった…。
→ディレクトリ名とip変更したらなんか解決した
https://noarts.net/archives/486