読者です 読者をやめる 読者になる 読者になる

明日にはでっかい太陽が昇るかもしれません。

「覚悟」とは!! 暗闇の荒野に!!進むべき道を切り開く事だッ!

ドキュメント系ツールを一斉に導入してみる

気になるところ

ドキュメント系ツールについては、どの程度業務でも活用できそうなのか記になるので、早速環境を作成してみる。

pandoc のインストール

pandocHaskell という(私には)あまり馴染みが無い言語で作成されているので、まずは Haskell の実行環境からインストールする。

$ sudo apt-get install -y haskell-platform

直接、 apt から pandoc をインストールすることもできるが、バージョンが古いっぽいので、地道にインストールしていく。

そうすると、 apt と似たような、 Haskell のパッケージマネージャである cabal が利用できるようになるので、 pandoc をインストールする。

まずは、 cabal 自身をアップデートする

$ cabal update
$ cabal install Cabal cabal-install

古い(1.18以前の) cabal ではこの後使う sandbox コマンドが利用できないので、今更新した cabal にパスを通し直す。

export PATH=~/.cabal/bin:$PATH

~/.profile などに同じパスを記載しておくこと。

サンドボックスを作成する

$ mkdir ~/pandoc
$ cd ~/pandoc
$ cabal sandbox init

ビルドする

$ cabal install pandoc

かなりの時間がかかるので、コーヒーブレイクでも入れましょう。

ビルドが終わったら、オブジェクトを ~/.cabal/bin などにコピーし、シェルから参照できるようにします。

asciidoctor のインストール

本家 AsciiDoc は Python 製なのですが、普及度などを調べると GitHub でも採用されている(らしい) Ruby 製の AsciiDoctor のほうが良さそう(バージョンアップも活発)なので、そちらをインストールしてみる。

ruby のインストール

手順は Setup Ruby On Rails on Ubuntu 14.04 Trusty Tahr を参考にしてみた。

まずは、 ruby のビルドに必要なライブラリのインストールを行う。( Python に比べてインストールのハードル高すぎ。。。)

$ sudo apt-get update
$ sudo apt-get install zlib1g-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev libffi-dev

rbenv ( Python の virtualenv のようなもの?)をインストールして、 rbenv 環境に ruby をインストールする。

$ cd
$ git clone git://github.com/sstephenson/rbenv.git .rbenv
$ echo 'PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
$ echo 'eval "$(rbenv init -)"' >> ~/.profile
$ 
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.profile
$ 
$ git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
$ 
$ . ~/.profile
$ 
$ rbenv install 2.2.3
$ rbenv global 2.2.3
$ ruby -v

これで、以下の様な表示が出れば、 ruby のインストールは完了となる。

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

AsciiDoctor のインストール

公式の手順 によれば、

$ gem install asciidoctor

とすれば良いのだけれど、SSL 関係でエラーが発生します。

$ gem install asciidoctor
ERROR:  Could not find a valid gem 'asciidoctor' (>= 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)

そこで、一時的に HTTP で更新できるようにします。

$ ~$ gem source --add http://rubygems.org
https://rubygems.org is recommended for security over http://rubygems.org

Do you want to add this insecure source? [yn]  y
http://rubygems.org added to sources

再び、 AsciiDoctor のインストールにトライします。

$ gem install asciidoctor
Fetching: asciidoctor-1.5.2.gem (100%)
Successfully installed asciidoctor-1.5.2
Parsing documentation for asciidoctor-1.5.2
Installing ri documentation for asciidoctor-1.5.2
Done installing documentation for asciidoctor after 4 seconds
WARNING:  Unable to pull 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)
1 gem installed
$ asciidoctor --version
Asciidoctor 1.5.2 [http://asciidoctor.org]
Runtime Environment (ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]) (lc:US-ASCII fs:US-ASCII in:- ex:US-ASCII)

今度は、(SSL の警告がでつつも)インストールできました。

最後に、HTTP による更新を無効にします。

$ gem source --remove http://rubygems.org
http://rubygems.org removed from sources

でも、根本的なエラーの原因は取り除けていないため、都度 HTTP での更新をできるようにしないとダメなのがダサいな。。。

オプションのインストール

後は、それっぽいオプションをインストールします。

$ gem install --no-ri --no-rdoc asciidoctor-diagram
$ gem install --no-ri --no-rdoc coderay pygments.rb thread_safe

graphviz のインストール

手抜きのため、 apt でインストールします。

$ sudo apt-get install -y graphviz

最新版( 2.38 )じゃないけど気にしない。

$ dot -V
dot - graphviz version 2.36.0 (20140111.2315)

texlive のインストール

GitHubUbuntu 用のインストールスクリプト公開 されているので、ありがたく利用する。

github.com

$ sudo bash -c "curl -L https://github.com/scottkosty/install-tl-ubuntu | bash"
$ echo 'PATH="/usr/local/texlive/2015/bin/x86_64-linux:$PATH"' >> ~/.profile
$ . ~/.profile

