HomebrewでVirtualBoxをアップデートしたら躓いた話
タイトルの通り、HomebrewでVirtualBoxをアップデートしようとしたらエラーと遭遇してしまったので、その様子と対応策をメモしておく。
環境
- macOS Mojave
- Homebrew 1.8.5
- virtualbox 5.2.18,124319 (これを5.2.22,126460にアップデートしようとした)
叩いたコマンド
$ brew cask upgrade virtualbox
表示されたエラー
Welcome to the VirtualBox uninstaller script. Warning! Found the following active VirtualBox processes: 8802 501 VBoxXPCOMIPCD 8804 501 VBoxSVC 8838 501 VBoxHeadless 8842 501 VBoxNetDHCP We recommend that you quit all VirtualBox processes before uninstalling the product. And the following KEXTs will be unloaded: org.virtualbox.kext.VBoxNetFlt org.virtualbox.kext.VBoxDrv And the traces of following packages will be removed: org.virtualbox.pkg.vboxkexts org.virtualbox.pkg.virtualbox org.virtualbox.pkg.virtualboxcli The uninstallation processes requires administrative privileges because some of the installed files cannot be removed by a normal user. You may be prompted for your password now... unloading org.virtualbox.kext.VBoxNetFlt (kernel) Kext org.virtualbox.kext.VBoxNetFlt did not stop (return code 0x5). (kernel) Kext org.virtualbox.kext.VBoxNetFlt can't unload - module stop returned 0xdc008017. Failed to unload org.virtualbox.kext.VBoxNetFlt - (libkern/kext) kext (kmod) start/stop routine failed. An error occurred durning 'sudo /sbin/kextunload -m org.virtualbox.kext.VBoxNetFlt', there should be a message above. (rc=3) unloading org.virtualbox.kext.VBoxDrv (kernel) Can't remove kext org.virtualbox.kext.VBoxDrv; services failed to terminate - 0xdc008018. Failed to unload org.virtualbox.kext.VBoxDrv - (libkern/kext) kext is in use or retained (cannot unload). An error occurred durning 'sudo /sbin/kextunload -m org.virtualbox.kext.VBoxDrv', there should be a message above. (rc=3) Failed to unload one or more KEXTs, please reboot the machine to complete the uninstall. Error: Failure while executing; `/usr/bin/sudo -E -- /usr/local/Caskroom/virtualbox/5.2.18,124319/VirtualBox_Uninstall.tool --unattended` exited with 1. Here's the output:
もう少し長くエラーが吐き出されていたけれど中略
原因
- VirtualBox関連のプロセスで動き続けているものが残っていたため、アップデートできなかった模様
対応
- VirtualBox関連のプロセス(VBoxXPCOMIPCD・VBoxSVC・VBoxHeadless・VBoxNetDHCP)を殺す
- その後
$ brew cask reinstall virtualbox
を叩く(upgradeでもいいかも)
macOSにインストールしている便利アプリ一覧
某所でリクエストがあったので、macOS Sierraに入れているアプリで便利なものをピックアップしてリストアップ。
- 副作用等が強そうなアプリは念の為除外した(OnyXとか)
- 基本無料!
- Homebrewでインストールできるものに関してはコマンドもご用意
アプリ一覧
-
- macOSにインストールしたアプリを削除する際に、関連するゴミファイルごと削除してくれるやつ
brew cask install appcleaner
-
- コマンドキーを押下し続けることで、アクティブなアプリのショートカット一覧をポップアップ表示してくれるやつ
brew cask install cheatsheet
-
- アプリの切り替えをキーボードショートカットで行う際、アプリごとではなく起動しているウインドウごとに切り替えてくれるやつ
brew cask install hyperswitch
-
- Markdownエディタ
brew cask install macdown
-
- Markdownでスライドを作成できるやつ
brew cask install marp
-
- 基本的にCtrl+Qにアプリ終了が割り振られているが、Ctrl+Wと間違ってしまうケースが多い
- そこで、Ctrl+Qを長押しすることでこの効果を発動するようにするやつ
brew cask install qblocker
-
- 表示しているウインドウサイズを、ディスプレイの左半分・画面全体・右半分に切り替える事ができるアプリ
- キーボードショートカットはそれぞれ、
Ctrl+h
,Ctrl+j
,Ctrl+l
- 有料
-
- macOSのディスプレイスリープを一時的に無効にするアプリ
- 任意のタイミングで切り替えるだけでなく、無効にする時間を指定できたりもする
brew cask install theine
-
- zip等の圧縮ファイルを展開するためのアプリ
- 7z等の新しい拡張子にも対応
- Windowsから送られてきた圧縮ファイルが文字化けしている・展開できないというトラブルを軽減できる
brew cask install the-unarchiver
それでは皆様よきMacライフを!
UserScriptをお気に入りのエディター/IDEで編集する方法 @Tampermonkey
前回も書いたが、最近はUserScriptを書いている。 実行環境はだいたいTampermonkeyなのだが、この拡張内のJavaScriptエディターがやや貧弱な点が気になった。設定からいくらか利便性を向上させることはできるが、やはり使い慣れたツールには敵わない。
そこでUserScriptを使い慣れたエディターやIDEで書きたいと感じたのだが、その方法が分かったのでブログにまとめておくことにする。
TL;DR
- Tampermonkeyの
ファイルの URL へのアクセスを許可する
のチェックを入れる。 - TampermonkeyにラッパーとなるUserScriptをインストールし、ローカルにあるUserScriptを@requireする。
- ローカルにあるUserScriptを、好きなエディター/IDEで編集する。
動作確認
- macOS Sierra
- Google Chrome 68.0.3440.84
- Tampermonkey 4.6
拡張機能画面の設定で ファイルの URL へのアクセスを許可する
にチェック
Chrome拡張機能の管理画面から Tampermonkey
→ 詳細
と進む。
ファイルの URL へのアクセスを許可する
にチェックを入れる。
Tampermonkeyの設定で スクリプトによるローカルファイルへのアクセスを許可する:
の項目を確認
Google Chromeの拡張機能ボタンにある Tampermonkeyアイコン
→ ダッシュボード
→ 設定
とクリック。
全般
カテゴリーの 設定のモード
を 新参者
から、 上級者
に変更(初心者
はダメ)。
セキュリティ
カテゴリーが現れるので、上から3行目の スクリプトによるローカルファイルへのアクセスを許可する
が Externals (@require and @resource)
となっていることを確認する(すべてのローカルファイル
でも目的は果たせるが、不必要にガバガバ設定にする理由はない)。
設定を変更したら、保存ボタンを忘れずにクリックすること!
下拵えはここまで。
TampermonkeyにラッパーとなるUserScriptをインストール
いよいよ本題。
Tampermonkeyに以下のコードをインストールする。ここにはメタ情報しか記述されていないが、これは単なるラッパーなので本体は別に存在させる。
// ==UserScript== // @name wrapper_script_in_tempermonkey // @namespace wrapper_script_in_tempermonkey // @version 0.1 // @description wrapper in tempermonkey // @author You // @match http://*/* // @grant none // @require https://code.jquery.com/jquery-3.3.1.slim.min.js // @require file:///Users/[account]/your/project/path/script_in_local.js // ==/UserScript== // メタ情報以外は不要
@require
の箇所が本コードの肝である。 @require
部分の最後に file:///
で始まる、ローカル内に保存する(した)UserScriptのパスを記述する。
また、jQueryといった外部ライブラリをCDN経由で利用したい場合、ローカルのUserScriptのパスよりも先に読み込んでおく。
ローカル内にUserScriptを用意
Tampermonkeyにインストールしたコード内の @require
のパスに合わせて、ローカルにUserScriptを配置する。これがUserScriptの本体であり、このファイルをお気に入りのエディター/IDEで編集するとOK!
// ==UserScript== // @name script_in_local // @namespace script_in_local // @version 0.1 // @description local // @author You // @match http://*/* // @grant none // ==/UserScript== // メタ情報は無くても構わない (function () { 'use strict'; console.log('hoge'); $('p').css('color','red'); })();
サンプルHTMLとUserScriptを発動させた結果
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>sample-html</title> </head> <body> <p>Sample HTML</p> </body> </html>
参考URL
Tampermonkey内のスクリプトエディターを快適にする方法
最近はUserScriptを書いている。Tampermonkeyに内蔵されているエディターで少し書いてみたが、この拡張の設定画面を覗いてみると色々とこのエディターの機能を調整できるようだったので、本記事でご紹介。
動作確認
- macOS Sierra
- Google Chrome 68.0.3440.84
- Tampermonkey 4.6
Tampermonkeyの設定
Google Chromeの拡張機能ボタンにある Tampermonkeyアイコン
→ ダッシュボード
→ 設定
とクリック。
全般
カテゴリーの 設定のモード
を 新参者
から、 初心者
上級者
に変更。
こうすることで、エディターの設定画面が現れる。
カラーテーマを変更する
エディター
カテゴリー最上部の テーマ
から以下の7種類が選択できる。
- 既定
- Solarized
- Monokai
- MDN-like
- Eclipse
- RailsCasts
- ZenBurn
筆者は Monokai
派。
キーバインドを変更する
エディター
カテゴリー3行目の キー割り当て
から以下の4種類が選択できる。
筆者は Sublime Text
派。
変更を保存する(重要)
エディター
カテゴリー最下部の 保存
ボタンをクリックする。
Tampermonkeyの設定によっては項目の値を変更した時点で自動保存される箇所もあるが、ここではきちんと保存ボタンをクリックすること!
保存ボタンを押すとTampermonkeyの再起動が求められる。
Tampermonkeyの再起動が済んだら設定が反映されて、エディターのテーマやキーバインドが変更されている。
今回はここまで。
関連
WordPressローカル環境ツール「Local by Flywheel」のセットアップが途中でコケる【解決済】
環境
- macOS Sierra (10.12.6)
- Local by Flywheel 2.2.4(執筆当時安定版最新)
- VirtualBox 5.2.10
症状
- Local by Flywheelの初回起動時にセットアップ画面が表示されるが、3番目のLocal Imageからプログレスバーが動かない。
解決方法
- Local by Flywheel 2.3.0 (Pre-release)をインストールする。
- 2.3.0をインストールする前に、Local by Flywheel 2.2.4をアンインストールすることにした。AppCleanerを用いて関連ファイルを含めてアンインストールした。
- また、VirtualBox内に生成されている
local-by-flywheel
という名前の仮想マシンも削除した。/Users/[account]/.docker/machine/machines/local-by-flywheel
も残っていたら削除。