Windows 10 Creators Update に Bash 環境を構築してみました

こんにちは,エンジニアの久保です。

先月開催された Microsoft Build 2017 では,Bash on Windows で,
これまでの Ubuntu のほかに,FedoraopenSuSEサポートが発表されました。
この機能は,2017 年秋にリリース予定の Windows 10 Fall Creators Update に含まれるようです。楽しみですね。

今回は,現在利用可能な Bash on Ubuntu on Windows について,Windows 10 Creators Update 環境で導入してみました。

環境

  • Windows 10 Pro 64 bit
    • バージョン:1703(Creators Update)
    • OSビルド:15063.0

手順

Windows を開発者モードに変更

まずは,Windows を開発者モードに変更します。

スタートメニュー→「設定」→「更新とセキュリティ」を選択し「開発者向け」タブを開きます。開いたら「開発者モード」を選択し,開発者モードを有効にします。

コントロールパネル—プログラム

Windows Subsystem for Linux のインストール

次に,Bash on Ubuntu を使うために,Windows Subsystem for Linux をインストールします。

コントロールパネルを開きます(スタートメニュー→「Windows システムツール」→「コントロールパネル」)。

続いて,「プログラム」の項目を選択し,「Windows の機能の有効化または無効化」を開きます。

コントロールパネル—プログラム

「Windows Subsystem for Linux (Beta)」にチェックを入れて,OKをクリック。

Windows の機能の有効化または無効化

インストールが完了したら再起動します。

Windows の機能

Bash on Ubuntu のインストール

Windows Subsystem for windows インストールが済んだので,Bash on Ubuntu の設定を進めていきます。

PowerShell を起動し,bash コマンドを実行します。この作業は,コマンドプロンプトでも大丈夫なのですが,今回は Creators Update でデフォルトのシェルとなった PowerShell を使ってみましょう :)

> bash

表示されたメッセージを確認し,yを入力します。

bashのインストール

展開が完了すると,ロケールの設定,ユーザとパスワードの設定が行われます。こちらもメッセージに沿って実行します。すべての設定が終わればインストール完了です。

bashのインストールが完了

続けて,Ubuntu のアップデートを行っておくと良いでしょう。

bash
$ sudo apt-get update
$ sudo apt-get upgrade

使ってみましょう

インストールが完了しましたので使ってみましょう。

起動

今回構築した,Bash 環境は,次の方法で起動できます。

  • PowerShell(あるいはコマンドプロンプト)を起動して,bashコマンドを実行
  • スタートメニューから「Bash on Ubuntu on Windows」を起動

Ubuntu のバージョン

次のコマンドで確認できます。今回は16.04.2 LTSでした。

bash
$ cat /etc/issue
Ubuntu 16.04.2 LTS

Windows へのアクセス

Windows の ドライブは/mnt/にマウントされています。例えば C ドライブは,/mnt/c/にマウンドされています。
従って,Windows のユーザフォルダへは,/mnt/c/Users/<ユーザ名>でアクセスできます。

パッケージのインストール

Ubuntu と同様に,aptコマンドでパッケージのインストールができます。
たとえば,emacs をインストールするには次のコマンド。

bash
sudo apt-get install emacs

再インストール

Bash 環境を再インストールしたくなったら,PowerShell で次のコマンドを実行しましょう。

>
lxrun /uninstall /full

lxrun /install

ここで,lxrun /uninstall /fullは Bash 環境のアンインストール,lxrun /installは インストールを示します。

おわりに

今回は,Windows 10 Creators Update に Bash on Ubuntu on Windows を導入しました。

これまでは Cygwin や MSYS2 を使って開発環境を構築していたのですが,環境の違いからちょっとした作業で手間取ってしまうことがありました。
これからは Bash on Ubuntu が使えることで,そんな悩みからも解放されそうです。今後は Bash 環境に各種開発環境を構築していこうと思います。

参考文献

  • Bash on Ubuntu on Windows
    • Microsoft 公式ドキュメント。英語ですが,コマンドリファレンスとトラブルシューティングが役に立ちます。

