新しいPCが届いたのでWindowsを消してUbuntuをインストールした

また PC 買ったのかといわれそうだけど、これは予定通り。去年買ったノートPC が予定外だったのだ。
新しい PC は Ubuntu をインストールして宅内ネットワークのファイルサーバ兼WEBサーバにする。ホスト名は wplj。

Windows10 のセットアップとリカバリメディア作成

まずは Windows 10 のセットアップ。これは最低限の設定で。
それから、万が一 Ubuntu がうまくインストールできなかった時のために Windows10 のリカバリメディアを作成しておく。スタートメニューの「HP ヘルプとサポート」から「HP Recovery Manager」を起動。手順に従ってリカバリメディアを作成した(全部でDVD-R 3枚)。結構時間がかかる。

起動ドライブの順序変更

再起動中に F2 キーを押して BIOS 設定に移動、USB の CD-ROM ブートを内部 HD よりも優先に設定する。そして起動。すると Windows が起動してしまった。もう一度 BIOS 設定に移動して確認すると、ちゃんと USB CD-ROM が優先になっている。おかしい。仕方がないので、BIOS の BOOT メニューから USB CD-ROM ブートを選んだ。

Ubuntu 16.04 LTSのインストール

今度はちゃんと Ubuntu の DVD から起動したので、Ubuntu のインストールをする。途中、「Ubuntuのインストール中にアップデートをダウンロードする」を選ぶ。
また、Windows Boot Manager が検出されるので「ディスクを削除してUbuntuをインストール」を選択。あとはほぼデフォルトで。コンピューターの名前は上に書いた通り wplj。ユーザーは takatoh を作った。
しばらくしてインストールが完了。再起動すると、無事 Ubuntu が起動した。

とりあえずはここまで。あとの設定とかはエントリを分けて書く。

ImageMagickでR,G,BのRとBを入れ替える

手元に色のおかしい bmp 画像があった。どうも R,G,B が入れ替わっているらしい。
ImageMagick の convert コマンドで何とかできないかとググってみたら、↓このページを見つけた。

 cf. ImageMagickを使ったグレイスケール、反転、RGB入れ替えについて – Qiita

このページによると、いったん R,G,B それぞれの画像に分解してから、順番を入れ替えて合成すればいいようだ。詳しくは書かないけど、中間ファイルを作らなきゃいけないし、convert コマンドのオプション指定も難しい(詳しくは理解してない)。それでも試してみると、どうやら R と B を入れ替えると正常らしい色に変換できた。
とはいえ、画像ファイルは千個以上もあっていちいち手でやってられないので、スクリプト(バッチファイル)を書いた。
一つは、色のおかしい bmp ファイルを正常な png ファイルに変換するスクリプト。

もう一つは、上記のスクリプトをカレントディレクトリの全 bmp ファイルに適用するスクリプト。

これで全部正常になった。

Windows 10環境のrubygemsでSSLエラーが発生した場合の対処法

新しい PC のセットアップ中、rubygems でエラーが発生した。環境は次の通り。

  • Windows 10 Home
  • Ruby 2.3.1 (RubyInstaller)
  • gem 2.5.1

発生したエラーは:

^o^ > gem install acm
ERROR:  Could not find a valid gem 'acm' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)

どうも、SSLのエラーらしい。

で、いろいろとググりながら試した結果、次の手順でうまく回避できたのでメモしておく。

rubygemsのアップデート

普通なら gem コマンドでアップデートできるけど、それが使えないので rubygems.org からダウンロードしてアップデートする。
 cf. rubygems-update 2.6.8
上のリンクから、rubygems-update の最新版 2.6.8 をダウンロード、インストールする。

^o^ > gem install rubygems-update-2.6.8.gem --local
Successfully installed rubygems-update-2.6.8
Parsing documentation for rubygems-update-2.6.8
Installing ri documentation for rubygems-update-2.6.8
Done installing documentation for rubygems-update after 39 seconds
1 gem installed

^o^ > gem -v
2.5.1

インストールしただけではアップデートされないので、update_rubygems コマンドでアップデートする。

^o^ > update_rubygems
RubyGems 2.6.8 installed
Parsing documentation for rubygems-2.6.8
Installing ri documentation for rubygems-2.6.8
(以下略)

長々とメッセージが出るけど、これでアップデートできた。

^o^ > gem -v
2.6.8

確認

これで、正常に使えるようになったはず。

^o^ > gem install acm
Fetching: thor-0.19.1.gem (100%)
Successfully installed thor-0.19.1
Fetching: acm-0.4.2.gem (100%)
Successfully installed acm-0.4.2
Parsing documentation for thor-0.19.1
Installing ri documentation for thor-0.19.1
Parsing documentation for acm-0.4.2
Installing ri documentation for acm-0.4.2
Done installing documentation for thor, acm after 2 seconds
2 gems installed

