MailCatcher が気付いたら動かなくなってたので入れ直した。

最近は mailtranp を使っているので、MailCatcher は使わなくなってたのですが、 php.ini の sendmail に直接設定して使いたい案件がでてきたので久しぶりに MailCatcher を使おうとしたら動かなくなってた。

以前入れて動いてたので、普通に mailcatcher を呼んだところ、そんなコマンドないと言われてしまう。

$ mailcatcher
zsh: command not found: mailcatcher

パスが通らなくなったのかと検索してみるもでてこない。 ってかファイル数多すぎのかなかなか終わらないので途中で止めた…。

$ sudo find / -name mailcatcher
^C

ないのなら入れてやろうとインストールしてみたところエラー。

$ sudo gem install mailcatcher
Building native extensions.  This could take a while...
ERROR:  Error installing mailcatcher:
    ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.9.1/ext
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20170925-22868-1pumnwa.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/eventmachine-1.0.9.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-16/2.0.0/eventmachine-1.0.9.1/gem_make.out

とりあえず、El Capitan になった際に rootless という概念ができたという情報があるが、 rbenv 使っていれば問題ないとあったのとエラーメッセージから違うかなっとスルー。

調べてみるもこれっていうのがでてこないので、 ruby から入れ直してみようかと、一番新しいバージョンをインストール!

$ rbenv install 2.3.1
Downloading ruby-2.3.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2
Installing ruby-2.3.1...

BUILD FAILED (OS X 10.12.6 using ruby-build 20160426)

Inspect or clean up the working tree at /var/folders/lq/c0x8lzm12rvffxb0hj8qpf1h0000gn/T/ruby-build.20170926163410.43398
Results logged to /var/folders/lq/c0x8lzm12rvffxb0hj8qpf1h0000gn/T/ruby-build.20170926163410.43398.log

Last 10 log lines:
  Referenced from: /private/var/folders/lq/c0x8lzm12rvffxb0hj8qpf1h0000gn/T/ruby-build.20170926163410.43398/ruby-2.3.1/./miniruby
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _utimensat
  Referenced from: /private/var/folders/lq/c0x8lzm12rvffxb0hj8qpf1h0000gn/T/ruby-build.20170926163410.43398/ruby-2.3.1/./miniruby
  Expected in: /usr/lib/libSystem.B.dylib

make: *** [.rbconfig.time] Abort trap: 6
make: *** Waiting for unfinished jobs....
encdb.h updated

はい。エラーです。

Xcode8環境下でrbenvにてrubyのコンパイルに失敗する - Qiita

Xcode の必要なツールをインストールすればよさそう。

$ xcode-select --install
xcode-select: note: install requested for command line developer tools

Xcode のツールをインストールしたので、ruby をインストールする前に、 もう一度 MailCatcher をインストールしてみます。

$ sudo gem install mailcatcher
Building native extensions.  This could take a while...
Successfully installed eventmachine-1.0.9.1
Fetching: mime-types-data-3.2016.0521.gem (100%)
Successfully installed mime-types-data-3.2016.0521
Fetching: mime-types-3.1.gem (100%)
Successfully installed mime-types-3.1
Fetching: mail-2.6.6.gem (100%)
Successfully installed mail-2.6.6
Fetching: rack-1.6.8.gem (100%)
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/rackup

はい。エラーです。

しかし、エラーメッセージが今までと変わりました。

このエラーは調べてた時に見ましたね。

MacOSX El Capitanでcocoapodsインストールが出来ない時の対処法 - Qiita

rootless が原因のようなので、書いてあるとおりパスを指定してインストールします。

