FreeBSD（にしようかと思ったがそこまで漢（おとこ）ではないので実際はGhostBSD）をインストールしてからPostgreSQLのINSTALL日本語版を作成するまで（後編）

[中編](https://qiita.com/koizumistr/items/cdb0d5f5cee88899b708)からの続きです。お断りなども前編、中編と一緒。

# 中編までのあらすじ
お爺ちゃんはPCに[FreeBSD](https://www.freebsd.org/ja/)をインストールして孫にかっこいいところを見せようと思いましたが、紆余曲折があって[GhostBSD](https://ghostbsd.org/)をインストールすることになりました。インストールまでは何とかできましたが、PostgreSQLはまだPの字も出てきていません。果たして後編で終わるのでしょうか。前、中、後と来たら次はないですよ。

# PostgreSQL
さてと、よく眠れたことじゃし、次は「PostgreSQLのINSTALL日本語版を作成する」じゃ。孫が来る前にちょちょいと終わらせれば、「初志貫徹するお爺ちゃんカッコいい」と言われること間違いなしじゃ。

## ダウンロード
おうおう、爺ちゃんの頃は、rsyncだかcsvだかcvsだったかで最新版を入手しておったが、、、、
ナウなヤングは「ギットでクローン」なんじゃったな、爺ちゃん、それくらいは知っておるぞ。で、できたディレクトリに移動じゃ。

```
git clone https://github.com/pgsql-jp/jpug-doc.git
cd jpug-doc/
```
## 文書"INSTALL"の作成
PostgreSQLの説明は、と、、、おお、[日本語](https://www.postgresql.jp/document/11/html/index.html)があった、いい世の中になったのう。なんと、[FreeBSDでのインストール](https://www.postgresql.jp/document/11/html/docguide-toolsets.html#id-1.11.11.5.6)なんというそのものずばりがあるではないか。そこに書いてあることをそのまま入力、と。

```
sudo pkg install docbook-xml docbook-xsl fop libxslt
```
はて、爺ちゃんの頃はここではpackage_addとかするんじゃなかったじゃろか。なんかコマンドが違うのう。これが新世代というものかのう。
そうこうするうちにインストールは終わったようじゃ。なんか、いくつかはすでにインストール済みだったようじゃが、これがFreeBSDとGhostBSDの違いかのう。パッケージ管理システムはきっと賢いから大丈夫じゃろう（新世代ならなおさらじゃ）。

ここですぐにmakeとやりたいところじゃが、そんな簡単な罠には爺ちゃん掛からんぞ。確か、makeにはBSD makeとGNU makeというのがあるんじゃったな。で、FreeBSDに入っているmakeはBSD makeで、説明書で「makeを使え」とある場合はたいていはGNU makeなんじゃろ。ということで、GNU makeもインストールじゃ。確か、gmakeじゃったな。爺ちゃんの知恵もなかなかのものじゃろ、と自慢したかったが、よく読むと先ほどの文書の地の文に書いてあったのう。では、mak、おっと、makeのまえにconfigureも必要じゃのう。

```
sudo pkg install gmake
./configure
```

ん、途中でエラーで止まってしまったようじゃ。何々、Cコンパイラがないじゃと。Unix系のOSでそんな馬鹿なことはないじゃろ。それにllvmは確かに入っているようじゃし、、、、
グーグル先生に頼ることにするかの。同じようなことで困っている人はおらんかの。おお、おったおった、ふむふむos-generic-userland-devtoolsというものもインストールしないと「Cコンパイラがない」という扱いになってしまうようじゃ。それにFreeBSDだとパスにちょっと癖があるようじゃの。では、再挑戦じゃ。

```
sudo pkg install os-generic-userland-devtools
./configure --with-libedit-preferred --with-includes=/usr/local/include --with-libs=/usr/local/lib
```

おお、できたできた。では、いよいよラスボスじゃ。いや、その前に手下その1のhtmlじゃ。

```
cd doc/src/sgml/
gmake html
firefox html/index.html
```
ほれ、できた。

![PostgreSQL_html.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535021/438c431c-2be5-aea0-ea16-b522eb6eeb22.png)

ついでに手下その2のPDFも作ってみるかの。

```
gmake postgres-A4.pdf
```
ふぉふぉふぉ、順調順調。では今度こそラスボスじゃ。

```
gmake INSTALL
```
ん、pandocなんてコマンドはないじゃと。が、コマンドの名前が分かればこっちのものじゃ。だぶん、hs-pandocのことじゃな、孫よ見たか、この爺ちゃんの推測力、、、、、が、よく読むとこの辺の話も先ほどの文書の地の文に書いてあるのう。

```
sudo pkg install hs-pandoc
gmake INSTALL
```
（多少と言えるほど少なくはない手戻りはあったが）爺ちゃんここまで来たぞ。どうじゃ、孫よ。爺ちゃん凄いじゃろ。

## ついでにmanも
よし、この勢いでついでにmanもインストールじゃ。親切な方が[manも公開](https://pgsql-jp.github.io/)してくれているようじゃの。[一番新しそうなの](https://pgsql-jp.github.io/jpug-doc/11.5/man.tar.gz)をダウンロードして、と。適当なところに展開じゃ。UTF-8のようじゃし、後からインストールしたものじゃから、確か/usr/local/share/man/ja_JP.UTF-8に置けば良いんじゃったな。

```
sudo mkdir /usr/local/share/man/ja_JP.UTF-8
sudo mv -i /tmp/man? /usr/local/share/man/ja_JP.UTF-8
```
で、適当な対象を選んで、と。

```
man 7 SELECT
```

![スクリーンショット_2020-02-09_13-26-47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535021/78bfacee-dc66-68fd-018c-15d24cd607ca.png)

ありゃ、何もしないでもあっさり表示されてしもうたわ。爺ちゃんの頃は日本語だからといろいろ特別な設定が有ったように思うのじゃが、、、、

![スクリーンショット_2020-02-09_13-56-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535021/ee2e11bb-892e-df36-1b07-93ba7f931e30.png)

むむ、でもなんか崩れておるの。確か爺ちゃんの頃はもっとビシッと表示されておったはずじゃ。はて、何が起きているんじゃろうか。そういう時のmanじゃな。

```
 man man.conf
```

日本語用の設定例が書いてあるのう。ただ、なぜEUCなんじゃろうか。爺ちゃん、ナウなヤングはUTF-8だと聞いておるのじゃが、、、、まあ、良いわ。EUCのところをUTF-8に置き換えて、と。

```ja-man-doc.conf
# Setup Japanese toolset
MANLOCALE       ja_JP.UTF-8
EQN_JA          /usr/local/bin/geqn
PIC_JA          /usr/local/bin/gpic
TBL_JA          /usr/local/bin/gtbl
NROFF_JA        /usr/local/bin/groff -man -Tnippon -dlang=ja_JP.UTF-8
TROFF_JA        /usr/local/bin/groff -S -Wall -Tnippon -man -dlang=ja_JP.UTF-8
```
おっとこれだと、groffも要るのう。日本語向けだからja-groffじゃの。

```
sudo pkg install ja-groff
```
さて、もう一度じゃ。ん、何も変わらんではないか。一体manは何をやっておるのじゃ。中を見てみるかの。ふーむ、mandocが失敗したときに先ほど追加した部分に処理が移るんじゃな、ならmandocの成功の条件を厳しくしてみるかの。

```/usr/bin/man.orig
	testline="mandoc -Tlint -Wunsupp >/dev/null 2>&1"
```

```:/usr/bin/man
	testline="mandoc -Tlint >/dev/null 2>&1"
```

これで、どうじゃ。

![スクリーンショット_2020-02-09_14-07-52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535021/2ffa7a89-6cea-e32c-46b5-37d8e91fae2a.png)

おお、禁則処理がおかしいが、さっきよりましじゃの。ここまでやれば「お爺ちゃん、すごーい」と言ってくれるじゃろうて、くっくっく。

# 孫登場
孫「おじいちゃん、こんにちは」
「おー、よく来た、よく来た。それに大きな声で挨拶できてえらいのう。」
孫「ようちえんで せんせいに 『あいさつは おおきなこえで しましょう』って いわれてるんだよ」
「そうか、そうか」
孫「それより おじいちゃん たぶれっと みて」
「何、タブレットじゃと。タブレットならお爺ちゃんも持っておるぞ」
（お爺ちゃん、WACOMのタブレットをさっと出します。これも孫に尊敬されるための小道具の一つでした）
孫「おじいちゃん ちがうよ。たぶれっと って これだよ。えが でるんだよ」
（孫が持ってきたのはiPadでした。タブレットの意味が変わってしまっていることに衝撃を受けたお爺ちゃん、孫の一生懸命の説明も耳に入っていないようです。）

は、いかんいかん、このままではカッコいいお爺ちゃんではなくなってしまう。何とかして孫の話についていかねば。

「どれどれ、で、そのタブレットやらでどんなことができるのかのう」
孫「おじいちゃん、さっき いったよ。『ひなんくんれん』を つくったんだよ」
「ほう、これは幼稚園の避難訓練の様子かのう。草が揺れているから地震じゃな」
孫「そうだよ」
「それで、これはどうやってつくったんじゃ」
孫「すくらっちで ぼくが つくったんだよ」
「お父さんかお母さんに手伝ってもらったんじゃな」
孫「ううん、ぼく ひとりで つくって あとで おとうさん と おかあさん に みせたよ」
「でも、この字はどうやって入れたんじゃ。お前はまだ字は書けんじゃろ」
孫「これは たぶれっとに はなしかけると じに なるんだよ。おじいちゃん しらないの」

説明がところどころ要領を得ないのはまだ幼稚園児だから当然として、要するに孫は一人でプログラムを組んだ、ということじゃな。それに最近のタブレットには音声認識の機能がついておって、さらにそれを孫は使いこなしておる、と。これも時代かのう。孫よ、爺ちゃんの完敗じゃ、、、、、

孫「ねえねえ、おじいちゃん あのはこ なに」
「ああ、あれがコンピュ」
孫「わかった、ねこのおうちでしょ」
「ーター、、、、、、、、そうじゃのう、暖かいから、猫も喜ぶかもしれんのう」