OK。

参考ページ

 cf. Ruby distros, RubyGems, and SSL—Oy vey!

新しいPCが届いた

HP の EliteBook Folio G1 ってやつ。1週間ほど前の夜中、薄くて軽くて頑丈、っていう惹句についうっかりとポチッたもの。確かに12.5型にしては軽い。
OS は Ubuntu じゃなくてプリインストールの Windows 10 Home をそのまま使うことにした。MS-Office を使いたいからそのほうがいいんだよね。
朝からセットアップを始めて、一通り終わったところ。rubygems がエラーをはいてちょっとハマったけど、他は特に問題なし。ホスト名は sofa にした。
以下、インストールしたアプリケーション。

  • Microsoft Office 2013
  • Firefox
  • Dropbox
  • Ruby
  • Python
  • Node.js
  • Gauche
  • Haskell
  • Perl
  • Git
  • 秀丸エディタ

とりあえずこんなところか。rubygems の問題の解決方法はエントリーを分けて書く。

Windows10にアップグレードした

Windows マシン(valarie)を Windows7 から Windows10 にアップグレードした。昨日からダウンロードを始めて、今朝になってやっと終わった。2GB 超えのダウンロードは不安定なうちの無線LANにはつらいよ。

ダウンロードを別にすれば、アップグレード自体はすんなりといった。……ように見えたけど、なんと Office が起動できない。正確に言うと、起動するとあっという間にウィンドウが閉じてしまう。
スタートメニュー→設定→アプリと機能からインストールされている Office 2013を選ぶと、利用不可となっている。こりゃ再インストールしないとダメかなと思いつつ修復をやってみたら、うまく動作するようになった。利用不可のままなのが気になるけど。

そのほかはまだあまり試してないけど、インストールしてあるゲームのうち少なくともいくつかはダメな模様。Ruby や Python は大丈夫そう。ゲームは VirtualBox で Windows7 を使うか。

wikiの引越し

昨日は MySQL をインストールするところから始めて、MediaWiki を動かすところまで書いたけど、そのあと Windows マシンで運用している既存の wiki の引越しもしたのだった。今日はその手順について、(うろ覚えで)書く。

データベースとファイルのバックアップ

まずはデータベースの中身をファイルに吐き出させる。msqldump をいうコマンドを使うんだけど、パスが通ってなかったのでフルパスで指定。

^o^ > C:\VertrigoServ\Mysql\bin\mysqldump -u root -p wiki > wiki.sql

それから、アップロードしたファイルが保存されているフォルダを zip で固める。

^o^ > cd \www\wiki
^o^ > zip -r images.zip images

2つのファイルを持って、Ubuntu のマシンに移動。

データベースの更新とファイルの配置

Windows マシンから持ってきた wiki.sql ファイルを MySQL に読み込ます。

takatoh@nightschool $ mysql -u root -p wiki < wiki.sql

それから、images.zip を展開。すでに images フォルダがあるけどそのまま上書きする。

takatoh@nightschool $ cd /var/www/html/wiki
takatoh@nightschool $ unzip images.zip

これで一応完了。

エラー発生

ところがブラウザでアクセスしてみると、エラーが発生した。画面には「A database query error has occurred. This may indicate a bug in the software.」とか出ている。どうもデータベースのエラーのよう。ググってみたら↓このページを見つけた。

 cf. [RESOLVED] Database error in upgrading from 1.18 to 1.22

どうやら、mw-config/index.php にアクセスしてインストールをやり直せってことらしい。そのとおりにする。インストールの画面になり、進めていくとLocalSettings.php の中の $wgUpgradeKey の値を入力しろと促されるので入力する。そしたら何やらデータベースをアップグレードしているようになり、完了。
再度ブラウザでアクセスすると、ちゃんと表示された。

画像が表示されない

これは単にファイルのパーミッションの問題だった。images フォルダを展開、上書きした時に所有者が takatoh になってしまって、wiki のユーザーからアクセスできないようになっていた。なので、次のようにして解決。

takatoh@nightschool $ sudo chown -R 2246:500 images
takatoh@nightschool $ sudo chmod -R 755 images

Windowsマシンからだと表示がおかしい

Ubuntu マシンから、localhost でアクセスするぶんには問題は解決したけど、Windows マシンからアクセスすると表示がおかしい。おかしいというのは、本文は表示されるんだけど、スタイルシートなんかが読み込まれていない感じ。
ググって見つけたページがここのコメント欄。

 cf. XAMPP1.81が社内のLANに公開できない - QA@IT