$ sudo gem install -n /usr/local/bin mailcatcher
Successfully installed rack-1.6.8
Fetching: tilt-2.0.8.gem (100%)
Successfully installed tilt-2.0.8
Fetching: rack-protection-1.5.3.gem (100%)
Successfully installed rack-protection-1.5.3
Fetching: sinatra-1.4.8.gem (100%)
Successfully installed sinatra-1.4.8
Fetching: daemons-1.2.4.gem (100%)
Successfully installed daemons-1.2.4
Fetching: thin-1.5.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed thin-1.5.1
Fetching: skinny-0.2.4.gem (100%)
Successfully installed skinny-0.2.4
Fetching: mailcatcher-0.6.5.gem (100%)
Successfully installed mailcatcher-0.6.5
Parsing documentation for rack-1.6.8
Installing ri documentation for rack-1.6.8
Parsing documentation for tilt-2.0.8
Installing ri documentation for tilt-2.0.8
Parsing documentation for rack-protection-1.5.3
Installing ri documentation for rack-protection-1.5.3
Parsing documentation for sinatra-1.4.8
Installing ri documentation for sinatra-1.4.8
Parsing documentation for daemons-1.2.4
Installing ri documentation for daemons-1.2.4
Parsing documentation for thin-1.5.1
Installing ri documentation for thin-1.5.1
Parsing documentation for skinny-0.2.4
Installing ri documentation for skinny-0.2.4
Parsing documentation for mailcatcher-0.6.5
Installing ri documentation for mailcatcher-0.6.5
Done installing documentation for rack, tilt, rack-protection, sinatra, daemons, thin, skinny, mailcatcher after 314 seconds
8 gems installed

成功しました!

そして MailCatcher が起動しました。

$ mailcatcher
Starting MailCatcher
==> smtp://127.0.0.1:1025
==> http://127.0.0.1:1080
*** MailCatcher runs as a daemon by default. Go to the web interface to quit.

以下その他の参考サイトです。

El Capitanにしたらmailcatcherがなくなっていたので入れなおす | のぶろぐ

Gem install で Operation not permitted された時の対応(追記あり) - Qiita

っとココまで進めたのですが、色々勘違いしてまして、もともと mac では MailCatcher ちゃんと使ってなかったぽい?です。

vagrant に入れて動かしてようです。

が、なぜか vagrant も動かなくなってる....。

rbenv 自体が動いてないようです。

macvagrant もいろいろ試してそのままなので余計なものとかいっぱいあるし、もうどうなってるのかよくわからない。

そろそろメンテンスが必要ですね。

MySQLで文字列の結合

MySQLで既存のカラムに文字列を結合したい場合は、CONCATを使います。

select concat(column1, column2, column3, column4) from table;

更新時

update users set name = concat(name, "追加したい文字列") where id = 1;

他のカラムと結合させる

update users set name = concat(name, kana) where id = 1;

ただし、null が対象のカラムに入ってる場合には結合してくれず、null のままになってしまいます。

null が入っていても結合するためには、ifnull で対象カラムが null だったら空文字に変換して結合するようにします。

update users set name = concat(ifnull(name, ""),  "追加したい文字列") where id = 1;

これで問題なく結合されるようになりました。

EC-CUBE3で管理画面にログインできない問題の対処方

開発環境で Vagrant を使っている時に問題になりました。

調べてみると Vagrant の設定を変更して対応したサイトを幾つか見つけました。

管理画面にログインできない : オレのメモ

ただ、うちの環境だと nfs を設定しているため設定しようとすると

以下のようなエラーが表示されます。

* Shared folders that have NFS enabled do not support owner/group

そもそも、ログインできないのは

EC-CUBE側でセッションの保存先を変更していて、

そのディレクトリの権限がないからということなので、

セッションの保存先を変更しないようにしました。

"session.storage.save_path" で検索すると

EC-CUBE のバージョンが 3.0.11 だと以下のファイルにでてきました。

eccube3/src/Eccube/Application.php

コメントアウトします。

        $this->register(new \Silex\Provider\SessionServiceProvider(), array(
//            'session.storage.save_path' => $this['config']['root_dir'].'/app/cache/eccube/session',
            'session.storage.options' => array(
                'name' => 'eccube',
                'cookie_path' => $this['config']['root_urlpath'] ?: '/',
                'cookie_secure' => $this['config']['force_ssl'],
                'cookie_lifetime' => $this['config']['cookie_lifetime'],
                'cookie_httponly' => true,
                // cookie_domainは指定しない
                // http://blog.tokumaru.org/2011/10/cookiedomain.html
            ),
        ));

ログインできました!!

f:id:ihiro81:20161027023812p:plain

ちなみに、あくまで開発環境での対応になります。

本番ではちゃんと権限を与えて、

直接このファイルを編集しないようにしましょう。

GitBucketにSSH認証キーを設定してパスワードの入力なしで利用できるようにする

SSH経由でアクセスできるように設定する

rootアカウントでログイン

System administration → System Settings

