20200301のMacに関する記事は10件です。

Visual Studio Code よく使う順ショートカット集(Mac)〜随時更新〜

これを知っているか知らないかでコードを書くスピードが格段に変わってきます。1日1つずつで良いので少しずつ慣らしていきましょう!他のサイトにも同じようなコマンド集がありますが、よく使う順というのはあまり無かったので書いてみました。便利なのに意外と知られてないものには色をつけています。

ではいきましょう!

よく使うショートカット一覧(Mac)

・行の途中で下に行を作成(いちいち行末まで移動してreturnしなくて良い)
 [command] + [return]

・行の途中で上に行を作成([shift]をつけると大体反対の意味になるので覚えとくとGood)
 [command] + [shift] + [return]

・一つ前の状態に戻る
 [command] + [z]

・一つ先の状態に進む
 [command] + [shift] + [z]

・コメントアウト(言語ごとに違うコメントアウトの書き方覚える必要なし)
 [command] + [/]

・ファイルを閉じる(×ボタンで閉じるの面倒なので脳死で一気に閉じるときオススメ)
 [command] + [w]

・カーソルが当たっているワードを検索(こっから[>]マーク押して文字の置換もできるよ)
 [command] + [e]

・ファイル内検索(こっから[>]マーク押して文字の置換もできるよ)
 [command] + [f]

・選択している行をまるごと移動(いちいちコピペしなくて良い。しかもインスタンス・条件・繰り返しの下に持っていくと自動的にインデント下げてくれる賢いやつ)
 [option] + [↑or↓]

・今いる行を複製(いちいちコピペなんてしなくて良い。似たコードを複数書くときめっちゃ便利)
 [shift] + [option] + [↓or↑]

・コピー
 [command] + [c]

・カット
 [command] + [x]

・ペースト
 [command] + [v]

・画面拡大(見辛いとき、人に見せるときに良く使う)
 [command] + [shift] + [-]

・画面縮小(2画面で作業スペースが狭いとき、拡大を元に戻すときに使う)
 [command] + [-]

・エクスプローラーを閉じる(2画面で作業スペース狭いときによく使う。マウス操作でもできるから好み)
 [command] + [b]

・範囲選択
 [shift] + [↑or↓or←or→]

・全選択
 [command] + [a]

・今いる行から上または下のコード全てを選択(コードが長く全選択するほどじゃない時に便利)
 [command] + [shift] + [↑or↓]

・ファイルの先頭、末尾に移動
 [command] + [↑or↓]

・ファイルを開く
 [command] + [o]

・今表示しているファイルを複製(試しにコードを変更して動作確認したいときにバックアップに便利)
 [command] + [¥]

・新規ファイル作成(ターミナルからとかダブルタップで作ること多いからほぼ使わない)
 [command] + [n]

・ファイルを保存(自動保存機能あるからほぼ使わない)
 [command] + [s]

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Kubernetes関連ツール調査(適宜追記)

Kubernetesを効果的に使うためのツール群をまとめる

Podのデバッグ

トラブルシューティング用のツールをインストール済みのcontainerを横付けすることで、本番側のPodにツールを入れずにトラブルシュートできる。
※使い方未確認

brew install aylei/tap/kubectl-debug

参考: https://github.com/aylei/kubectl-debug

下記のリストから個人的に使えるツール類をまとめる

http://dockerlabs.collabnix.com/kubernetes/kubetools/?utm_sq=ganrvzkv2k

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Terraformを使用してherokuにデプロイした際の備忘録

この記事ではTerraform初心者の私が、herokuにデプロイし際の備忘録を記載してます。

<作成環境>
■PC:MacBook (13-inch, Aluminum, Late 2008)
■macOS:10.11.6
◼Terrafom:v0.12.20
◼herokuk:v2.2.2

<参考URL>
https://blog.sshn.me/posts/using-terraform-to-build-heroku-app/

この記事は、基本的に、上記ページを参照しておりますが、上記私の作成環境でデプロイする際に修正した点を記載しております。

<前提作業>
Terraformのインストール
brew install terraform
herokuの登録
https://jp.heroku.com/

<私が記載したtfファイル>