LocalSettings.php の中の $wgServer の値が localhost になっているのが原因らしい。次のようにホスト名に変えた。

これで、無事 Windows マシンからもちゃんと使えるようになった。

Windows7のhostsファイルに書き込む方法

hosts ファイルは C:\Windows\System32\drivers\etc にあるんだけど、普通にやったんでは権限がないとか言われて保存できない。管理者権限を持ったユーザーでも。

どうやるのか調べた結果、次のとおりにする。

  1. スタートメニューから、メモ帳を「管理者として実行」
  2. メモ帳のファイルメニューから hosts ファイルを開く
  3. 編集して上書き保存

このやり方だとちゃんと保存できる。

Windows7でSublime Text 3を使ってみる

普段は秀丸エディタを使ってるんだけど、Sublime Text 3 を導入してみたのでメモ。といってもググればいくらでも出てくるので、要点だけ。参考にしたページは主にここ。

 cf. 『初心者向け』 Sublime Text 3 導入と日本語化について – Naverまとめ

ダウンロードとインストール

ダウンロードはここから。

Windows の 64bit 版をダウンロード。
ダウンロードしたファイルをダブルクリックしてインストール。インストール自体は簡単そのもの。

Package Control

Sublime Text 3 本体のインストールが終わったら、とにもかくにも Package Control をインストールする。Sublime Text には多くのパッケージ、プラグインが用意されていて、それを管理するもののようだ。メニューから [View] → [Show Console] を選ぶか、[Ctrl]+[`] キーを押してコンソールを表示する。次のページから、Package Control インストール用の Python スクリプトをコピペして Enter。

すると、[Tools] → [Command Palette] の中に Package Control が追加される。

日本語化

メニュー等の日本語化。上で追加された Package Control を使って Japanize というパッケじをインストールする。
インストール自体が無事に終わると、設定の仕方がエディタの画面に現れるので、そのとおりにする。以下メッセージから引用。

適用手順
1.C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\Japanizeにインストールされている*.jpファイルを、
   C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\Default
  にコピーします。※Defaultフォルダがない場合は作成してください。
2.コピーしたファイルをオリジナルのファイル(.jpが付かないファイル)と置き換えます。(念のため、オリジナルのファイルが有る場合は.orgなどを付けて保管しておきましょう。)
3.C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\Japanize\Main.sublime-menu(.jpが付かない方)を、
   C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\User
  にコピーします。すると、他のプラグインで上書きされてしまっているトップメニューも日本語化されます。
以上です。

これでメニュー等の日本語化は終了。

その他のパッケージ

とりあえずインストールしたパッケージは次の2つ。

  • ConvertToUTF8
  • IMESupport

Sublime Text は UTF-8 が規定の文字コードなので、Shift JIS のファイルを編集するときには不都合がある。ConvertToUTF8 はファイルを開くときに UTF-8 に変換し、保存するときには Shift JIS で保存してくれる。
IMESupport は日本語入力をインラインでできるようにするパッケージ。

その他の設定

設定は基本的に Json のテキストファイルでするようになっている。メニューから [基本設定] → [基本設定 – ユーザ] を選ぶと、Preferences.sublime-settings というファイルが開く。以下の設定を追加してファイルを保存すると、設定が反映される。

言語ごとの設定

たとえば、Python のスクリプトを編集するときにだけ適用したい設定を書くには、Python ファイルを開いた状態で [基本設定] → [基本設定 – 拡張] → [シンタックス指定 – ユーザ] を選ぶと、Python.sublime-settings というファイルが開く。ここに上とおなじ要領で設定を書くと Python スクリプトだけに適用される。Python ではタブサイズを 4 にした。

さて、これでしばらく使ってみよう。

Windows7にMinGWがインストールできない?

※ 追記あり

gem で nokogiri をインストールしようとしたところ、次のようなエラーが出てインストールできなかった。

^o^ > gem install nokogiri
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

    C:/Ruby200-x64/bin/ruby.exe extconf.rb
checking for libxml/parser.h... no
-----
libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokog
iri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby200-x64/bin/ruby
        --with-zlib-dir
        --without-zlib-dir
        --with-zlib-include
        --without-zlib-include=${zlib-dir}/include
        --with-zlib-lib
        --without-zlib-lib=${zlib-dir}/lib
        --with-iconv-dir
        --without-iconv-dir
        --with-iconv-include
        --without-iconv-include=${iconv-dir}/include
        --with-iconv-lib
        --without-iconv-lib=${iconv-dir}/lib
        --with-xml2-dir
        --without-xml2-dir
        --with-xml2-include
        --without-xml2-include=${xml2-dir}/include
        --with-xml2-lib
        --without-xml2-lib=${xml2-dir}/lib
        --with-xslt-dir
        --without-xslt-dir
        --with-xslt-include
        --without-xslt-include=${xslt-dir}/include
        --with-xslt-lib
        --without-xslt-lib=${xslt-dir}/lib
        --with-libxslt-config
        --without-libxslt-config
        --with-pkg-config
        --without-pkg-config
        --with-libxml-2.0-config
        --without-libxml-2.0-config
        --with-pkg-config
        --without-pkg-config
        --with-libiconv-config
        --without-libiconv-config
        --with-pkg-config
        --without-pkg-config


Gem files will remain installed in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/nokog
iri-1.6.1 for inspection.
Results logged to C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/nokogiri-1.6.1/ext/nok
ogiri/gem_make.out

調べてみると、どうやら nokogiri はもはや Pure Ruby ではなく、おまけにほかのCライブラリに依存するらしい。
Windows の Ruby 2.0.0 に nokogiri をインストールする方法はこのページに詳しい。

 cf. WindowsのRuby 2.0でNokogiriを使う ― KaoriYa

というわけで、ここからが今日の本題。C のライブラリをビルドするためにまずは MinGW のインストールに挑戦する。
まずは、ダウンロードページから mingw-get-setup.exe をダウンロード。これを右クリックして管理者として実行する。
順調に進むかと思いきや、「”C:\MinGW\libexec\mingw-get\shlink.js” のスクリプト エンジン “JScript” が見つかりません。」というエラーがでてしまう。先週、有効にしたはずなのにおかしい。
とりあえず「OK」をクリックすると MinGW Installation Manager というパッケージ管理ツールのウィンドウが開く。ここでインストールしたいパッケージを選んで(よくわからんので Basic Setup にあるすべてを選んだ)、メニューから Installation → Apply Changes をクリックするとインストールが始まって、しばらくすると無事終わった(ように見える)。
ところが、スタートメニューにもデスクトップにもショートカットが作成されていない。これってやっぱり正常にインストールされてないってことか?

試しに簡単なプログラムを書いてみた。

実行結果:

^o^ > gcc -o hello.exe hello.c

^o^ > hello.exe
Hello, world.

なんと、コンパイルができてしまった。どういうこと?

[追記]
gcc が使えたのは、MinGW が正常にインストールされているわけじゃなかった。Haskell Platform に含まれてる gcc が動いていた。

^o^ > which gcc
C:/Program Files (x86)/Haskell Platform/2012.4.0.0/mingw/bin/gcc.EXE

MinGW のほうにパスを通せばいいのかなあ。shlink.js が何をやってるのか調べてみようか。

スクリプト エンジン “JScript” が見つかりません。

Windows7 Home Premium での話。
以前 JScript で書いたスクリプトを実行しようとしたら、次のようにエラーになった。

^o^ > cscript arg1.js foo bar baz
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

CScript エラー: スクリプト "C:\Users\takatoh\Documents\w\sandbox\wsh\arg1.js" のス
クリプト エンジン "JScript" が見つかりません。

ググってみたらYahoo知恵袋の↓このページを見つけた。

 cf. http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13100243473

以下、作業のメモとして残しておく。
まず、コマンドプロンプトを管理者権限で起動する。スタート → プログラム → アクセサリ → コマンドプロンプト、を右クリックして、「管理者として実行」。で、次のようにコマンドを打ち込む。

^o^ > regsvr32 jscript.dll

すると、「jscript.dll の DllRegisterServer は成功しました。」というダイアログが出るので「OK」をクリック。これで JScript が動くようになる。

^o^ > cscript arg1.js foo bar baz
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

foo
bar
baz

Yahoo知恵袋の記事では、JScriptが損傷してるとか書いてあるけど、心当たりが無い。もしかしたら何かのときに損傷したのかも。

ちなみに、VBScript も同じ状態。

^o^ > cscript arg.vbs foo bar baz
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

CScript エラー: スクリプト "C:\Users\takatoh\Documents\w\sandbox\wsh\arg.vbs" のス
クリプト エンジン "VBScript" が見つかりません。

同じやり方では復旧できなかった。なんで?

^o^ > regsvr32 vbscript.dll

これで、成功したとダイアログには出る。が、実際にスクリプトを実行してみるとダメ。

^o^ > cscript args.vbs foo bar baz
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

CScript エラー: スクリプト "C:\Users\takatoh\Documents\w\sandbox\wsh\args.vbs" のス
クリプト エンジン "VBScript" が見つかりません。

まあ、VBScriptは使わないからいいか。