Sublime Text 3よく使うショートカット、設定など
ショートカット
- ctrl + p ファイル名検索
- ctrl + r シンボル検索
- ctrl + shift + r プロジェクト内でシンボル検索
- F12 タグジャンプ
- shift + ctrl + k 行ごと削除
その他の操作
- カーソルのある行ごとコピペ、カットできる
- ctrl押しながら選択で複数選択できる
シンタックスエラー確認(PHP)
Tools > Build System > New Build System で、
{ "path": "/usr/local/bin:$PATH", "cmd": ["php", "-l", "$file"], "selector": "source.php" }
と記載してPHP.sublime-build
という名前で保存
Tools > Build System -> PHP を選択
Mac
/Users/ユーザ名/Library/Application Support/Sublime Text 3/Packages/PHP.sublime-build
追記
Windowsの場合
{ "path": "C:\\php", "cmd": ["php", "-l", "$file"], "selector": "source.php" }
設定ファイル
C:\Users\ユーザ名\AppData\Roaming\Sublime Text 3\Packages\User\PHP.sublime-build
.pagespeed.ic.xxxx.webp というキャッシュが残り続ける
PageSpeed Insights (with PNaCl) を使ったせいなのか…?
画像のwebpキャッシュがずーと消えない…
サーバーの
/var/cache/mod_pagespeed/v*
の下をごっそり消したら消えました。
とっても面倒くさい…
Vagrant Error 'Failed to mount folders in Linux guest.'
環境
- Mac OS X 10.10.5
- Vagrant 1.7.2
- VirtualBox 4.3.28
- ゲストOS -> CentOS Linux release 7.2.1511
エラーの内容
Failed to mount folders in Linux guest. This is usually because the "vboxsf" file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly. The command attempted was: mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3`,dmode=777,fmode=777 vagrant /vagrant mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant`,dmode=777,fmode=777 vagrant /vagrant The error output from the last command was: mount: unknown filesystem type 'vboxsf'
ゲストOSにGuest Additions をインストールする必要があるようです。
ゲストOS(CentOS)にmake,gcc,kernel-devel,wgetをインストール
$ sudo yum install -y make
$ sudo yum install -y gcc
$ sudo yum install -y kernel-devel
sudo yum install -y wget
ゲストOS(CentOS)で、Guest Additions をインストール
リムーバブル媒体(media)のマウントポイント(/media)にGuest Additions 用のディレクトリを作成
$ sudo mkdir -p /media/VirtualBoxGuestAdditions
GuestAdditionsのisoをダウンロード(ローカルのVirtualBox 4.3.28 合わせる)
$ cd /media $ sudo wget http://download.virtualbox.org/virtualbox/4.3.28/VBoxGuestAdditions_4.3.28.iso
isoをマウントする
$ ll total 56880 -rw-r--r--. 1 root root 58241024 May 13 2015 VBoxGuestAdditions_4.3.28.iso drwxr-xr-x. 2 root root 4096 Jun 23 12:20 VirtualBoxGuestAdditions
$ sudo mount -t iso9660 -o loop VBoxGuestAdditions_4.3.28.iso VirtualBoxGuestAdditions/ mount: /dev/loop0 is write-protected, mounting read-only
マウントされているか確認
$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38765936 1234024 35539620 4% / devtmpfs 239636 0 239636 0% /dev tmpfs 250548 0 250548 0% /dev/shm tmpfs 250548 8508 242040 4% /run tmpfs 250548 0 250548 0% /sys/fs/cgroup /dev/sda2 487634 121116 336822 27% /boot tmpfs 50112 0 50112 0% /run/user/0 tmpfs 50112 0 50112 0% /run/user/1000 /dev/loop0 56876 56876 0 100% /media/VirtualBoxGuestAdditions
Guest Additions をインストール
$ sudo /media/VirtualBoxGuestAdditions/VBoxLinuxAdditions.run Verifying archive integrity... All good. Uncompressing VirtualBox 4.3.28 Guest Additions for Linux............ VirtualBox Guest Additions installer Copying additional installer modules ... Installing additional modules ... Removing existing VirtualBox non-DKMS kernel modules [ OK ] Building the VirtualBox Guest Additions kernel modules Building the main Guest Additions module [ OK ] Building the shared folder support module [ OK ] Building the OpenGL support module [FAILED] (Look at /var/log/vboxadd-install.log to find out what went wrong) Doing non-kernel setup of the Guest Additions [ OK ] Installing the Window System drivers Could not find the X.Org or XFree86 Window System, skipping.
OpenGL でエラーが出ていますが、とりあえず無視…
Guest Additions が有効か確認する
$sudo mount -t -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3`,dmode=777,fmode=777 vagrant /vagrant $sudo mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant`,dmode=777,fmode=777 vagrant /vagrant
どうやら大丈夫そうです。
再度vagrant up したら今度はエラー出ませんでした。
かなり怪しい解決方法ですが、以上です。
MySQL Workbench エクスポートで Error 'SQL Error: 1142'
Workbenchでデータのエクスポートを行ったところ、下記のエラーが出ました。
解決方法をメモしておきます。
環境
エラーの内容
Unhandled exception: Error querying security information: Error executing 'SELECT * FROM mysql.user WHERE User='areadbuser' AND Host='danmaketdb.cg1q7zxhwf2x.ap-northeast-1.rds.amazonaws.com' ORDER BY User, Host' SELECT command denied to user 'areadbuser'@'10.0.1.129' for table 'user'. SQL Error: 1142
こらら*1*2の記事を参考にしたところ、vesion 6.3.4 にダウングレードすればなおるようです。
vesion 6.3.7をダウンロードでなおります。
ダウンロードはこちらから -> MySQL :: Download MySQL Workbench (Archived Versions)
以上です。
Homebrew Cask で古いバージョンのパッケージを作成、インストールする
MySQL Workbench 6.3.4 をHomebrew でインストールしたかったのですが、
caskroom/versionsにもパッケージが存在していないかったため、自分で作ることにしました。 *1
Githubに/homebrew-versionsリポジトリ作成
cd $(brew --prefix)/Library/Taps/caskroom/homebrew-versions git remote add <GitHubのユーザ名> https://github.com/<GitHubのユーザ名>/homebrew-versions
Cask のためのトークン(Caskファイルの名称など)を生成
下記のサイトから、6.3.4 のdmgをダウンロードします。
MySQL :: Download MySQL Workbench (Archived Versions)
展開するとMySQLWorkbench.app
というファイル(厳密にはディレクトリ)があります。
Caskファイル名を提案してくれるツールがあるので、
展開したappを引数にして実行します。
$ "$(brew --repository)/Library/Taps/caskroom/homebrew-cask/developer/bin/generate_cask_token" \ '/Applications/MySQLWorkbench.app'
Proposed token: mysqlworkbench Proposed file name: mysqlworkbench.rb Cask Header Line: cask 'mysqlworkbench' do WARNING: the file '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/mysqlworkbench.rb' already exists. Prepend the vendor name if this is not a duplicate.
すでに名前が重複しているという警告がでます。
そこで、末尾に"-634"をつけてmysqlworkbench-634.rb
というファイル名でCaskファイルを作成します。
既存のCask ファイルをコピー
新規作成の場合は、
$ brew cask create アプリ名
で、$(brew --repository)/Library/Taps/caskroom/homebrew-cask/Casks/
配下にファイルが作られますが、
今回は、過去バージョンのパッケージを作るため、
$(brew --repository)/Library/Taps/caskroom/homebrew-versions/Casks/
配下にファイルを作成します。
下記の通り、既存ファイル$(brew --repository)/Library/Taps/caskroom/homebrew-cask/Casks/mysqlworkbench.rb
を
別名のmysqlworkbench-634.rb
で、$(brew --repository)/Library/Taps/caskroom/homebrew-versions/Casks/
配下にコピーします。
$ cd $(brew --repository)/Library/Taps/caskroom/homebrew-versions $ cp ../homebrew-cask/Casks/mysqlworkbench.rb ./Casks/mysqlworkbench-634.rb
新規Caskファイルmysqlworkbench-634.rb
を編集
元ファイルmysqlworkbench.rb
を変更して、mysqlworkbench-634.rb
を作成します。
変更点は以下の3つです。
- 最初の cask の行 -> mysqlworkbench-634
- version の行 -> 6.3.4
- sha256 の行 -> チェックサムの再計算値
チェックサムは以下のように再計算します。
$ shasum -a 256 ~/Downloads/mysql-workbench-community-6.3.4-osx-x86_64.dmg af214391dfc9c6bdb7640bf286732ce7d4500721906d9a0ad3b107db8f15e57a /Users/username/Downloads/mysql-workbench-community-6.3.4-osx-x86_64.dmg
コピー元ファイルmysqlworkbench.rb
の内容
cask 'mysqlworkbench' do version '6.3.6' sha256 '81732bddff9e9d6b71cc565e4d3b4636e0e47db5b344aaef4b7e20c83177d94a' url "https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-#{version}-osx-x86_64.dmg" name 'MySQL Workbench' homepage 'https://www.mysql.com/products/workbench' license :gpl gpg "#{url}.asc", key_id: '8c718d3b5072e1f5' app 'MySQLWorkbench.app' zap delete: [ '~/Library/Application Support/MySQL/Workbench', '~/Library/Preferences/com.oracle.mysql.workbench.plist', '~/Library/Preferences/com.oracle.MySQLWorkbench.plist', '~/Library/Saved Application State/com.oracle.mysql.workbench.savedState', '~/Library/Saved Application State/com.oracle.MySQLWorkbench.savedState', '~/Library/Caches/com.oracle.mysql.workbench', ] end
新規作成したmysqlworkbench-634.rb
の内容
cask 'mysqlworkbench-634' do version '634' sha256 'af214391dfc9c6bdb7640bf286732ce7d4500721906d9a0ad3b107db8f15e57a' url "https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-#{version}-osx-x86_64.dmg" name 'MySQL Workbench' homepage 'https://www.mysql.com/products/workbench' license :gpl gpg "#{url}.asc", key_id: '8c718d3b5072e1f5' app 'MySQLWorkbench.app' zap delete: [ '~/Library/Application Support/MySQL/Workbench', '~/Library/Preferences/com.oracle.mysql.workbench.plist', '~/Library/Preferences/com.oracle.MySQLWorkbench.plist', '~/Library/Saved Application State/com.oracle.mysql.workbench.savedState', '~/Library/Saved Application State/com.oracle.MySQLWorkbench.savedState', '~/Library/Caches/com.oracle.mysql.workbench', ] end
インストールできるか確認
$ brew cask install mysqlworkbench-634.rb ==> Downloading https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-6.3.4-osx-x86_64.dmg ######################################################################## 100.0% ==> Verifying checksum for Cask mysqlworkbench-634 ==> Moving App 'MySQLWorkbench.app' to '/Applications/MySQLWorkbench.app' 🍺 mysqlworkbench-634 staged at '/opt/homebrew-cask/Caskroom/mysqlworkbench-634/6.3.4' (1347 files, 29M)
成功したら、以下の通りチェックして、passed となればOKです。
$ brew cask audit mysqlworkbench-634 --download ==> Downloading https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-6.3.4-osx-x86_64.dmg Already downloaded: /Users/onoeiko/Library/Caches/Homebrew/mysqlworkbench-634-6.3.4.dmg ==> Verifying checksum for Cask mysqlworkbench-634 audit for mysqlworkbench-634: passed
Caskファイルの変更をプルリクエストする
せっかく作成したので、他の人にも使ってもらえるよう、
Githubでプルリクエストをします。
# Gitリポジトリ $ cd $(brew --repository)/Library/Taps/caskroom/homebrew-versions # 新規ブランチ作成 $ git checkout -b 'mysqlworkbench-634' # コミット $ git add Casks/mysqlworkbench-634.rb $ git commit -v
コミットメッセージを入力します。
(過去のプルリクエスト*4などを参考に、適当なメッセージを入力してください。)
Add MySQL Workbench 6.3.4 # Please enter the commit message for your changes. Lines starting (以下略)
コミットしたら、
GitHub にログインして,caskroom/homebrew-versionsをフォークし、
作成したブランチをプッシュします。
$ git push <ユーザ名> mysqlworkbench-634
※ パスワードはGithubの設定ページ*5から発行したトークンを使用します。(トークン作成にあたって、チェック項目がありますが、とりあえず全部チェックしときました。。)
※ pushでfatal: repository 'https://github.com/<ユーザ名>/homebrew-versions/' not found
と出る場合、参考記事*6の記載の通り、remoteをリセットすると解決するかもです。
プッシュが完了したら、
caskroom/homebrew-versionsからプルリクエストを送信します。
確認、Mergeしてもらうまで待ちましょう。
以上です。
追記
古いバージョンは明示的な理由がないと追加しないということで、Mergeしてもらえませんでした。。
古いバージョンを追加する場合は、追加理由をコミットメッセージか、プルリクエストのコメントに記載したほうが良さそうです。
MySQL Workbench 'mysqldump Version Mismatch'
Workbenchでデータのエクスポートを行ったところ、下記のエラーが出ました。
解決方法をメモしておきます。
環境
エラーの内容
/Applications/MySQLWorkbench.app/Contents/MacOS/mysqldump is version 5.7.9, but the MySQL Server to be dumped has version 10.0.17. Because the version of mysqldump is older than the server, some features may not be backed up properly. It is recommended you upgrade your local MySQL client programs, including mysqldump to a version equal to or newer than that of the target server. The path to the dump tool must then be set in Preferences -> Administrator -> Path to mysqldump Tool:
ローカルのmysqldump Toolのバージョンがサーバーと合っていないことが原因のようです。
サーバーの version 10.0.17. ということで、ローカルにMariaDBをインストールします。(Homebrewを使っています。)
ローカルにMariaDBをインストール
$ brew install mariadb ==> Downloading https://homebrew.bintray.com/bottles/mariadb-10.1.14.yosemite.bottle.tar.gz ######################################################################## 100.0% ==> Pouring mariadb-10.1.14.yosemite.bottle.tar.gz ==> Caveats A "/etc/my.cnf" from another install may interfere with a Homebrew-built server starting up correctly. To connect: mysql -uroot To have launchd start mariadb now and restart at login: brew services start mariadb Or, if you don't want/need a background service you can just run: mysql.server start ==> Summary 🍺 /usr/local/Cellar/mariadb/10.1.14: 573 files, 131.6M
Workbenchのmysqldump Tool のパスを設定する
インストールが完了したら
MySQLWorkbench -> Preferences -> Administrator -> Path to mysqldump Tool:
に、
/usr/local/Cellar/mariadb/10.1.14/bin/mysqldump
と入力すればOKです。
以上です。
こちらの記事を参考にしました。