provider "heroku" {
  email = "heroku登録時のメールアドレス"
  api_key = "heroku_api_key"
}

resource "heroku_app" "default" {
  name = "terraform-heroku-test"
  region = "us"
}

resource "heroku_addon" "database" {
  app = "${heroku_app.default.name}"
  plan = "heroku-postgresql:hobby-dev"
}

<修正した点>
api_keyの記載方法
修正前:api_key = "${var.heroku_api_key}"
修正後:api_key = "heroku_api_key"
上記のようにapi_keyを入力する際、修正前の記載だと正常に処理が完了しないため、
emailと同じように""の中にheroku_api_keyを入力すると処理が完了した。

heroku_appのnameの使用文字
修正前:terraform_heroku_test
修正後:terraform-heroku-test
(アンダーバー)が使用できない。
参考URLの記載は正解です。私がappの名前を設定する際、他の名前を使用し、
(アンダーバー)を使用しました。
デプロイする際、エラーで_(アンダーバー)が使用できないことに気づきました。
参考ページ:https://stackoverflow.com/questions/41604716/heroku-errorname-must-start-with-a-letter-and-can-only-contain-lowercase-letter/41606980#41606980

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

パスを通す意味とやり方を丁寧に解説[Mac]

「パスを通す」の意味とは?

パスを通すとは、具体的にはコマンドサーチパス(コマンド検索パス)を環境変数$PATHに追加すること、と僕は理解しています。

パスを通すことによって、コマンド名のみでコマンドを実行できるようになります。

コマンド名のみでコマンドを実行するとは?

たとえば、/binディレクトリのlsコマンドを実行するとき、本来はパス名/bin/lsを使用する必要があります。

% /bin/ls

上記のようにパス名を使用してもコマンドを実行することはできますが、パスが通っていれば、下記のようにコマンド名のみでlsコマンドを実行することができるようになります。

% ls

コマンドサーチパスとは?

コマンドがパスの指定なしで実行されると、コンピュータはそのコマンドに対応するファイルを環境変数$PATHに定義したディレクトリ内から検索します。コマンドサーチパスとは、つまり実行されたコマンドに対応するファイルを探しにいくディレクトリのパスのことで、環境変数$PATHに定義されています。

環境変数$PATHは、次のように確認することができます。

% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

このように、コマンドサーチパスはコロン(:)で区切られています。整理すると次のようになります。

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

これらのディレクトリに格納されているコマンドは、パスが通っているので、コマンド名のみで実行することができます。逆にいえば、ここにないディレクトリに格納されているコマンドは、PATHが通っていないので、パス名を指定しなければ実行することができない、ということになります。

ききほど実行したlsコマンドのコマンドサーチパスである/binも、環境変数$PATHに定義されていることがここで確認できます。

パスを通す方法

パスを通すというのは、具体的には環境変数$PATHを編集して、コマンドを格納するディレクトリを追記する処理を意味します。

環境変数を設定する際には、exportコマンドを実行するようです。下記のようにパスを通す方法がよく紹介されています。

% export PATH=$PATH:追記したいコマンドサーチパス

たとえば、/mybinディレクトリをコマンドサーチパスとして登録する場合を考えてみます。

まず、現在登録されているコマンドサーチパスを確認します。

% echo $PATH                                        
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

ここに/mybinを追加する場合は、次のようにコマンドを実行します。

% export PATH=$PATH:/mybin

exportコマンドは、環境変数を設定したりするためのコマンドです。

上記のコマンドは、環境変数$PATHに[現在の$PATH + :/mybin]を代入する、という処理をしているようです。

更新された環境変数$PATHを確認するために、もう一度echo $PATHを実行します。

% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/mybin

このように、/mybinというコマンドサーチパスが追加されることがわかります。

ちなみに、環境変数$PATHをもとに戻すときには、次のようにコマンドを実行しました。

% export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

.bashrcと.bash_profileについて

パスを通すときは、~/.bashrc~/.bash_profileにコマンドサーチパスを登録する処理を記述する方法が一般的なようです。

これらのファイルは、どちらも自動的に実行されるファイルで、下記のような違いがあるようです。

  • .bash_profile: ログイン時のみ実行されるファイルで、環境変数の設定などに使用される
  • .bashrc: 対話モードのbashを起動するときに実行されるファイルで、エイリアスやシェル関数の定義などに使用される

