2014/02/06

OSX の pkgutil コマンド

OSX で .pkg 型式のインストーラを実行する時に

このパッケージは、ソフトウェアをインストールできるかどうかを判断するプログラムを実行します。

というメッセージが表示されて インストール可能かをチェックされる場合がある。
多くの場合は問題なくインストールできるのだが、 稀に

より新しいバージョンのソフトウェアがインストールされているのでインストールできません

的なメッセージでインストーラが終了してしまう場合がある。
この様な場合、大抵は /Applications フォルダ等に存在する 該当のアプリケーションを削除するだけで 新しいアプリケーションのインストールが可能となるのだが、 ごくごく稀に削除しただけではインストーラが同じメッセージを表示してしまい インストール出来ない場合がある。

そもそも OSX の場合、アンインストーラが附属する一部のアプリケーション以外は ファインダなどで /Applications フォルダの アプリケーションアイコンをみ箱にドラッグするなどして削除すれば アンインストールできるのだが、 それだけだと設定情報やインストール情報などがシステムに残ってしまう可能性がある。
ところが OSX の標準型式に準拠したインストーラからインストールされたソフトウェアは pkgutil (1) コマンドを利用する事で アプリケーションや設定情報などを完全に消去でき、 殆どの場合は上記インストーラによるチェックも問題なく通過できる様になる。

pkgutil (1) コマンドの基本的な利用方法

  • 現在インストールされているパッケージ名の一覧を表示する。
  • $ pkgutil --pkgs
                

  • 指定したパッケージに含まれているファイルの一覧を表示する。
  • $ pkgutil --files パッケージ名
                

  • 指定したパッケージに含まれているファイルを全て削除する。
  • 実行する場合は管理者権限が必要なので sudo (8) などで 管理者権限を取得する必要がある。

    # pkgutil --unlink パッケージ名
                

  • 指定したパッケージのインストール情報を削除する。
  • 実行する場合は管理者権限が必要なので sudo (8) などで 管理者権限を取得する必要がある。

    # pkgutil --forget パッケージ名
                

pkgutil を実行する事でパッケージのインストール情報を完全に削除できるので、 アプリケーションを完全に削除したい場合は便利。

2013/02/20

xBackup のバックアップデータを自動転送する

cydia 経由でインストールしたアプリケイションをバックアップするために xBackup を導入したのだが、 xBackup はバックアップしたデータを自動では転送できない。
そのままではバックアップデータが iPhone の中にしか存在しないので GoodReader を利用して iTunes による sync の際に自動で転送される様に設定した。

  1. GoodReader で『マイドキュメント』フォルダに バックアップデータを格納するフォルダ 『Backups』を作成する。

  2. Mobile Terminal を利用して GoodReader の ドキュメントフォルダのパスを確認する。
    ドキュメントフォルダは /var/mobile/Applications/ランダムな文字列/Documets に存在しているので ls などを利用してランダムな文字列 を確認する。

  3. ドキュメントフォルダに先ほど作成した 『Backups』 フォルダがある事を確認したら、 xBackup のバックアップ作成ディレクトリを作成して シンボリックリンクを作成する。

    $ mkdir /var/mobile/Library/xBackup
    $ ln -s /var/mobile/Applications/ランダムな文字列/Documents/Backups /var/mobile/Library/xBackup/Backups
                    

  4. xBackup を起動してバックアップを作成する。

  5. バックアップが完了したら iPhone を接続して iTunes を起動する。
    iTune の『デバイス→App』から ファイル共有の『GoodReader』を選択すると GoodReader の書類一覧に Backups が表示されるので 『保存先…』ボタンをクリックして保存先を設定して同期すれば、 指定した保存先に xBackup のバックアップデータが保存される。

ここに書いてある事は多少なりとも専門的な知識を要す内容です。
cydia って何? 」「Mobile Terminal って何?」 「シンボリックリンクって何?」と思われる方は試さない方が良いと思います。

ここに書かれている事を試された際に何が起こっても私は責任を取れません。
あくまでも自己責任だという事を理解された上でお試し下さい。

2012/12/14

Mountain Lion

iPhone を導入した事を切っ掛けに Mountain Lion 化してみた。
見た目や使い勝手は使い慣れた Snow Leopard の方が好きなのだが、 iPhone との iCloud による完全連携の魅力には逆らえない。
世間では既に言い尽くされている事なのだろうが、 「確かに非常に便利で素晴らしい」、というのが第一印象。
例えば iPhone で撮影した画像は自動的に iPhoto に取りこまれていたり、 Mac で編集した連絡先がいつのまにか iPhone でも変更されていたり、 更には複数台の Mac 間で Mail.app のフィルタ設定まで同期されている。
今まで Dropbox や WebDAV とアイデアを駆使して何とか実現してきた事が、 ID を登録するだけでいとも簡単に実現できてしまうのは凄い事だ。

