CentOS6.7にGit, Pandoc, Jenkinsを入れる

# 目的

会社と自宅で仕様書を楽に作成したい。
[Pandoc + Git + Jenkins = Auto Generate Document System][autodoc]というドキュメントシステムを試してみることにした。
ここでは、Git, Pandoc, Jenkinsをインストールすることを目的とする。

# やることリスト

1. Gitをインストール
2. Jenkinsをインストール
3. Pandocをインストール

# 環境

- CentOS release 6.7 (Final)
- Vagrant 1.9.1
- Proxy環境

構築した実験環境については以下。
http://qiita.com/tsnb/items/47bca690e4a722653bc1

# 詳細

## 1. Gitをインストール

以下を参考にした。
http://qiita.com/sirone/items/2e233ab9697a030f1335

とりあえず、yumでgitをインストール。
gitでソースをclone->ビルド->インストールして最新にする。
足りないパッケージで怒られたら適宜入れてください。

終わったらyumのgitはremoveする。

```
$ sudo yum -y install git
$ yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

$ cd /usr/local/src/
$ git clone https://git.kernel.org/pub/scm/git/git.git
$ cd git
$ su -
$ make prefix=/usr/local all
$ make prefix=/usr/local install
$ git --version
git version 2.11.1.431.g8a8f121

$ sudo yum remove git
```

## 2. Jenkinsをインストール

以下を参考にした。
http://qiita.com/kijitoraneko/items/5c97da72a718c93082b1

```
$ sudo yum install java-1.8.0-openjdk
$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key 
$ sudo yum -y install jenkins

マシン起動時に立ち上げたい場合は以下。
$ sudo chkconfig jenkins on

$ sudo service jenkins start

以下からポート8080でサーバが建てられているっぽい。
任意のtcp ポート8080がLISTENになっているので大丈夫ぽい。
ファイアウォール設定は/etc/sysconfig/iptables にあるので8080を許可するようにする。
今回はVagrantのboxでiptablesは無効になっているよう。

$ ps aux |grep jenkins
jenkins   8709  9.6 23.0 2237184 115596 ?      Ssl  06:42   0:11 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
vagrant   8856  0.0  0.1 103324   912 pts/0    S+   06:44   0:00 grep jenkins
[vagrant@akzwpc git]$ netstat -nutpl |grep 8080
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 :::8080                     :::*                        LISTEN      -      
```

ブラウザで　`<サーバを立てたホストのFQDN>:8080`　でJenkinsにアクセスする。
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/152194/240ce8a2-3a57-6d35-9214-ceedc8df1f84.png)

初回はUnlockしないとダメらしいので、以下のファイル内の値を**Administrator password**に入力する。

```
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
20fc51d929ee****
```

Proxyがある場合は、proxy設定画面が出てくるので設定してからプラグイン設定をする。
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/152194/842c40ff-ed8a-b08b-647d-cd44759f3928.png)

**Install suggested plugins**をクリックすると以下のように何らかのプラグインのインストールが始まる。終わったらユーザ名等の登録画面になるので入力する。
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/152194/16f1729c-5953-b060-b423-dbc08d987d6c.png)

登録が終わると以下の画面が表示される。日本語にしたい場合は、
Firefoxの[設定]-> [コンテンツ]-> [言語設定]で、Webページの言語 を日本語[ja]のみにする。
(Mozilla Firefox 45.7.0の場合)

![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/152194/27a5c054-7c9a-2661-7d84-2b78b9a73bf8.png)

## 3. Pandocをインストール

以下の公式のインストール方法でやる。
http://pandoc.org/installing.html

まず、CentOS用のリポジトリはないっぽい。公式ページにあるソースからのインストールをする。
epelリポジトリを追加すればyumでpandocを入れられるがバージョンが古いのでやめとく。

![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/152194/10965614-9b1a-2761-3fd1-5b9fbc90a118.png)

~~1. stackをyumインストールするためにepelリポジトリを追加する。　　~~

(追記:2017/02/09)
この部分はいりませんでした。別のやり方(cabal)のログが混じっていました。
入れても問題はないと思います。

    ```
    $ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    $ rpm -ivh epel-release-6-8.noarch.rpm
    ```

2. stackのインストール
https://docs.haskellstack.org/en/stable/README/

    ```
    $ wget -qO- https://get.haskellstack.org/ | sh
    ```

