"vagrant up" しようとしたら "version of VirtualBox installed that is not supported" と言われた

Ansibleを試してみようと思い、以下の記事を参考にvagrantで試してみようとした。

qiita.com

boxを用意して、'$ vagrant up' してみました。

$ vagrant up

The provider 'virtualbox' that was requested to back the machine
'controller' is reporting that it isn't usable on this system. The
reason is shown below:

Vagrant has detected that you have a version of VirtualBox installed
that is not supported. Please install one of the supported versions
listed below to use Vagrant:

4.0, 4.1, 4.2, 4.3

どうやら、virtual boxのバージョンが違うから合わせてくれといっているようだ。

なので、virtual boxのバージョンを上げてみた。 virtual boxは Homebrewで入れているので、ターミナルからおもむろに $ brew cask install virtualbox としてバージョンをあげてみるがやはり変わらない。

そこで、vagrantの方のバージョンをあげてみる。

$ brew cask install vagrant
==> Downloading https://releases.hashicorp.com/vagrant/1.8.6/vagrant_1.8.6.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask vagrant
==> Running installer for vagrant; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
==> installer: Package name is Vagrant
==> installer: Upgrading at base path /
==> installer: The upgrade was successful.
🍺  vagrant was successfully installed!

ここまでやって、ようやくvagrantが立ち上がりました。 さっ、ansibleの勉強しよーっと。

Macで日本語入力ができなくなったけど解決した話

Macで作業中、突然日本語入力ができなくなってしまうことがあり、一応の解決策が見つかったのでメモ。

どういうこと?

Macでアプリを切り替えて作業をしていると、突然日本語入力が出来なくなる。 ちなみに、Google日本語入力を使っています。

  • 「英数」「かな」キーを押してみても反応なし。(もしくは、一瞬右上の言語メニューが切り替わるけど、すぐに戻ってしまう。)
  • 右上の言語メニューから「ひらがな」を選択しても変化なし。

コード書いてる時ならそこまで困らないが、チャットなどしてる時だと、もう大変。 「nihonngoutenakunarimasita」みたいになってしまう。。

どうやって解決したの?

普段、クリップボード拡張で、Clipyを使っています。 思い返してみると、日本語が入力できなくなった辺りからClipyが反応しなくなってしまった。

これはもしやと思って、Clipyを落としてみた。

/Applications/Utilities/アクティビティモニタ を開き、「Clipy」を探し、"×"アイコンをクリック。

Cipyが落ちたので、日本語入力をやってみると・・・できた!!!!

他のアプリが影響したりしてることもあるけど、今回はこれでうまくいきました。 よかったよかった。。。

Ansibleを使おう

TOC

  • 構成管理ツールとは?
    • Ansibleとは?

構成管理ツールとは?

サーバーを作成した時など、マニュアル的に実行している処理、手順があると思います。

例えば・・・ - ユーザーを作って - apache入れて - sshの設定して - ディレクトリ作って などなど。

マニュアルを見ながら進めていけば、1度や2度なら問題は起こらないかもしれませんが、それが10回20回・・・となった場合、毎回同じような結果になるといえるでしょうか? (マニュアルをブラッシュアップしろよというツッコミはここでは無視)

そういうときは構成管理ツールを使いましょう。 構成管理ツールを使うと以下のことができるようになります。

  • セットアップの自動化(構成管理)
  • デプロイメント
  • これらの手順を共有できる などなど。

面倒な作業を自動化できるだけでなく、手順をコード化することができます。 しかもそれをチーム内で共有すれば、誰が何度やっても同じ結果が返ってくるようになります。

Ansibleとは?

構成管理ツールには代表的な物がいくつかあります。

  • Puppet
  • Chef
  • Ansible
  • Rex

この中で最近人気のある Ansible を使っています。

Ansible

Ansibleには主に以下の特徴があります。 - エージェントレス - 豊富なモジュール - 冪等性 - シンプルな記述