2012/08/01

キーボードショートカットのカスタマイズ

Mac では システム環境設定キーボードキーボードショートカット から アプリケーション毎、もしくはシステム全体で有効な キーボードショートカットが独自に作成できる。
この機能を利用するとメニューに項目があるが ショートカットキーが定義されていない機能に 独自のショートカットキーが簡単に定義できるので非常に便利だ。
但し登録できるショートカットキーに制限があり スペースやバックスペースなどは登録できないので、 KeyRemap4MacBook を組み合わせて利用する事で任意のショートカットが利用できる様に設定する。

例えば プレビュー では ツール メニューから 水平方向に反転垂直方向に反転 などの機能が利用できるが、 これらの機能には標準ではショートカットが定義されていない。
そこで前述の キーボードショートカット 機能を利用して プレビュー水平方向に反転のショートカットや、 垂直方向に反転のショートカットを コントロールやシフトなどとの組み合わせで指定する。
ここでは 水平方向に反転コマンド+シフト+H垂直方向に反転コマンド+シフト+V を登録したとする。
ショートカットが登録できたら プレビュー を起動して 指定したショートカットが正しく動作するか確認しておく。

次に KeyRemap4MacBook でスペースを コマンド+シフト+H に、 バックスペースを コマンド+シフト+V に置き換える設定を行えば、 スペースやバックスペースなどでショートカットが実行可能になる。 この時、キーの置き換えは特定のアプリケーション (今回は プレビュー)だけに限定すると良いだろう。
そのためには KeyRemap4MacBook の Misc & Uninstall から Open private.xml をクリックして以下の設定を追加する。

  1<?xml version="1.0"?>
  2    <root>
  3        <!-- アプリケーション "プレビュー" の定義 -->
  4        <appdef>
  5            <appname>PREVIEW</appname>
  6            <equal>com.apple.Preview</equal>
  7        </appdef>
  8
  9        <!-- "プレビュー" に対するキーマッピングの定義 -->
 10        <item>
 11            <name>Preview Key</name>
 12            <identifier>private.PreviewKeys</identifier>
 13                <only>PREVIEW</only>
 14                <!-- スペースはコマンド+シフト+H に置換 -->
 15                <autogen>--KeyToKey-- KeyCode::SPACE, KeyCode::H, ModifierFlag::COMMAND_L | VK_SHIFT</autogen>
 16                <!-- バックスペースはコマンド+シフト+V に置換 -->
 17                <autogen>--KeyToKey-- KeyCode::DELETE, KeyCode::V, ModifierFlag::COMMAND_L | VK_SHIFT</autogen>
 18        </item>
 19    </root>
    
これらの設定を追加する事で プレビュー 上では スペースは コマンド+シフト+H に置換されてアプリケーションに 通知されるので、 登録したショートカット(水平方向に反転)が実行される事になる。

2012/01/11

OWC SSD for MacBook Air

MacBook Air Late 2010 のディスク容量が逼迫してきていたので、 折からの円高に後押しされ(た事にして) OWC の Mercury Aura Pro Express を購入した。
MacBook Air はその薄さ故か、 通常の HDD タイプの SSD ではなく 独自な専用設計の SSD モジュールを使用している。 そのため汎用的な HDD タイプの SSD は利用できず、 Apple からは交換用の SSD モジュールは発売されていないのだが、 OWC では互換性のある交換用の SSD モジュールを販売しているので、 それらの SSD モジュールのうち 240GB のものを購入した。

国内でも OWC の SSD モジュールを扱っている販売店はあるのだろうが、 折から円高でもあるので OWC のサイトから普通に購入する。
取り外した純正の SSD モジュールを外付けディスクとして流用するための インタフェイスボックスを同時購入すると多少割引になるとの事なので、 折角なのでそれも同時に購入する事にする。
大体 1 ドル 88 円弱の換算となったので 送料を払った上でも国内で購入するよりも随分と格安にて購入できた。

