Pandoc の Portable Windows バージョンを作る


Pandoc は、 HTML や、 Markdown, Textile, LaTeX などはじめとした、豊富な各種マークアップ形式を、別の形式に変換できるコマンドラインツールだ。

例えば、 textile → markdown 変換 とか、 HTML → markdown 逆変換 といったようなことができる。

何ができるかは、 Pandoc ユーザーズガイド あたりを参照してほしい。

さて、 この Pandoc の Windows 版は msi のインストーラ形式でしか配布されていない。

このインストーラでインストールすると、 ユーザディレクトリの %LOCALAPPDATA%\Pandoc\ (もしくは %ProgramFiles(x86)%\Pandoc\) に実行ファイルを展開して、 PATH を通してくる。
どうやら、システムディレクトリにファイルを置いたりしないようなので、 正直これだけのためにインストーラを実行して、 PATH や レジストリを汚すようなことをしたくない。

ということで、 msi インストーラから、 インストールをせずに実行ファイルだけ取り出して、 Portable 版を作成してみよう。

Pandoc の msi インストーラを取得

なにはともあれ、まずは msi インストーラをダウンロードしてこよう。
GitHub のリリースページから、最新版を取得できる。

この記事の執筆現在 (2016-09-25) では、 バージョン 1.17.2 の pandoc-1.17.2-windows.msi が最新版だ。

msiexec をつかって内部のファイルを取り出す

msiexec の、管理者用インストールポイント機能 (/a オプション) を使って、ファイルの展開を行なおう。
あらかじめ、展開先のディレクトリを作成しておき、 targetdir オプションで展開先を指定する。
msiexec は GUI ツールなので、start コマンドと併せて、
.msi ファイルがあるフォルダをカレントディレクトリにして、以下のようなコマンドを実行すると良いだろう。

mkdir "%TEMP%\pandoc\"
start /WAIT msiexec.exe /a pandoc-x.yy.zz-windows.msi /qn targetdir="%TEMP%\pandoc\"

このとき、注意しなくてはいけないポイントが 2点 ある。

  • targetdir オプションに指定するディレクトリは、 フルパスで記述しなくてはならない。
  • targetdir オプションに指定するディレクトリは、 入力 .msi ファイルが存在するディレクトリとは別にしなくてはならない。

コマンドの実行が完了すると、 %TEMP%\pandoc\Pandoc\pandoc.exe や ユーザガイド等が 展開されるので、 適当なディレクトリに移動させよう。

PATH を通していなくても、 pandoc.exepandoc-citeproc.exe をフルパスで指定すれば、問題なく実行できる。

参考資料

コメントを残す

メールアドレスが公開されることはありません。