エージェントレス

  • サーバー側に特別なインストール不要
  • ローカルにpython2.4+,サーバーにpython2.6+がインストールサれていれば動く

サーバーに勝手にいろいろインストールできないという場合でも、pythonさえあれば動作します。

豊富なモジュール

以下に一例を挙げます。 - yum - git - ファイルのダウンロード - slackに通知を送る などなど。 All Modules — Ansible Documentation

標準でできることが多いので、YAML形式で設定を書いていけばいろいろな機能を使うことができます。

冪等性

Ansibleの特徴に冪等性(べきとうせい)があります。 冪等性とは「ある操作を何度行っても、毎度同じ結果が返ってくる」ということです。

すでに実行したことがある処理を再度実行した場合でも、実行し直すのではなく、状態を見て、適宜スキップしてくれます。

シンプルな記述

Ansibleの設定ファイルは一般的なYAML形式で書かれており、非常にシンプルです。

  - name: apacheのインストール 
    apt: pkg=apache2 state=latest 

  - name: MySQLのインストール 
    apt: pkg=mysql-server-5.6 state=present

このように非常にシンプル。

Ansibleを使えば、サーバーの構築はもちろん、Macの環境構築、CMSのセットアップなど多くのことを自動化出来ます。

今回はざっくりとした概要だけで、具体的な使い方は別の記事で紹介したいと思います。

Acrobat proでメニューが消えてしまった!!

PDFを見ようと思い、Adode Acrobat proを起動した時、誤ってメニューバーを消してしまいました。。。 一瞬あせりましたが、どうにか解決出来たので、備忘録としてメモ。

ちなみにAcrobat proのバージョンは2015.017.20053です

メニューバーが消えるってどういうこと?

PDFを開いたとき、ツールパネルのウィンドウなどが開いてて、PDFの表示領域が極端に狭くなってしまっていた。。

「こういうのはたいていメニューバーの表示でなんとかなるでショ」と軽い気持ちで、
メニューバー > 表示 > 表示の切り替え からチェックがついている「ツールパネルウィンドウ」をクリックしてやると、想定通りツールパネルウィンドウが消えました。

f:id:mksk04:20160922054818p:plain

ここでやめておけばよかったのに・・・。

「おや?メニューバーにもチェックが入ってるぞ・・・」

見てみると「メニューバー」にもチェックが入っていました。

「ここをクリックすると、印刷アイコンとかも消えるかも!」と、クリックしてみると・・・、なんということでしょう!! 一番上のアップルマークなどのメニューバーが消えてしまいました!!

もう一度メニューバーの「表示」から戻そうと思ったけど、メニューバー(があったところ)をクリックしてもFinderのメニューが出てきてしまいます。。。
どうしよう。。。

ツールを起動してみよう。

上部にある、「ホーム」「ツール」などのメニューから「ツール」を選択し、なんでもいいので選択してみます。
すると、今まで消えていたメニューバーが出てきたではありませんか!!

ちなみに、「ホーム」から別のPDFを開いたりしてもメニューバーは復活します。

後先考えずにこういうことをすると痛い目を見るな、と言う教訓でした。。。

Hubot起動時に出るエラーをどうにかしたい!!

Hubotを起動する際に以下のエラーがでてる。

$ bin/hubot                                                  ⏎
[Thu Sep 22 2016 05:01:57 GMT+0900 (JST)] ERROR Error: listen EADDRINUSE 0.0.0
.0:8080
  at Object.exports._errnoException (util.js:1026:11)
  at exports._exceptionWithHostPort (util.js:1049:20)
  at Server._listen2 (net.js:1253:14)
  at listen (net.js:1289:10)
  at net.js:1399:9
  at _combinedTickCallback (internal/process/next_tick.js:77:11)
  at process._tickCallback (internal/process/next_tick.js:98:9)