交換自体は非常に簡単なので困ったり迷ったりする事もなく順調に作業完了。
OWC の Web Site でも 機種毎の交換作業の動画 が公開されていので 一通り閲覧しておけば作業の手順もつかめるので良いだろう。

  1. TimeMachineを利用したバックアップ

    今回は USB 接続の外付け HDD に TimeMachine を利用して バックアップを取得した。

  2. 裏蓋の取外し

    MacBook Air の裏蓋はペンタローブという 特殊な形式のネジが使用されているが、 SSD に同梱されている専用のドライバを利用すれば簡単に ネジをはずす事ができる。

    Image: RIMG0517.JPG

    裏蓋を外した状態

  3. SSD モジュールの取外し

    トルックスネジで固定されているオリジナルの SSD モジュールを これも同梱されてる専用のドライバを利用してゆるめると、 オリジナルの SSD は簡単にはずれる。

    Image: RIMG0518.JPG

    オリジナルの SSD モジュール

  4. SSD モジュールの組み付け

    OWC の SSD モジュールをオリジナル同様に差し込んで、 トルックスネジを締め付けて固定すれば完了。

    Image: RIMG0520.JPG

    OWC の SSD モジュール

  5. 裏蓋の組み付け

    取り外した裏蓋を組み付ける。 ネジは仮締めしておき、最後に対角線上のネジを 交互に本締めするのがコツ(というか基本ですね)。

  6. 環境の復元

    環境をバックアップした外付け HDD を接続した状態で MacBook Air に標準添付される USB メモリから起動。 自動で実行されるインストーラのバックアップから復元 を選択して新しい SSD に環境をレストアして作業完了。

環境の復元まで全て終了したら MacBook Air を起動すると、 無事に新しい SSD への移行が完了。
システムプロファイラシリアル ATA の項目を確認すると OWC Merucry Aura Pro Express SSD と表示されている。
但し、現在の Mac OS X (10.6.8) では社外品の SSD に対する trim 機能は無効とされてしまっているので、 システムプロファイラTRIM サポート項目は いいえと表示されている。
この状態でも勿論利用可能なのだが、 折角高速な SSD の機能を最大限に使うために Trim Enabler を利用して trim 機能を有効にして再起動する。
再度 システムプロファイラ 上で確認すると、 今度は TRIM サポートはいと表示されるので、 SSD の性能が最大限に活用できる気がして嬉しい。

2011/09/17

Mac OS X Lion on VMware Fusion 4

すっかり世間の話題からは乗り遅れた感があるが、 そろそろ Mac OS X Lion を使ってみたくなってきた。
しかし、現在使用している Snow Leopard から 操作性が大きく変更になったと噂で聞いているので、 自宅でメイン環境として利用している MacBook Pro や 職場で生活環境、かつ開発環境として利用している iMac 27″ に Lion を導入する事は躊躇していた。
しかし、Mac OS X Lion をゲスト OS として正式にサポートした VMware Fusion 4 が発売されたので、 まずは VMware Fusion 4 の仮想環境に Mac OS X Lion をインストールして 操作性などを検証してみる。

少なくとも現状では旧バージョンの VMware Fusion からの 優待アップグレードなどは存在しない様なので新規購入する必要がある様だ。

I have a previous version of Fusion (1.x, 2.x, or 3.x.). Am I eligible to purchase an upgrade to Fusion 4?

There is no upgrade option for VMware Fusion 4. You may purchase a full license from our VMware online store. Licenses cost $49.99 USD (for a limited time only).

VMware Knowledge Baseより

期間限定ではあるが新規購入でも 49.99 USD と格安なので アップグレード並の低価格ではあるが…。

VMware Fusion は日本では以前より act2 が正規代理店として発売しているが、 MacUpdate のクーポン を利用して直接 VMware 社のサイトから USD の決済でダウンロード購入すると 10 USD ディスカウントとなり 39.99 USD で購入が可能となるので、 迷わず VMware 社サイトのオンラインストアにてダウンロード版を購入する。
ちなみに VMware Fusion は完全に国際化されているので、 日本で購入しなくてもインストーラからちゃんと日本語で表示される。

円高なので約 3,000 円程度で最新の仮想環境が入手できるのは素晴らしい。
Mac OS X Lion は AppStore からこちらもダウンロード販売で購入する。
こちらは円高の恩恵は受けられなかったのだが、 元々安価で提供されているのでそれほど気にならない。

VMware Fusion 4 を起動して新規仮想マシンアシスタントを起動したら、 インストールメディアの選択画面でダウンロード購入した Mac OS X Lion のインストーラを指定すれば簡単にインストールでき、 Mac OS X Lion の動作する検証用の仮想環境が構築できる。

肝心の Mac OS X Lion の操作性だが、 今は慣れていないのでまごつく事も多々あるのだが、 慣れれば良いのかな?というのが現状の感想。
もう暫く仮想環境で Lion の使い方に慣れたら 実マシンを Lion に移行してみようかとは思っている。

2011/08/12

Mac で Planex URS-03 (USB-Serial 変換アダプタ) を利用する