3. pandocのソースをダウンロード
    今回はwgetで落とした。
 
    ```
    $ wget https://hackage.haskell.org/package/pandoc-1.19.2/pandoc-1.19.2.tar.gz
    $ tar xf pandoc-1.19.2.tar.gz
    $ cd pandoc-1.19.2/
    ```

4. stackでpandocインストール  
    setupでエラーがでている。なぜかわからなかった。
    わかる方いたら教えてください。


(追記:2017/03/03)
公式の通りやりましたが、テンプレートの追加あたりが
[pandocをCentOS7にインストール](http://qiita.com/fk_2000/items/2ea57ea36b523c0cae5a)
の方がイケてるので、以降は無視してそっちを参考にしてください。CentOS6.7でもうまくいきました。

```
$ stack setup
Downloaded lts-7.14 build plan.    
Updating package index Hackage (mirrored at https://github.com/commercialhaskell                                                                                Fetching package index ...remote: Counting objects: 13, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 13 (delta 2), reused 13 (delta 2), pack-reused 0
Unpacking objects: 100% (13/13), done.
From https://github.com/commercialhaskell/all-cabal-hashes
   2f2ee4f904..f964df0874  hackage         -> origin/hackage
 t [tag update]            current-hackage -> current-hackage
Fetched package index.    
Populated index cache.    
Preparing to install GHC (gmp4) to an isolated location.
This will not interfere with any system-level installation.
Downloaded ghc-gmp4-8.0.1.                                      
Unpacking GHC into /home/vagrant/.stack/programs/x86_64-linux/ghc-gmp4-8.0.1.tem                                                                                Running /bin/tar Jxf /home/vagrant/.stack/programs/x86_64-linux/ghc-gmp4-8.0.1.tar.xz in directory /home/vagrant/.stack/programs/x86_64-linux/ghc-gmp4-8.0.1.temp/ exited with ExitFailure (-9)
Unpacking GHC into /home/vagrant/.stack/programs/x86_64-linux/ghc-gmp4-8.0.1.tem                                                                                      
Error: Error encountered while unpacking GHC with
         tar Jxf /home/vagrant/.stack/programs/x86_64-linux/ghc-gmp4-8.0.1.tar.xz
         run in /home/vagrant/.stack/programs/x86_64-linux/ghc-gmp4-8.0.1.temp/

    The following directories may now contain files, but won't be used by stack:
  - /home/vagrant/.stack/programs/x86_64-linux/ghc-gmp4-8.0.1.temp/
  - /home/vagrant/.stack/programs/x86_64-linux/ghc-gmp4-8.0.1/
```

エラーでghcが入ってないっぽいので以下の--install-ghcをつけた。

```
$ stack install --test --install-ghc
```
    
メモリ足りないみたいなエラーが出て上記コマンドでうまく行かなかった。
vagrantのメモリを490MB->2GBにしてやり直したらうまくいった。
ちなみにpandocのインストールは時間かかる。

```:Vagrantfile
config.vm.provider "virtualbox" do |vb|
  # Display the VirtualBox GUI when booting the machine
  vb.gui = true
#
#   # Customize the amount of memory on the VM:
  vb.memory = "2048"
end
```

~/.local/bin/の下にpandocの実行ファイルができている。

```
$ ~/.local/bin/pandoc -v
pandoc 1.19.2
Compiled with pandoc-types 1.17.0.4, texmath 0.9, skylighting 0.1.1.2
Default user data directory: /home/vagrant/.pandoc
Copyright (C) 2006-2016 John MacFarlane
Web:  http://pandoc.org
This is free software; see the source for copying conditions.
There is no warranty, not even for merchantability or fitness
for a particular purpose.
```
    
あとはパスを通す。今回はパスが通っている/usr/local/binに実行ファイルを置いた。

```
$ sudo cp ~/.local/bin/pandoc /usr/local/bin/
```

# おしまい

今回の目的である、Git, Pandoc, Jenkinsのインストールが出来たので終わり。
もっと良いよっていうやり方があれば教えてください。
環境が出来たので、[Pandoc + Git + Jenkins = Auto Generate Document System][autodoc]を試してみようと思う。




[autodoc]: https://docs.com/s-kuluna/1751/pandoc-git-jenkins-auto-generate-document-system