mybot> [Thu Sep 22 2016 05:01:59 GMT+0900 (JST)] INFO hubot-redis-brain: Using
 default redis on localhost:6379
[Thu Sep 22 2016 05:01:59 GMT+0900 (JST)] INFO hubot-redis-brain: Data for hub
ot brain retrieved from Redis

今のところ、出てても起動には影響しなかったのでほうっておいたが、きになったのでちょっと調べてみた。

nodeのプロセスがすでに動いているらしい

ぐぐったら以下のサイトが見つかった。

qiita.com

ここに書かれていることが全てなのだけど、どうも以前nodeで使われたポートがそのままになっているのが問題らしい。

なので、使っていないプロセスを止めてあげましょう。

# 確認
$ ps aux | grep node
root            19383   0.1  0.5  3118512  40724 s011  S+    7:00PM   0:03.18
node node_modules/.bin/coffee /Volumes/MacintochHD/Documents/mybot/node_module
s/.bin/hubot --name mybot
root            34778   0.1  0.1  3122496   5436 s000  S+   Fri06PM   0:21.10
node node_modules/.bin/coffee /Volumes/MacintochHD/Documents/mybot/node_modules/.bin/hubot --name mybot
root            12361   0.1  0.4  3116116  34604 s013  S+    5:13PM   0:04.53 node node_modules/.bin/coffee /Volumes/MacintochHD/Documents/mybot/node_modul$s/.bin/hubot --name mybot
node node_modules/.bin/coffee /Volumes/MacintochHD/Documents/mybot/node_modules/.bin/hubot --name mybot
root            12361   0.1  0.4  3116116  34604 s013  S+    5:13PM   0:04.53 node node_modules/.bin/coffee /Volumes/MacintochHD/Documents/mybot/node_modules/.bin/hubot --name mybot
root            30141   0.1  0.1  3122360   6536 s001  S+   Fri05PM   0:21.71 node node_modules/.bin/coffee /Volumes/MacintochHD/Documents/mybot/node_modules/.bin/hubot --name mybot
root            21108   0.0  0.0  2441988    656 s017  R+    5:02AM   0:00.00 grep node
root            21071   0.0  1.1  3126560  94284   ??  S     5:01AM   0:02.73 node node_modules/.bin/coffee /Volumes/MacintochHD/Documents/mybot/node_modules/.bin/hubot

# nodeのプロセスを殺す
$ killall node

# 再度確認
$ ps aux | grep node
root            21142   0.0  0.0  2432772    528 s017  R+    5:02AM   0:00.00 grep node