Planex URS-03 もメイカーは Mac 用のドライバを提供していないが、 利用しているチップセットのメイカー (Prolific Technology Inc. 社) の Web サイト から Mac 用のドライバをダウンロードしてインストールした上で、 ドライバの Info.plist ファイルに URS-03 の Vendor ID と Product ID を登録する事で正しく利用できる様になる。
URS-03 の場合は /dev/tty.usbserial という デバイスとして認識されるので、 このデバイスを利用して通信する事ができる様になる。

URS-03 の Vendor ID と Product ID はアダプタを接続した状態で、 以下のコマンドを実行して PL2303 を検索する事で取得可能である。

# /usr/sbin/ioreg -l | less
	
X code がインストールされている場合は /Developer/Applications/Utilities/USB Prober.app を実行して Conposite device from ATEN International Co. Ltd. を検索すれば、 Device Descriptor セクションから取得可能である。

URS-03 の Vendor ID は 1367(10)、 Product ID は 8200(10) なので、 Info.plist の内容を以下の様に修正する。

  1<?xml version="1.0" encoding="UTF-8"?>
  2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3<plist version="1.0">
  4    <dict>
  5        <key>CFBundleDevelopmentRegion</key>
  6        <string>English</string>
  7        <key>CFBundleExecutable</key>
  8        <string>ProlificUsbSerial</string>
  9        <key>CFBundleGetInfoString</key>
 10        <string>ProlificUsbSerial v2.2.0, Copyright 2006 Prolific Technology Inc.</string>
 11        <key>CFBundleIdentifier</key>
 12        <string>com.prolific.driver.PL2303</string>
 13        <key>CFBundleInfoDictionaryVersion</key>
 14        <string>6.0</string>
 15        <key>CFBundleName</key>
 16        <string>Mac OS X Driver for Prolific USB-to-Serial Bridge Device</string>
 17        <key>CFBundlePackageType</key>
 18        <string>KEXT</string>
 19        <key>CFBundleShortVersionString</key>
 20        <string>2.2.0</string>
 21        <key>CFBundleSignature</key>
 22        <string>????</string>
 23        <key>CFBundleVersion</key>
 24        <string>2.0.0</string>
 25        <key>IOKitPersonalities</key>
 26        <dict>
 27                <key>067B_2303</key>
 28                <dict>
 29                        <key>CFBundleIdentifier</key>
 30                        <string>com.prolific.driver.PL2303</string>
 31                        <key>IOClass</key>
 32                        <string>com_prolific_driver_PL2303</string>
 33                        <key>IOProviderClass</key>
 34                        <string>IOUSBInterface</string>
 35                        <key>bConfigurationValue</key>
 36                        <integer>1</integer>
 37                        <key>bInterfaceNumber</key>
 38                        <integer>0</integer>
 39                        <key>idProduct</key>
 40                        <integer>8200</integer>              <!-- 変更 -->
 41                        <key>idVendor</key>
 42                        <integer>1367</integer>              <!-- 変更 -->
 43                </dict>
 44        </dict>
 45        <key>OSBundleLibraries</key>
 46        <dict>
 47                <key>com.apple.iokit.IOSerialFamily</key>
 48                <string>1.0.4</string>
 49                <key>com.apple.iokit.IOUSBFamily</key>
 50                <string>1.8</string>
 51                <key>com.apple.kpi.iokit</key>
 52                <string>10.0.0</string>
 53                <key>com.apple.kpi.libkern</key>
 54                <string>10.0.0</string>
 55                <key>com.apple.kpi.mach</key>
 56                <string>10.0.0</string>
 57        </dict>
 58    </dict>
 59</plist>
    
これで kextload (8) を実行してドライバをロードすると URS-03 が無事に利用可能となる。

ただし、本来サポート対象のものを無理矢理利用しようとしているので、 URS-03 を接続した際にカーネルモジュールを自動でロードできない。 そこで 起動時に任意のコマンドを実行する 機能で起動時にカーネルモジュールをロードする設定を追加すると URS-03 を接続するだけで利用可能になる。

2011/06/27

MacBook Air のアップデート不具合

Mac OS X のアップデート 10.6.8 がリリースされていたので、 手元にある MacBook Air (Late 2010) でもアップデートを実施した。
MacBook Pro(Eary 2011) や職場の iMac 27″ (Late 2009) では 何も問題が発生しなかったのだが、 何故か MacBook Air だけは問題が発生してしまった。