試しに.bash_profileを使って/mybinのパスを通してみようと思います。

まずは.bash_profileファイルをエディタで開きます。

% vi ~/.bash_profile

最終行にパスを通すための処理を追加します。

export PATH=$PATH:/mybin

最後に、sourceコマンドを実行して、.bash_profileファイルの変更を反映させます。.bash_profileはログイン時に実行されるファイルなので、ログインをやり直さずに変更内容を反映させたいときはsourceコマンドが使用されるようです。

% source ~/.bash_profile

環境変数$PATHが上書きされたことを確認します。

% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/mybin

これで、/mybinディレクトリのファイルはパス名のみで実行することができるようになりました。

コマンド検索の優先順位

環境変数$PATHには、複数のコマンドサーチパスを登録することができます。

% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

僕の環境では上記のように環境変数が定義されていますが、コマンドがパスの指定なしで実行されると、コンピュータは左から順番にコマンド検索を始めるようです。

つまり、次のような順番でコマンドを検索します。

  1. /usr/local/bin
  2. /usr/bin
  3. /bin
  4. /usr/sbin
  5. /sbin

たとえば、2番目の/usr/binと4番目の/usr/sbinに同名のコマンド実行ファイルが存在した場合、実行されるのは/usr/binディレクトリのコマンド実行ファイルになります。「コマンドは実行されるけれど、意図した挙動ではない」というような場合は、環境変数$PATHの中身を確認するとよいかもしれません。

実行ファイルの格納場所を調べる

whichコマンドで、コマンドのパスが通っているかどうかを調べることができます。

% which git
/usr/local/bin/git

コマンドのパスを調べるときに使うコマンドには、whichの他にもwhereisというものがあるようです。

  • which: 環境変数$PATHで定義したコマンドサーチパスを検索する
  • whereis: /usr/bin:/bin:/usr/sbin:/sbinを検索する

上記のような違いがあるようなので、パスが通っているかどうかを知りたいときはwhichコマンドを使ったほうがよさそうです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【備忘録】【controlを用いた便利なショートカット集/command/Clipyも】

【備忘録】【controlを用いた便利なショートカット集】

?【システム環境設定→キーボード→ショートカットで割当てをするもの】

個人的な割当て(デフォルトで設定されているもの含む)

[Spotlight]
・control+Sキー:Spotlight検索を表示(Spotlightの頭文字の”S”を使用)

[LaunchpadとDock]
・control+Dキー:Dockを自動的に・・・/非表示のオン/オフ(Dockの頭文字の”D”を使用)

・control+Qキー:Launchpadを表示(頭文字は関係ないが、左手のみで操作できるように、controlキーの近くのQを使用)

[Mission Control]
・control+上矢印キー:Mission Control(多分デフォルトで設定されている)

・conrtol+左/右矢印キー:左/右の操作スペースに移動(これむっちゃ便利です!)

・control+1〜5の数字キー:デスクトップ1〜5に瞬時に切り替え(上記の左右矢印キーのより便利かもです!!)

・control+Zキー:デスクトップを表示(デフォルトで設定/今回追加したので未知数)

?【デフォルトで設定されているもの(別枠)】

・control+Fキー:1文字分進む/右矢印キーと同じ役割(Forwardの頭文字の”F”を使用)

・control+Bキー:1文字分戻る/左矢印キーと同じ役割(Backの頭文字の”B”を使用)

・control+Pキー:1行分上に移動する/上矢印キーと同じ役割(Previous Lineの頭文字の”P”を使用)

・control+Nキー:1行分下に移動する/下矢印キーと同じ役割(Next Lineの頭文字の”N”を使用)

・control+Aキー:行または段落の先頭に移動する(alphabetの先頭の”A”)

・control+Eキー:行または段落の末尾に移動する(Endの頭文字の”E”を使用)

・control+Kキー:現在のカーソル位置から、行または段落の末尾までの範囲にあるテキストを削除する(Killの頭文字の”K”を使用)※削除したものは、クリップボードとは別の場所に保存される