# 起動
$ bin/hubot
mybot> [Thu Sep 22 2016 05:02:58 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379
[Thu Sep 22 2016 05:02:58 GMT+0900 (JST)] INFO hubot-redis-brain: Data for hubot brain retrieved from Redis

エラーが消えてスッキリしました。

やっぱりエラーが出っぱなしってのは精神衛生上良くないよね。。。。

Homebrewでアプリをアンインストールしたら Error: {app} is not installedが出て怒られた

macでアプリの管理はHomebrewを使っています。 思い立って不要なファイルをアンインストールしようと brew cask uninstall {app}としたら Error: {app} is not installedと出てできなかったので、ちょっと調べてみたのでメモ。

まずは手順を

# まずはbrew でインストールしているアプリを確認
$ brew cask list                                               ⏎
adobe-creative-cloud                     kobito (!)
alfred                                   macvim
appcleaner                               magican
atom                                     mamp
bartender                                mi
bettertouchtool                          minbox
bitbar                                   mplayerx
caffeine                                 node (!)
ccleaner                                 skype
clipmenu                                 slicy
divvy                                    sophos-anti-virus-home-edition (!)
dropbox                                  sourcetree
eclipse-ide                              sublime-text
evernote                                 sublime-text3 (!)
filezilla                                textwrangler
firefox                                  the-unarchiver
genymotion                               totalfinder
gimp                                     vagrant
google-chrome                            virtualbox
google-hangouts                          visual-studio-code
google-japanese-ime                      vlc
hyperswitch                              vmware-fusion
inkscape                                 xampp
iterm2                                   xquartz
karabiner                                yabumi

# slicyは使ってないのでアンインストール
$ brew cask uninstall slicy
Error: slicy is not installed <= どうして・・・

こんな感じでアンインストール出来ない・・・。

わからないときはググってみる

error * is not installed homebrewアタリでググって見ると結構見つかるけど、今回はこの記事が見つかった。

qiita.com

ここに手動で消す方法が紹介されていたので、やってみる

# /Users/{user}/Applications/~
$ ll slicy.app
ll /Users/{user}/Applications/Slicy.app                        ⏎
lrwxr-xr-x  1 root  staff    42B Sep  3 07:11 /Users/{user}/Applications/Slicy.app -> /usr/local/Caskroom/slicy/latest/Slicy.app

# 削除
$ rm -f /Users/{user}/Applications/Slicy.app
$ rm -rf /usr/local/Caskroom/slicy/latest/Slicy.app

# 確認
$ brew cask list

ここまでやってSlicyがなくなっていればOK

どうしてこうなるの?

どうしてこうなるのか気になったので、調べてみた。

github.com

これによると、インストールした時と違うバージョンがインストールされていると起こる問題らしい。

この中で、「brew cask uninstall --force で全てのバージョンを消せるよ」って言っているのでやってみた。

# まずはbrew でインストールしているアプリを確認
$ brew cask list                                               ⏎
adobe-creative-cloud                     kobito (!)
alfred                                   macvim
appcleaner                               magican
atom                                     mamp
bartender                                mi
bettertouchtool                          minbox
bitbar                                   mplayerx
caffeine                                 node (!)
ccleaner                                 skype
clipmenu                                 slicy
divvy                                    sophos-anti-virus-home-edition (!)
dropbox                                  sourcetree
eclipse-ide                              sublime-text
evernote                                 sublime-text3 (!)
filezilla                                textwrangler
firefox                                  the-unarchiver
genymotion                               totalfinder
gimp                                     vagrant
google-chrome                            virtualbox
google-hangouts                          visual-studio-code
google-japanese-ime                      vlc
hyperswitch                              vmware-fusion
inkscape                                 xampp
iterm2                                   xquartz
karabiner                                yabumi

# divvyをアンインストール
$ brew cask uninstall --force divvy

# 確認
$ brew cask list   

これでdivvyがなくなっていればOK。

Homebrew はアプリのインストールが楽だからついつい消し忘れのアプリが増えてしまいがちだけど、定期的に見直してきれいにしましょー

coffee script でエラーが出て全然開発がすすまない!!

最近、Hubotで遊んでいるのですが、Hubotではおもにcoffee scriptを使ってBotを作っています。

ただ、まだcoffee scriptに慣れていないためよく、エラーが出て止まってしまいます。。

/V/M/D/mybot ❯❯❯ bin/hubot
mybot> [Thu Sep 15 2016 18:15:16 GMT+0900 (JST)] ERROR Unable to load /Volumes/MacintochHD/Documents/mybot/scripts/redis: SyntaxError: unexpected OUTDENT

エラー箇所がすぐにわかればいいのですが、ターミナルではエラー箇所を教えてくれないので、場合によっては時間がかかってしまう時があります。。

そんなときは coffee scriptの公式へ!

すぐにエラー箇所がわからない場合は、迷わず公式に行きましょ。

CoffeeScript

上に並んでるなかから「TRY COFFEE SCRIPT」を開きます。
すると、コンソールが開いて、「Javascript で展開したらこうなるよ!」っていうのを教えてくれます。

親切なことにcoffee scriptでエラーがあると、Error on line 2: missing "みたいにエラー箇所を教えてくれます。

これをうまく使っていけば、Hubotの開発も少しは楽になるかもしれません。