ウエディングパークでは、エンジニアを募集しております。 Weddingparkを始め、各種サイトやサービスを一緒に作りませんか?
IT×ブライダルで業界を変える!プロフェッショナルなWEBエンジニア募集!

DRESPIC開発の裏側 ~技術選定~

はじめまして!システムエンジニアの谷渕です。

今日は、DRESPIC( https://drespic.net )についてお話ししようと思います。

DRESPICとは…?

top

DRESPICは、2017年1月11日にオープンした、ウエディングドレスのクチコミサイトです。私はこのサイトの立ち上げエンジニアとして、昨年からDRESPICに関わっています。サイトを0から立ち上げるという、わくわくと不安といろいろな気持ちを抱えて、事業責任者の、「ドレス業界に革命を起こしたい!」という夢に乗っかって、一緒に叶えよう!と決意し、DRESPICをつくってきました。
続きを読む

コンビニレシートから学ぶ!データモデリング手法

はじめに

こんにちは、岩橋です。
今回は私が実務で行っているデータモデリング手法(実際手法とは名ばかりですが…)を紹介いたします。

データモデリングは、ご存知の通り、その後のシステム開発や拡張スピード、またシステム自身のパフォーマンスにも深く関わってきます。ここをどのように設計するかが開発プロジェクトを進める上で大きなカギになります。

なぜレシートなのか

モデリングする上で、その対象となるサービス・システムのビジネスロジックや仕様を深く理解する必要があります。レシートの背景にある「物を買う」という行為は至極身近なものであり、誰しもがそのレシートが発行されるまでの流れを経験で知っています。またレシートは、その小さな紙の中に「店舗」や「商品」など、WEBサービスで馴染みがある概念も多く含まれており、訓練をする上で非常に手頃なものです(「コンビニ」なるフレーズは掴みに使わせていただきましたw)。

今回の話のエリア

スクリーンショット-2017-03-20-12.02.47 (1)

今回は概念設計〜論理設計の前半までの内容を対象としています。具体的には「ある特定日のレシート一覧を出力できるシステム」のデータモデリングを行っていきます。

続きを読む

学生向けインターン WeddingPark Winter TechCamp 2018 を開催しました!

こんにちは、フォトウエディングスタジオ検索サイト「Photorait」の担当エンジニアの武田です。

先月の1/10~13日に学生向けの冬のインターン、WeddingPark Winter TechCamp 2018 を開催いたしましたので報告いたします!

概要

参加している学生同士でチームを組み、4日間で実際のウエディングパークのサービス開発フローを体験します。
今回のインターンでは、ウエディングパークが運営するサイト「Photorait」で スマホ向けコンテンツの企画~開発~テストを行ってもらいました!
また、作成するコンテンツのテーマは「結婚を決めたカップルがフォトウエディングをしたくなるようなスマホコンテンツを作成する。」です。

続きを読む

【MySQL】肥大化したInnoDBテーブルを圧縮機能で縮小する方法!

こんにちは。インフラエンジニアの綿引です。

早速ですが、今回はMySQLのテーブル圧縮について記載したいと思います。
但し、MySQL 5.7から実装された透過性ページ圧縮でなく、
MySQL 5.1のInnoDB Plugin時代からある圧縮です!

個人で運用しているMySQLが5.6なのですが、
ストレージが逼迫して来たので、旧来の圧縮を試してみました。

MySQL 5.6以前で「ディスク容量が足りない!」という方がいらっしゃれば、
参考にして頂ければと思います。

圧縮の仕組み

続きを読む

やってみよう!AWSでWEBサーバー環境構築(シリーズ第2回)

こんにちは、岩橋です。

やってみよう!AWSでWEBサーバー環境構築、好評の第一回に続きまして、待望の第二回をやっていきたいと思います。今回は前回作成したVPCとEC2を拡張し、少しづつ耐障害性を意識した実用的な構成を作っていきます。まずはAMIを使って前回作ったEC2のコピーを作るところから始めましょう!

AMIを設定する

これから複数の各種サーバーを設定するに先立って、AMI (Amazon Machine Image) の設定を行いましょう。EC2インスタンスをローンチする度に同じような設定を毎回行うのは煩雑ですが、
これを使ってEC2インスタンスの設定状態をスナップショットとして保存しておくことができます。後で同じEC2が必要になった時にすぐに複製が手に入ります。それでは前回作ったEC2のAMIを作成します。

続きを読む

やってみよう!AWSでWEBサーバー環境構築(シリーズ第1回)

こんにちは、岩橋です。最近のAWSは、次から次に新たなサービスを展開し、その勢いは留まることを知リません。今やITと切っても切れない関係と言っても過言ではないでしょう。

そこでこの度、複数回に渡ってAWS上でのWebアプリ向けのサーバー環境構築について記事にしてみたいと思います。

今回構築するサーバー環境は、
◉VPC(Virtual Private Cloud:土地全体)の構築
◉AZ(Availability Zone:建造物エリア)、サブネット(:建造物を設置するための基礎)の構築
◉WEBサーバーの設置(EC2)
◉ロードバランサー(ELB:玄関)の設置
◉ステップサーバー(EC2:裏口玄関)の設置
◉DNSの設定(Route53:住所登録)
◉データベースの設置(RDS)
◉KVSの設置(ElastiCache)
 …etc を想定しており、最終的には以下のようなイメージになります。

続きを読む

表参道で働くエンジニアのランチ事情 #1

こんにちは。サーバーサイドエンジニアの武田(@takedajs)です。
会社の誕生日プレゼントで頂いたプッシュアップバーと腹筋ローラーを使って筋力アップに励んでいます!
筋トレは健康に良いし、ストレス発散にもなりますので、運動不足になりがちなエンジニアの方にオススメです!

さて本題です。
1日中オフィスで仕事していることが多いので、気分転換も兼ねてランチをできるだけ外で食べるようにしています。
そこで今回は、弊社がある表参道で普段僕が行っているランチのお店を5件紹介します!

お店の条件

オフィスから徒歩5~10分以内で着くお店に行くようにしています。
12時にオフィスを出るとお店が混んでランチ難民になってしまうので、11:50にオフィスを出て12時までにお店に着くようにしています。
続きを読む

初めてRedisを使うための環境構築

初めまして、システムエンジニア新卒1年目の菅原です。

今回は初めてredisを触ってみたので紹介します。

Redisに触れてみた背景

今年の9月半ばに職場の先輩たちとisucon6に参加しました。

残念ながら敗退してしまいましたが、これまでパフォーマンスをここまで意識したことはなく、参加チームの通過者や本戦出場者の中でもMysqlのデータをRedisに移行してパフォーマンスを速くしているチームが多い印象でした。

少し調べてみるとRDBMSのような複雑な処理にはRedisのキーバリューストア(KVS)型は向かないが、すべてのデータセットをメモリ内に読み込むため、とても高速で高いパフォーマンスをすることができることが分かりました。

パフォーマンスに問題があった場合Redisを使えることがパフォーマンスチューニングにおいては大切なことなのでそんなRedisを触らないわけにはいかないということで初めて触ってみました。

続きを読む

phpDocumentor でドキュメント自動生成してみた

こんにちは、エンジニアの榎本です。

チーム開発において、ファイル数やクラスが増えてくると、新しいメンバーに説明をする際など、ドキュメントがないと説明が難しくなってくることがあります

しかし実際のところ、ドキュメントを作成する工数を確保できず、せっかく作ったドキュメントがあってもどんどん陳腐化している現場も多いのではないでしょうか

そのため、今回は phpDocumentor を用いて PHP のコードから自動でドキュメントを生成する方法を紹介したいと思います

作業環境

  • CentOS 7.2
  • PHP 7.0.12
  • Composer 1.2.2

続きを読む