・control+Yキー:control+Kで削除したものを貼り付け(ペースト)できる(Yankの頭文字の”Y”を使用)

参考:
https://bit.ly/2vkIKzo

キル&ヤンク
https://bit.ly/2uIGcuz

ーーーーーーー
【別枠1/commandを用いた一般的なショートカット集】

・command+Cキー:コピー(Copyの頭文字の”C”を使用)

・command+Vキー:ペースト(Cキーの右隣にあるから)

・command+Xキー:切り取り(Cキーの左隣にあるから)

・command+Zキー:直前のコマンドを取り消す(Xキーの隣にあるから)

・shift+command+Z:command+Zで行った行為を元に戻す

※下記のApple公式サイトには他のショートカットも多数あります。

command+VのVは難の略か
https://bit.ly/2vskjzV

Appleの公式サイトより
https://apple.co/3aiVHIM

ーーーーーーーーー
【別枠2/Clipyを用いたショートカット】

・option+command+下矢印キー:Clipyのメイン

・option+command+Vキー:Clipyの履歴

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【備忘録】controlキーを用いた便利なショートカット集/commandキー/Clipyも

【備忘録】【controlを用いた便利なショートカット集】

?【システム環境設定→キーボード→ショートカットで割当てをするもの】

個人的な割当て(デフォルトで設定されているもの含む)

[Spotlight]
・control+Sキー:Spotlight検索を表示(Spotlightの頭文字の”S”を使用)

[LaunchpadとDock]
・control+Dキー:Dockを自動的に・・・/非表示のオン/オフ(Dockの頭文字の”D”を使用)

・control+Qキー:Launchpadを表示(頭文字は関係ないが、左手のみで操作できるように、controlキーの近くのQを使用)

[Mission Control]
・control+上矢印キー:Mission Control(多分デフォルトで設定されている)

・conrtol+左/右矢印キー:左/右の操作スペースに移動(これむっちゃ便利です!)

・control+1〜5の数字キー:デスクトップ1〜5に瞬時に切り替え(上記の左右矢印キーのより便利かもです!!)

・control+Zキー:デスクトップを表示(デフォルトで設定/今回追加したので未知数)

?【デフォルトで設定されているもの(別枠)】

・control+Fキー:1文字分進む/右矢印キーと同じ役割(Forwardの頭文字の”F”を使用)

・control+Bキー:1文字分戻る/左矢印キーと同じ役割(Backの頭文字の”B”を使用)

・control+Pキー:1行分上に移動する/上矢印キーと同じ役割(Previous Lineの頭文字の”P”を使用)

・control+Nキー:1行分下に移動する/下矢印キーと同じ役割(Next Lineの頭文字の”N”を使用)

・control+Aキー:行または段落の先頭に移動する(alphabetの先頭の”A”)

・control+Eキー:行または段落の末尾に移動する(Endの頭文字の”E”を使用)

・control+Kキー:現在のカーソル位置から、行または段落の末尾までの範囲にあるテキストを削除する(Killの頭文字の”K”を使用)※削除したものは、クリップボードとは別の場所に保存される

・control+Yキー:control+Kで削除したものを貼り付け(ペースト)できる(Yankの頭文字の”Y”を使用)

参考:
https://bit.ly/2vkIKzo

キル&ヤンク
https://bit.ly/2uIGcuz

ーーーーーーー
【別枠1/commandを用いた一般的なショートカット集】

・command+Cキー:コピー(Copyの頭文字の”C”を使用)

・command+Vキー:ペースト(Cキーの右隣にあるから)

・command+Xキー:切り取り(Cキーの左隣にあるから)

・command+Zキー:直前のコマンドを取り消す(Xキーの隣にあるから)

・shift+command+Z:command+Zで行った行為を元に戻す

※下記のApple公式サイトには他のショートカットも多数あります。

command+VのVは難の略か
https://bit.ly/2vskjzV

Appleの公式サイトより
https://apple.co/3aiVHIM

ーーーーーーーーー
【別枠2/Clipyを用いたショートカット】

・option+command+下矢印キー:Clipyのメイン

・option+command+Vキー:Clipyの履歴

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【ポケモン剣盾】カセキポケモンの受け取りを自動化させる