SSH Access の Enable SSH access to git repository にチェックを入れる。

他のサイトでポートを変更しているところがあったけど、変更する必要はないみたいです。(これで嵌った

f:id:ihiro81:20151002145214p:plain

認証キーを作成する

cd ~/.ssh

ssh-keygen -t rsa -C [メールアドレス]

パスフレーズはなしで登録する。

Account settings → SSH Keys で 公開鍵を登録する

Title はわかりやすいように名前を付ける。

Key には ~/.ssh/id_rsa.pub の内容をコピーする。

f:id:ihiro81:20151002144017p:plain

clone URL を ssh に変更してコピーする

f:id:ihiro81:20151002160419p:plain

ssh で clone を実行する

git clone ssh://ihiro81@example.com:29418/ihiro81/test.git

Kindleセールやってたので購入した本を紹介する。

前回のKindle50%ポイント還元セールでポイント貯まってたので、 気になる本を購入しました。

ちなみにまだ全然読んでないので内容はわかりませんが、 見た感じどれも評価高めなので面白いはず。

購入した本

読みたいと思ってたけど読めてなかったサイバーエージェントの藤田さん本。

起業家

起業家

前話題になってたので。

漫画版 野武士のグルメ

漫画版 野武士のグルメ

イケハヤさんのブログ見て面白そうだったので購入。

Kindleセール嬉しいんだけど

毎回イケハヤさんのブログで知ってて、そのうち見逃しそう。

Amazon見ても全くわからないのでなんとかして欲しいな。

セール情報載せてるサイトありそうだけど作るか。

バックグラウンドでジョブを実行する

はじめに

SSH接続で時間のかかるジョブを実行して放置していると、SSH接続が切れてジョブも途中で終了してしまいます。

これを終了しないようにする方法を説明します。

&

殆どの場合 コマンドの最後に & を付けるとよいようです。

tar zcf backup.tar.gz /home/user &

nohup コマンド

nohupでコマンドを実行すると,ログアウトしてもプログラムを実行し続けます。

scpコマンドをバックグラウンドで実行したいときに、コマンドの最後に & をつけると、 パスワードの要求などがうまく動きません。

そういった時に以下のように nohup コマンドを使うとうまくバックグラウンドで処理できました。

nohup scp file user@192.168.xxx.xxx:/home/user

ジョブを終了させる

バックグラウンドで実行したけどやっぱり終了させたい時に、killコマンドで強制終了させます。

ps -ax

kill -KILL プロセス番号

新しい Macbook Air を購入して入れたアプリとかのまとめ

新しい MBA を購入したよ

最近はVagrantとか仮想環境をがしがし使ってまして、2011年に購入したMBAではメモリーとかSSDの容量が足りなくなってたので思い切って購入しました。
Retinaとか12inchがでる噂もあったけど、今回は両方ともでてこず…残念。

Apple Store で5月5日の2時に購入ボタンを押下して、到着は5月10日お昼前でした。
上海からの配送なんですね。

トラックハッドの設定

「 調べる」と「3本指のドラッグ」にチェック入れる。
f:id:ihiro81:20140513093141p:plain

デュアルディスプレイの設定

MBAで使ってた Mini DisplayPort DVIアダプタを使って繋げます。
外部ディスプレイを接続した時にはそっちにDockを表示したいのでメニューを移動させる。
f:id:ihiro81:20140513093312p:plain

Dockの設定はこんな
f:id:ihiro81:20140512170954p:plain

ターミナルから設定

.DS_Store は邪魔になるので作成されないようにします。

$ defaults write com.apple.desktopservices DSDontWriteNetworkStores true

macを再起動すると適応されます。

インストールしたアプリ

Dropbox

https://www.dropbox.com/
同期に時間かかるので最初のほうでやっておく。

Evernote

http://evernote.com/intl/jp/evernote/
これも同期にちょっとかかるので最初のほうでやる。

Google Chrome

http://www.google.co.jp/intl/ja/chrome/browser/
メインのブラウザ
Speed Dial2 の設定をエクスポート・インポートするくらい。

Google 日本語入力

http://www.google.co.jp/ime/
ことえりは邪魔になるので削除しておきましょう。

Google ドライブ インストール

あんまり使ってないけど一応入れてます。

AppCleaner

http://www.freemacsoft.net/appcleaner/
アプリを綺麗に削除するのに使う。
キャッシュとか設定ファイルとかを検索してくれる。

ClipMenu

http://www.clipmenu.com/ja/
クリップボード履歴とか定型文の管理に。

Skitch

http://evernote.com/intl/jp/skitch/
マニュアル作成したり、画像にちょっとした注釈入れたい場合に使ってます。

Alfred

http://www.alfredapp.com/
ランチャー
あんまり使いこなせてない...

XtraFinder

http://www.trankynam.com/xtrafinder/
Finder拡張
ノーマルだと使いづらいFinderをデキる子にしてくれる。
設定内容はこんな感じにしてます↓
f:id:ihiro81:20140513060445p:plain
f:id:ihiro81:20140512171546p:plain
f:id:ihiro81:20140513061022p:plain

KeyRemap4MacBook

https://pqrs.org/macosx/keyremap4macbook/index.html.ja
USキーボードのIME切り替えの設定を変更。
左右のcommandボタンをそれぞれ英数/ひらがなにしてます。

Sophos

http://www.sophos.com/ja-jp/products/free-tools/sophos-antivirus-for-mac-home-edition/download.aspx
ウィルス対策アプリ
前はClamXavを入れてたけど、こっちのほうが軽いらしい。

VLC

http://www.videolan.org/vlc/
動画閲覧
ISOもそのまま見れる。

ScanSnap

http://scansnap.fujitsu.com/jp/downloads/mgr/
Mac用のドライバを入れました。

夜フクロウ

Twitterクライアント
Apple Store から入れました。
TweetDeck使ってたけどなんとなく変更してみた。

開発用にインストールしたアプリ

Sublime Text3

http://www.sublimetext.com/3
前まで 2 使ってたけど、この際なので 3 を入れてみました。
どう違うのかはよくわからない…。

Coda / Coda2

Apple Store から入れる。
メインは Sublime Text だけど、購入しちゃったし、一応入れておく。

Xcode

Apple Store から入れる。
直近で使う予定ないけど、そのうちなにかしら必要になるでしょう。

Transmit

http://panic.com/jp/transmit/
Apple Store から入れる。
サーバーをマウントできてすごい便利!

VirtualBox

https://www.virtualbox.org/wiki/Downloads
仮想化ソフトウェア
Vagrant 使ってアプリごとに環境構築してます。

Vagrant

http://www.vagrantup.com/downloads.html
LAMPRailsなどの開発は mac 上には構築せず、Vagrant + VirtualBox で環境作って開発する。
/Users/{username}/VirtualBox VMs に仮想マシンのデータが入ってるので、コピーして持ってくる。

Parallels

Mac上でWindowsを使えるようにしたいのでParallelsを購入しました。

VirtualBox と相性悪くて同時に起動できないことが発覚。
VirtualBox のバージョンを4.3.12にすると同時に起動できるのでバージョン落として使ってます。

VirtualBox 最新版では解消されてるけど OSX Mavericks で VirtualBox を起動するとMacをシャットダウンできなくなる。
VirtualBox を再起動させてからならシャットダウンできるので、毎回シャットダウン前に以下のコマンドでVirtualBoxを再起動する必要あり。めんどください!

$ sudo /Library/StartupItems/VirtualBox/VirtualBox restart

VMware Fusion ならこの不具合はでないらしいので失敗した。

Windows でよく使ってるもの

Sequel Pro

http://www.sequelpro.com/
MySQLGUIクライアント
phpMyAdminを使うことが多かったけど、使いやすくてよい。

SourceTree

Git GUIクライアント
ターミナルでコマンド操作してたけど、GUIも試してみる。

MBAからのデータ移行

AirDropで移動させました。
外付けHDDがNTFSでフォーマットされてて書き込めなかったので/(^o^)\
exFatでフォーマットしたいけど、退避させておくHDDもないしどうしよぅ。

まとめ

こんな感じでアプリケーション入れたり、簡単な設定したりしました。
Windowsデスクトップを処分、MBAだけにして Parallels を導入したのが一番大きな変更点です。
その他は旧MBAの時から利用してるものばっかり。

いやー久しぶりに初期セットアップを行って、整理できてスッキリしました。

3年周期くらいで買い替え行ってますけど、このくらいの頻度でやるといいですね!

では。