かなり時間がかかるので、散歩にでも出かけましょう。

完了すれば、 TeX 関連コマンドが利用可能になります。

$ tex --version
TeX 3.14159265 (TeX Live 2015)
kpathsea version 6.2.1
Copyright 2015 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the TeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the TeX source.
Primary author of TeX: D.E. Knuth.

最後に、公式サイトの TeX Live パッケージをインストールした場合、 aptTeX Live に依存したパッケージをインストールしてしまうと、ついでに apt でも TeX Live (古いバージョン)がインストールされてしまうらしいので、ダミーパッケージを apt でインストールして、依存関係で問題が出ないようにします。

Integrating vanilla TeX Live with Debian

$ sudo mkdir /tmp/tl-equivs
$ cd /tmp/tl-equivs/
$ sudo equivs-control texlive-local
$ sudo vim texlive-local
### 編集内容は後述
$ sudo equivs-build texlive-local
$ sudo dpkg -i texlive-local_2015-1_all.deb

texlive-local の内容は、サンプル の通りです。

sphinx のインストール

手順は 日本語公式 の通りに行う。

$ sudo pip install sphinx

最新版を使いたかったので pip でインストールすることにした。

$ sphinx-build --version
Sphinx (sphinx-build) 1.3.1

doxygen のインストール

手っ取り早く動かしたいため、公式から Linux バイナリをダウンロードしてインストールすることに。

$ curl -LO ftp://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.10.linux.bin.tar.gz
$ tar zxvf doxygen-1.8.10.linux.bin.tar.gz
$ cd doxygen-1.8.10
$ ./configure --prefix /opt/toolchain/doxygen
  Checking for GNU install tool... using /usr/bin/install
  Created Makefile from Makefile.in...
$ sudo make install
/usr/bin/install -d /opt/toolchain/doxygen/bin
/usr/bin/install -d /opt/toolchain/doxygen/doc/doxygen
/usr/bin/install -m 755 bin/doxygen    /opt/toolchain/doxygen/bin
/usr/bin/install -m 755 bin/doxytag    /opt/toolchain/doxygen/bin
/usr/bin/install: cannot stat 'bin/doxytag': No such file or directory
make: *** [install] Error 1

なんと!公式のバイナリでインストール失敗してしまった。。。

解決方法を探してみたが、手順ミスではなさそう。どういうこと!?

調べてみたが、 doxytag は別に必要なさそうなので、インストール対象から外すことに。(ついでに、存在しない examples ディレクトリも外す)

$ diff -u Makefile.in.orig Makefile.in
$ diff -u Makefile.in.orig Makefile.in
--- Makefile.in.orig    2015-09-26 17:26:45.702458300 +0000
+++ Makefile.in 2015-09-26 17:29:11.238458300 +0000
@@ -2,7 +2,7 @@
        $(INSTTOOL) -d $(INSTALL)/bin
        $(INSTTOOL) -d $(INSTALL)/doc/doxygen
        $(INSTTOOL) -m 755 bin/doxygen    $(INSTALL)/bin
-       $(INSTTOOL) -m 755 bin/doxytag    $(INSTALL)/bin
+       #$(INSTTOOL) -m 755 bin/doxytag    $(INSTALL)/bin
        #$(INSTTOOL) -m 755 bin/doxywizard $(INSTALL)/bin
        cp -r html $(INSTALL)/doc/doxygen
-       cp -r examples $(INSTALL)/doc/doxygen
+       #cp -r examples $(INSTALL)/doc/doxygen

再度、インストールを行う。

### インストール先の設定を行う
$ ./configure --prefix /opt/toolchain/doxygen
$ sudo make install
### 環境変数にパスを通す
$ echo 'PATH="/opt/toolchain/doxygen/bin:$PATH"' >> ~/.profile
$ . ~/.profile
### 実行確認を行う
$ doxygen --version
1.8.10

RedPen のインストール

RedPen を動作させるには、 Java 実行環境が必要になるので、 Java からインストールする。

Java のインストール

手順は以下をを参考にしました。

UbuntuにJava8環境構築

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer

インストール中には、ライセンスやらオプションの確認が行われるので、回答する。

インストール後、(よくわからないが、)環境設定などを行ってくれるパッケージをインストールして完了となる。

$ sudo apt-get install oracle-java8-set-default
$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

本体のインストール

RedPen は Java 製ということで、バイナリをダウンロードしてコピーするだけのインストールになる。

GitHubのリリースページ から最新のバイナリをダウンロードする。

github.com

$ curl -LO https://github.com/redpen-cc/redpen/releases/download/v1.3.0/redpen-1.3.0.tar.gz
$ tar zxvf redpen-1.3.0.tar.gz
$ sudo cp -a redpen-distribution-1.3/ /opt/redpen
$ sudo chown root:root -R /opt/redpen/
$ JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre redpen --version
1.3.0

これらのツールをうまく活用できれば、やりたいことに時間を使えるようになる。かもしれない。