Windows7でMastodonの開発環境を作成した
@abcangさんの『Mastodonの開発環境の構築まとめ』( https://qiita.com/abcang/items/8075ecd20be66a5659ec ) を参考にしましたが、自分の環境だと止まることがいくつかありました。そのため、おもに実行手順になりますが、まとめておきます。
概要
事前準備していたもの(説明が省略気味)
- VirtualBoxのインストール
- Mastodonソース類の用意
今回実行したこと
-
PowerShellのアップグレード
-
Vagrantのインストール
- Vagrantプラグインのインストール
-
hostsの権限設定
-
共有フォルダ設定
- Vagrantfileの編集
- シンボリックリンク許可設定
-
起動!
環境(ソフトウェアバージョン)
- Windows7 SP1 64bit
- Oracle VM VirtualBox 5.2.18
- Vagrant 2.1.5
- Mastodon v2.5.1
構成手順
VirtualBox インストール
VirtualBoxのサイト( https://www.virtualbox.org/ ) からダウンロード、インストールを行っておきます。
Mastodonソース類の準備
公式リポジトリはこちら。 ( https://github.com/tootsuite/mastodon )
Gitクライアントをいれて、 git checkout [開発対象ブランチ]
をしておくといいかもしれません。
例としては、Git Bashを使い、
$ git clone https://github.com/tootsuite/mastodon.git dev
$ cd dev
などとしておくといいと思います。自分用にforkしてある場合はそちらをclone先にしておくといいと思います。
PowerShellのアップグレード
@nobb_heroさんの『Vagrant up から進まない!?』( https://qiita.com/nobb_hero/items/3422b37ba2e9e3299680 )を参考にしました。
WMF 5.1 のインストールと構成 | Microsoft Docs( https://docs.microsoft.com/ja-jp/powershell/wmf/5.1/install-configure )より、Windows7 SP1 x64(32bit版の場合はx86)をダウンロードし、解凍します。
PowerShellを管理者権限で実行し、(64bitの場合、間違って(x86)を選択しないようにし)
> cd 解凍したディレクトリ
> .\Install-WMF5.1.ps1
とします。必要に応じて再起動します。
Vagrantのインストール
VagrantのDownloadサイト( https://www.vagrantup.com/downloads.html )より、Windows版をダウンロードし、msiを実行します。
Vagrant Pluginのインストール(任意)
必須のプラグインはないみたいですが、私の場合は、
hostsファイルの変更をするvagrant-hostsupdater
と、
VBoxGuestAdditionsのバージョン合わせをしてくれるvagrant-
をいれました。
vagrant-winnfsd
もいれましたが、やたらと止まってしまうので今回は抜いておきました。
> vagrant plugin install vagrant-hostsupdater vagrant-vbguest
hostsの権限設定
最終的に関係なかったかもしれませんが、Vagrantを利用するユーザでhostsファイルを変更できるようにしておきます。vagrant-hostsupdater
を利用しない場合は不要だと思います。
-
C:\Windows\System32\drivers\etc
にあるhosts
ファイルを右クリック、プロパティ
を開きます。 -
セキュリティ
タブのグループ名またはユーザ名
の実行ユーザを選択し、編集
から、フル コントロール
を許可にします。
共有フォルダ設定
『Windowsホストのvagrantでmastodonを動かす』( https://argrath.ub32.org/annex/2017/04/24-01.html )にもある通り、シンボリックリンクが作成できないと動かないみたいなので、作成できるようにします。(記事だと別の方法で回避していたみたいですが、バージョンが違ってこわいので、シンボリックリンク貼れるようにする設定をします)
VirtualBoxの共有フォルダ設定で、VM内にMastodonのソース類を渡していますが、
ホストであるWindowsのファイルシステム上でシンボリックリンクを作成できるようにするには、
いくつか設定が必要になります。
また、mountのオプションも変更しないとエラーが出たので、その設定も行っておきます。(原因はわかっていない)
@tanakachangさんの『Windows 7環境でのVirtualBox(vagrant)の共有フォルダーのトラブル2つ』( https://qiita.com/tanakachang/items/11dab5309b64b4f64119 )を参考にしました。
Vagrantfile編集
- mountオプションの変更
- シンボリックリンクを貼れるように
します。適当に略してあるので、該当部分を探して変更してください。
(略)
config.vm.provider :virtualbox do |vb|
vb.name = "mastodon"
vb.customize ["modifyvm", :id, "--memory", "2048"]
(中略)
vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
# シンボリックリンク設定を追記
vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
end
(中略)
if config.vm.networks.any? { |type, options| type == :private_network }
# 元の設定はコメントアウトして残してあります。
# config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['rw', 'vers=3', 'tcp']
config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['dmode=777', 'fmode=777']
else
config.vm.synced_folder ".", "/vagrant"
end
設定は以上です。
起動
vagrant up
で起動し、Mastodon自体はvagrant ssh -c "cd /vagrant && foreman start"
で起動できます。
> vagrant up
> vagrant ssh -c "cd /vagrant && foreman start"