10.6.8 へのアップデートは一見正常に終了したかに見えたが 最初の再起動ではログイン画面が表示されるまでに非常に時間がかかり、 なんとなく「イヤな予感」がしていたのだが、 ログイン画面が表示された瞬間に「イヤな予感」が的中した事を知った。
ログイン画面は白い半透明のフィルターがかかった様に表示されており、 マウスカーソルの移動はできてもクリックやキー入力は全くできなかった。
しょうがないので電源ボタンの長押しでシャットダウンして再度起動してみると、 やはりログイン画面が表示されるまでに非常に時間がかかり ログイン画面は今度は普通に表示されたのだが、 先ほど同様マウスカーソルの移動のみが可能でクリックやキー入力は 全く出来ない状況に変わりはなかった。

PRAMクリア
そこで電源スイッチを入れた直後に 『Command』+『Option』+『P』+『R』を同時に押して、 もう一度起動音が聞こえるまでキーを押し続ける PRAM クリアを実施してみるが状況は改善されない。
シングルユーザモード
次に電源スイッチを入れた直後に 『Command』+『S』を同時に押してシングルユーザモードで起動し、 Applejack を実行して ファイルシステムの整合性検証 (fsck)や アクセス権の修復などを実施してみるが状況は全く改善されない。
セーフブート
最後は起動音と同時に 『Shift』キーを押して起動する セーフブートを試みると何とかセーフモードで起動できたので、 ソフトウェアアップデートを確認してみると 10.6.8 が適用されていない状況だった。 そこで Apple のサイトから 10.6.8 のアップデータをダウンロードして 手動でインストールしてみたところ無事に起動できた。

PRAM クリアやアクセス権の修復では復旧できない障害はめずらしいが、 セーフモードで起動して回復できたので良しとする。
同じ症状で困っている人がいるかもしれないので記事として残しておきます。

2011/05/19

Mac でシリアルターミナル

ルータなどのネットワーク機器の設定を行う場合や、 ディスプレイを接続しないでサーバ運用しているマシンの作業など、 シリアル接続をする必要は少なくなったとは言えまだまだ作業する機会はある。
しかし Mac Book (というか現在発売している殆どの Laptop) には 既にシリアル端子などは装備されていないので、 USB シリアル変換アダプタを利用して接続する必要がある。

メーカーが公式に Mac 対応を表明しているアダプタもあるが、 手持ちの Arvel SRC06-USB は 利用しているチップセットのメイカー (Future Technology Devices International Ltd. 社) の Web サイト から Mac 用のドライバをダウンロードしてインストールすると 正しく利用できる様になった。
ドライバをインストールした後でアダプタを接続すると、 /dev/tty.usbserial-FTEHW36L というデバイスが自動で生成されたので、 このデバイスを利用して通信する事ができる様になる。

通信に利用するターミナルソフトは 標準でインストールされている cu (1) や screen (1) を利用するのが手軽だ。
screen (1) を利用する場合は以下の様に起動すると接続できる。 切断する時は コマンド文字+k を入力すればよい。

$ screen /dev/tty.usbserial-FTEHW36L 9600
    
ここでは指定していないがフロー制御やパリティチェックの有無、 ストップビット長などシリアル通信で必要と思われる設定は一通り指定できる。
普段からターミナルで screen (1) を利用している場合は ~/.screenrc defkanji utf などと記述してあるだろうが、 シリアル接続の相手が EUC や MS 漢字コードのなどの場合は ~/.screenrc に以下の記述をして コマンド文字+Eコマンド文字+U を入力する事で screen の表示コードが変更できるので便利だろう。
bind E encoding euc
bind S encoding sjis
bind U encoding utf
	

ファームウェアの転送など XMODEM を利用したファイル転送が必要な場合は、 内部で kermit (1) を呼び出して様々な転送処理が実行できる 多機能な通信端末 minicom (1) をインストールすると便利になると思う。

2011/04/22

国立商店 オイルドレザースリーブ

普段から毎日持ち歩いている MacBook Air なので、 鞄の中で美しいアルミニュームボディーが傷ついたりしない様に 国立商店の職人が作るオイルドレザースリーブ を購入した。

Image: RIMG0232.JPG

職人が作るオイルドレザースリーブ

オイルドレザーなので持った時の肌触りがしっくりと手に馴染み、 内側に貼られた肉厚フェルトが MacBook Air をしっかりと保護してくれる感じで安心感がある。 国立商店の製品は以前購入した MacBook 13″ 用のケースに続き 2 個目となるので、 手元に届く前から品質と素晴らしさは信頼していたのだが、 改めて手に取るとその信頼を凌駕する程の製品でより一層嬉しくなる。


Copyright © Mitzyuki IMAIZUMI 2008,2009. All rights reserved.