Arduinoを使用してSwitchのコントローラを操作できるため、カセキポケモンの受け取りを自動化させました。

ボタン連打でも受け取れますが、自動化するにあたってメッセージ終了後にボタンを押すようにしました。

使用機器

Arduino Micro

・MacBook Pro

Macでの設定

Arduino IDEのインストール

・SwitchControlLibraryをGitHubからダウンロード
 保存先は「/Users/user/Documents/Arduino/libraries」に保存する。

・Arduino IDEを起動、SwitchControlLibraryを使用する時にArduinoSTLが必要になるため、
 「スケッチ⇨ライブラリをインクルード⇨ライブラリを管理」から「ArduinoSTL」をインストールする。

・ボードに書き込む際、VID=0x0f0d, PID=0x0092 に変更する必要があるため、
 Arduino.appを右クリック、「パッケージの内容を表示」から 
 「/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/boards.txt」
 のVID、PIDを変更します。

//使用機器がArduino Microの場合
micro.build.vid=0x0f0d //変更前:micro.build.vid=0x2A03
micro.build.pid=0x0092 //変更前:micro.build.pid=0x0037

ゲーム側の設定

連打だけでカセキポケモンを受け取れるようするため、
「手持ち/ボックス 自動で送る」、「ニックネーム登録 しない」に変更します。
設定.jpg

Arduino IDE

最初の復元するカセキの選択時のみ、Aボタンそれ以外はBボタンを押すようにし、受け取り時に時間がかかる場合は待機時間を長くしています。

#include <SwitchControlLibrary.h>

void setup() {

}

void loop() {
  for (int i=0; i < 5; i++) {
    SwitchControlLibrary().PressButtonB();
    delay(50);
    SwitchControlLibrary().ReleaseButtonB();
    delay(1000);
  }

  //話しかける
  //ん? カセキ そろってんね この ウカッツに みせてみ? >はい
  //ウカッツの 眼鏡に かなう カセキは どれかね? >カセキのサカナ
  //ウカッツの 興味を そそる カセキは どれかね? >カセキのリュウ
  //カセキのサカナと カセキのリュウで 復元? >それで よければ
  for (int i=0; i < 5; i++) {
    SwitchControlLibrary().PressButtonA();
    delay(50);
    SwitchControlLibrary().ReleaseButtonA();
    delay(1000);
  }

  //おけー! 復元しちゃって カセキの ナゾに せまるゾ!
  //待機
  SwitchControlLibrary().PressButtonB();
  delay(50);
  SwitchControlLibrary().ReleaseButtonB();
  delay(5000);

  //次へ
  //そーれ がっちゃんこ! よし! よし! よしっ!
  //目標 達成! みごとな 復元 カモ
  //太古の ガラルで 暮らしていた 様子が 目に 浮かぶ ようだネ!
  //かわいがって くれたまえよ
  for (int i=0; i < 5; i++) {
    SwitchControlLibrary().PressButtonB();
    delay(50);
    SwitchControlLibrary().ReleaseButtonB();
    delay(1000);
  }
 
 //〇〇〇は ウオノラゴンを もらった!
  //待機
  SwitchControlLibrary().PressButtonB();
  delay(50);
  SwitchControlLibrary().ReleaseButtonB();
  delay(5000);

  //次へ
  SwitchControlLibrary().PressButtonB();
  delay(50);
  SwitchControlLibrary().ReleaseButtonB();
  delay(1000);

  //ウオノラゴンを 手持ちに 加えました! or ウオノラゴンを ボックスへ 転送しました!
  SwitchControlLibrary().PressButtonB();
  delay(50);
  SwitchControlLibrary().ReleaseButtonB();
  delay(1000);
}

待機時間30秒程度で受け取れます。

書き込み後に、「ツール⇨ボード情報を取得」からArduinoの情報を取得した時に
VIDとPIDが変更されていれば完了です。

実行

ウオノラゴン00001.jpg

参考

Arduinoでポケモン剣盾自動化してみた ~自動ワット稼ぎ編~

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【備忘録】欲しかった/使いこなしたかったショートカット(VSCode/Mac)

【VSCodeのショートカット】

