いろいろ忘れていたのでちゃちゃっと環境構築した際のメモ
tl;dr
- Vagrant - VirtualBox でCentOSをホストする
- nvmインストールして好きなnodeのバージョン入れる
- yarnはスクリプトでさくっと入れる、使うかはわからない
経緯
- ちょっとした事情から Nuxt.js を勉強しようと思った。
- 普段使うマシンがWindowsなのでUnix系をどこかに用意しようと思った。
- dockerで作ると何かでコケたときに中でいじったファイルの復帰がめんどい。
- GCE無料枠あるからvagrantとどちらがよいかなと考えたところ、以下からvagrantを選択
- インスタンス作る壊すならGCEが楽
- 容量的にはvagrantの方が余裕がある
- ローカルファイルの共有はvagrantの方が楽
- しばらく使ってなかったのでとりあえず最新化しよう ← ここからが記事の内容
環境
ターミナルは手抜きです。
そのままvi使うと日本語入力化けますが、その辺気になるならIP公開してtera termとかで。
ホストOS | Windows 7 |
仮想化 | VirtualBox 5.2.18 |
ゲストOS | CentOS7.2 |
ターミナル | PowerShell 6 |
手順
VirtualBox のインストール
公式サイト からダウンロードしてインストールする。
ここは前にインストール済だったものを使用したが、Chocolatey からのインストールがうまく行かなかった気がする。
(うろ覚え)
vagrant のインストール
Chocolatey から1コマンドでインストール。
ただしインストール後に大体再起動が必要になる。
# 新規にインストールする場合はこちらで
PS> choco install vagrant
# すでにインストール済で更新する場合はこちらで(筆者は旧バージョンが入っていたのでアップグレードした)
PS> choco upgrade vagrant
ベースボックスの登録
Vagrantbox.es に大量のベースボックスが登録されているので、お好きなものを登録。
筆者はcent6系をよく使っていたけど最近7系の方が記事多そうなのでそちらを新規登録しました。
PS> vagrant box add cent72 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'cent72' (v0) for provider:
box: Downloading: https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
box: Download redirected to host: github-production-release-asset-2e65be.s3.amazonaws.com
box: Progress: 100% (Rate: 1478k/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'cent72' (v0) for 'virtualbox'!
ゲストOS設定
ゲスト用のディレクトリ切ってinitでVagrantfileは手動で編集。
PS> cd D:\workspace\vagrant
PS> mkdir centos
PS> vagrant init
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
# Vagrantfileいじってから起動
PS> vagrant up
~~~~ 特にエラー出なかったので略 ~~~~
~~~~ GuestAdditionsがバージョン違ったのでアップデート走って一度restartかかった ~~~~
# 以下でログインできる
PS> vagrant ssh
[vagrant@localhost ~]$
いじった内容は以下の感じ
- baseボックス名の変更
- IP固定化
- (一応)public IPつけた
- syncフォルダの名称変更
- メモリ指定
- プロビジョニングに
yum update
追加
PS> diff (cat .\Vagrantfile.org) (cat .\Vagrantfile)
InputObject SideIndicator
----------- -------------
config.vm.box = "cent72" =>
config.vm.network "private_network", ip: "192.168.33.10" =>
config.vm.network "public_network" =>
config.vm.synced_folder "../share", "/share" =>
config.vm.provider "virtualbox" do |vb| =>
vb.memory = "1024" =>
vb.name = "nuxt" =>
end =>
config.disksize.size = '50GB' =>
config.vm.provision "shell", inline: <<-SHELL =>
yum update -y =>
SHELL =>
config.vm.box = "base" <=
# config.vm.network "private_network", ip: "192.168.33.10" <=
# config.vm.network "public_network" <=
# config.vm.synced_folder "../data", "/vagrant_data" <=
# config.vm.provider "virtualbox" do |vb| <=
# vb.memory = "1024" <=
# end <=
# config.vm.provision "shell", inline: <<-SHELL <=
# apt-get update <=
# apt-get install -y apache2 <=
# SHELL <=
nvmのインストール
ここから先はゲストOS上で作業。
nvm + Node.js + npmのインストール を参考にさせていただいてインストール。
インストール直後は環境変数が読まれていないので再ログインまたは .bashrc
の再読込で。
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash && . .bashrc
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12819 100 12819 0 0 55695 0 --:--:-- --:--:-- --:--:-- 55978
=> Downloading nvm as script to '/home/vagrant/.nvm'
=> Appending nvm source string to /home/vagrant/.bashrc
=> Appending bash_completion source string to /home/vagrant/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
$ nvm --version
0.33.11
nodeのインストール
LTS使えれば良いのでとりあえずそれでインストール
$ nvm install --lts && nvm use --lts && nvm list
Installing latest LTS version.
Downloading and installing node v8.12.0...
Downloading https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v8.12.0 (npm v6.4.1)
Creating default alias: default -> lts/* (-> v8.12.0)
Now using node v8.12.0 (npm v6.4.1)
-> v8.12.0
default -> lts/* (-> v8.12.0)
node -> stable (-> v8.12.0) (default)
stable -> 8.12 (-> v8.12.0) (default)
iojs -> N/A (default)
lts/* -> lts/carbon (-> v8.12.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.14.4 (-> N/A)
lts/carbon -> v8.12.0
$ node --version
v8.12.0
yarnのインストール
npmよりyarnの方が早いというのを以前見かけたので、githubの記事 を参考にインストール。
yarnだと何ができてできなくてはちゃんと把握していないけど、使えるときにさくっと動けばいいかなぐらいの感覚で。
インストール直後は環境変数が読まれていないので再ログインまたは .bashrc
の再読込で。
$ curl -o- -L https://yarnpkg.com/install.sh | bash && . .bashrc
~~~~ 出力省略 ~~~~
$ yarn --version
1.10.1
最後に
環境作るのはすぐできたけどメモ残すのに時間がかかったという。。(´・ω・`)
とりあえずコツコツ Nuxt 勉強していきます。