2013-10-20

Windows で chef 11.6.2 がインストール出来ない件

Windows で chef 11.6.2 をインストールしようとするとエラーが出る件について、mixlib-shellout 1.2.0 のリリースで chef の側の依存関係が時代に取り残されたように思います。以下のような依存関係解決失敗を表すエラーが出ます。

C:\Users\Hideki>gem install chef
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: chef requires windows-pr (= 1.2.1), win32-process (= 0.6.5); win32-service requires
windows-pr (>= 1.0.8); win32-dir requires windows-pr (>= 1.0.9); mixlib-shellout requires win32-process (~> 0.7.0), wind
ows-pr (~> 1.2.2)

chef 11.8.0.rc0 の chef-x86-mingw32.gemspec を読んでみると問題の根幹になっていた mixlib-shellout の依存関係が更新されて直っているようなので、2013/10/20 時点で未リリースですがこれを以下の手順でインストールしてみました。上手く動いている気がします。

git clone https://github.com/opscode/chef.git
git checkout 11.8.0.rc.0
gem build chef-x86-mingw32.gemspec
gem install chef-11.8.0.rc.0-x86-mingw32.gem

2013/11/16 追記
2013/10/31 に chef 11.8.0 がリリースされて解決済みです。

Windows で knife-solo を使う (msys-rsync 編)

knife-solo はリモート側へのレシピ転送に rsync を使っています。この肝となる rsync を Windows でどう用意するかが鍵ですが、現状選択肢は2つあって、Cygwin の rsync と MSYS の rsync です。

MSYS 版と比べて Cygwin 版の rsync は特にディレクトリエントリの取得の辺りが特に遅いように感じます。よって MSYS の rsync を使いたいところですが、knife-solo は Windows では /cygdrive/c/... というパスに 変換して渡してくれる 親切な仕組みがあるので、デフォルトのままの msys-rsync だと上手くいきません。

本来は knife-solo の側が気を利かせるべきかもしれませんが、とりあえず急場をしのぐ方法として、MSYS の fstab (C:\MinGW\msys\1.0\etc\fstab) に対して /cygdrive/c に C:\ をマウントする設定を入れてしまうか、mklink で NTFS 上にシンボリックリンクを張ると良いみたいです。リンクを張る場合は、C:\MinGW\msys\1.0\cygdrive\c => C:\ とすればよいです。

FON2405E プリシェアードキー設定の問題について

ソフトバンクから大量に配られた FON2405E (Fonera SIMPL) ファームウエアバージョン 4.0.1.7 では、MyPlace 用の鍵について、なぜかプリシェアードキー (PSK; Pre Shared Key; 事前共有鍵) 文字列指定の場合は56文字までは問題なく利用可能で、それ以上設定した場合は先頭から56文字が黙って使われる奇怪な仕様のようです。

WPA / WPA2 の仕様上はプリシェアードキーを ASCII で指定する場合、8文字~63文字の中で任意の長さの文字列が使用可能なので、Fonera の側に問題があるように思います。

Windows 8.1 でネットワーク設定をプライベートに変更する

Windows 8.1 でネットワーク設定をプライベート (同一ネットワークの機器を信頼する設定) にする方法はモダン UI の PC 設定 > ネットワーク で、「デバイスとコンテンツの検索」オプションを有効に設定します。

このオプションが見当たらない方は、ユーザー種別が管理権限を持たない標準ユーザーであるか、ユーザーアカウント制御 (UAC) 設定が「常に通知する」の設定になっている可能性があります。この何れかに当てはまると「デバイスとコンテンツの検索」オプションが表示されなくなるようです。

参考画像


モダン UI はセキュリティ強化により UAC プロンプトを経由した管理者権限の取得が出来ないことは了承できますが、理由を説明することなく設定項目を隠すのは良くないと思います。PC のリフレッシュと再インストール機能も UAC が最高レベルになっていると同じ理由で使用できなくなりますが、こちらは「ユーザー アカウント制御がシステムの変更について常に通知する設定になっているため、この機能は使えません」という注意書きが出ます。

公式情報
共有を有効または無効にする - Microsoft Windows ヘルプ

関連情報
このネットワーク設定は PowerShell からも設定可能で、こちらを使うと設定項目が消滅してしまったネットワーク名の変更も可能です。
Microsoft TechNet - Set-NetConnectionProfile
Newsletter #106:Solving the "How Do I Change My Firewall Profile in Windows 8?" Puzzle