⭐️option+上下矢印キー:行を上下に移動

1行もしくは複数の行の適当な部分を選択して、好きな場所へ移動できる。移動する場所が近い場合はすごく役に立つ。

ーーーーー
・shift+option+上下矢印キー:行を上下にコピー

1行もしくは複数の行の適当な部分を選択して、上や下に爆速でコピーできる。

ーーーー

以上ですw

現状⭐️が付いてるものがとっても知りたかったので笑

今後、良さそうなショートカットがあれば追記していきます?

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac laravel環境構築時にエラーが出た話

目的

  • 環境構築のlaravelインストール時にでたとあるエラーの解決方法をまとめる

エラー概要

  • 下記の手順を参考に環境構築を進めていた。
  • laravelインストール時に下記のエラーが発生した。

    $ composer global require laravel/installer
    Changed current directory to /Users/shun/.composer
    Using version ^3.0 for laravel/installer
    ./composer.json has been created
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - laravel/installer v3.0.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
        - laravel/installer v3.0.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
        - Installation request for laravel/installer ^3.0 -> satisfiable by laravel/installer[v3.0.0, v3.0.1].
    
    Installation failed, deleting ./composer.json.
    
  • エラー内容の和訳を下記に記載する。

    現在のディレクトリを/Users/shun/.composerに変更しました
    laravel / installerにバージョン^ 3.0を使用する
    ./composer.jsonが作成されました
    コンポーザリポジトリにパッケージ情報をロードする
    依存関係の更新(require-devを含む)
    要件をインストール可能なパッケージのセットに解決できませんでした。
    
       問題1
         -laravel / installer v3.0.1にはext-zipが必要です*->要求されたPHP拡張zipがシステムにありません。
         -laravel / installer v3.0.0にはext-zipが必要です*->要求されたPHP拡張zipがシステムにありません。
         -laravel / installer ^ 3.0のインストール要求-> laravel / installer [v3.0.0、v3.0.1]で満足できる。
    
    インストールが失敗し、。/ composer.jsonが削除されました。
    

原因

  • HomebrewでPHPがインストールできていないことがわかった。
  • エラー分から「ext-zip」と言うものが足りないことがわかった。

解決方法

  1. HomebrewでのPHPのインストール

    1. 下記コマンドを実行してPHP7.4をインストールする。

      • 下記コマンドでエラーが出た方はこちら
      $ brew install php@7.4
      
    2. 再度問題のコマンドを実行する。

      $ composer global require laravel/installer
      
    3. 問題なく実行できた。下記に参考のために$ composer global require laravel/installer実行時の出力を記載する。

      Changed current directory to /Users/shun/.composer
      Using version ^3.0 for laravel/installer
      ./composer.json has been created
      Loading composer repositories with package information
      Updating dependencies (including require-dev)
      Package operations: 14 installs, 0 updates, 0 removals
        - Installing symfony/process (v5.0.4): Downloading (100%)         
        - Installing symfony/polyfill-ctype (v1.14.0): Downloading (100%)         
        - Installing symfony/filesystem (v5.0.4): Downloading (100%)         
        - Installing psr/container (1.0.0): Downloading (100%)         
        - Installing symfony/service-contracts (v2.0.1): Downloading (100%)         
        - Installing symfony/polyfill-php73 (v1.14.0): Downloading (100%)         
        - Installing symfony/polyfill-mbstring (v1.14.0): Downloading (100%)         
        - Installing symfony/console (v5.0.4): Downloading (100%)         
        - Installing ralouphie/getallheaders (3.0.3): Downloading (100%)         
        - Installing psr/http-message (1.0.1): Downloading (100%)         
        - Installing guzzlehttp/psr7 (1.6.1): Downloading (100%)         
        - Installing guzzlehttp/promises (v1.3.1): Downloading (100%)         
        - Installing guzzlehttp/guzzle (6.5.2): Downloading (100%)         
        - Installing laravel/installer (v3.0.1): Downloading (100%)         
      symfony/service-contracts suggests installing symfony/service-implementation
      symfony/console suggests installing symfony/event-dispatcher
      symfony/console suggests installing symfony/lock
      symfony/console suggests installing psr/log (For using the console logger)
      guzzlehttp/psr7 suggests installing zendframework/zend-httphandlerrunner (Emit PSR-7 responses)
      guzzlehttp/guzzle suggests installing psr/log (Required for using the Log middleware)
      Writing lock file
      Generating autoload files
      
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacにVagrant+Virutal BoxでLinux環境を構築する

はじめに

macでCentOS7の環境をVagrant + VirtualBoxで構築する手順を記します。

構築手順

1. Vagrantのインストール

公式サイトのDownloadsからdmgをインストールします。

https://www.vagrantup.com/downloads.html
screencapture-vagrantup-downloads-html-2020-02-29-00_01_13.png (455.7 kB)

2. Virtual Boxのインストール

Vagrantには仮想化ソフトウェアは含まれないのでVirtual Boxをインストールします。
macではOS X hostsからインストールします。

https://www.virtualbox.org/wiki/Downloads

screencapture-virtualbox-org-wiki-Downloads-2020-02-29-00_04_14.png (1.1 MB)

3. boxを新規追加

VagrantとVirtual Boxのインストールが完了したら、環境の元となるboxを追加します
boxは https://www.vagrantbox.es/ でCentOS検索して出てきたCentOS7.0.0のリポジトリのURLをコピーして、以下のようにboxを追加します。
今回はCentOS7としてaddします。

# 例: $ vagrant box add {仮想マシンの名前} {boxのURL}
$ vagrant box add CentOS7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

4. 仮想マシンを生成

まず適当なディレクトリを作ります。
今回はCentOS7を作ります。

$ mkdir CentOS7

ディレクトリが作成できたら、作成したディレクトリに移動してVagrantのinitコマンドを実行して
初期化します。

# 作成したディレクトリに移動
$ cd CentOS7
# 仮想マシンを初期化
# vagrant init {boxをaddしたときにつけた仮想マシンの名前}
$ vagrant init CentOS7

しばらくするとディレクトリ内にVagrantfileと言うファイルが生成されます。
ここに仮想マシンの設定を記述します。

5. Vagrantfileを編集する

IPアドレスの設定

まず仮想マシンのIPアドレスを設定します。

#config.vm.network "private_network", ip: "192.168.33.10"
#35行目付近に↑のような感じでコメントアウトされているので#を消してコメントアウトを解除してあげる
config.vm.network "private_network", ip: "192.168.33.10"

macのファイルを仮想マシンと共有する

Vagrantfileの最後の行にあるendの直前にホストマシン(mac)と仮想マシンで共有できるに設定を記述します。

config.vm.synced_folder"~/CentOS7","/vagrant",owner:'vagrant',group:'vagrant',mount_options:['dmode=777', 'fmode=777']

詳しい説明はしませんが、これはホストマシン(mac)側のCentOS7というディレクトリを
仮想マシンの/vagrantと言うディレクトリを共有してるいと言う意味です。

6. 仮想マシンを起動してアクセスする

Vagrantfileを書き終わったら下記のコマンドを実行して仮想マシンを起動させます

$ vagrant up

しばらくすると起動が完了するので下記のコマンドを実行して仮想マシンへログインします。

$ vagrant ssh

アクセスできたらcat /etc/redhat-releaseというコマンドを実行して下記と同じ結果がでたら成功です。

[vagrant@localhost ~]$ cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)

仮想マシンからログアウトしたいときは
exitコマンドを実行してログアウトします。

仮想マシンの停止

haltで仮想マシンを停止します。

$ vagrant halt
==> default: Attempting graceful shutdown of VM...

ちゃんと停止できたか確認してみます。

$ vagrant status
Current machine states:                                    

default                   poweroff (virtualbox)            

The VM is powered off. To restart the VM, simply run `vagrant up`     

poweroffになっています。
ちゃんと仮想マシンが停止したようです。

まとめ

・vagrant up
・vagrant ssh
・vagrant halt
この3つのコマンドで仮想マシンの起動、アクセス、停止をコマンドラインで操作できるようになりました。

あとは仮想マシンの中に各種パッケージをインストールして開発環境を構築していきます。
今回は環境構築についてなのでひとまず以上です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む