真面目に sl をCentOS7へインストールしてみた

# sl コマンドとは
~~sl って何？って人は回れ右。
あなたのスキルをわずかも向上させることはありません。~~

作成者曰く、
SL(1): 究極の冗談コマンド 

ということです。
最終更新が、
2017/4/20
になっているので、それなりにメンテナンスはされているのかも。

# CentOS7 にインストールしてみた
## ソースの取得
公式URLがあるのでそこから。
https://github.com/mtoyoda/sl

```shell
[root@localhost ~]# wget ftp://ftp.linet.gr.jp/pub/Plamo/Plamo-2.1/contrib/Texttools/sl.tgz
```
別にwgetじゃなくてもなんでもよい。楽な方法で。
んで、適当な場所で解凍する

```shell
[root@localhost ~]# unzip -q sl.tgz
[root@localhost ~]# cd sl-master
[root@localhost sl-master]# ls -l
合計 696
-rw-r--r-- 1 root root    334  4月 20  2017 LICENSE
-rw-r--r-- 1 root root    358  4月 20  2017 Makefile
-rw-r--r-- 1 root root    436  4月 20  2017 README.ja.md
-rw-r--r-- 1 root root    297  4月 20  2017 README.md
-rw-r--r-- 1 root root 666742  4月 20  2017 demo.gif
-rw-r--r-- 1 root root    593  4月 20  2017 sl.1
-rw-r--r-- 1 root root    764  4月 20  2017 sl.1.ja
-rw-r--r-- 1 root root  10703  4月 20  2017 sl.c
-rw-r--r-- 1 root root   6627  4月 20  2017 sl.h
```
解凍したファイルの中身見ると、Makeしてインストールするようになっている。
Makeするための gcc がサーバには入ってなかったので入れる。

```shell
[root@localhost sl-master]# yum install gcc
...
Is this ok [y/d/N]: y
...
インストール:
  gcc.x86_64 0:4.8.5-39.el7

依存性関連をインストールしました:
  cpp.x86_64 0:4.8.5-39.el7        glibc-devel.x86_64 0:2.17-292.el7        glibc-headers.x86_64 0:2.17-292.el7

完了しました!
[root@localhost sl-master]# make all
gcc -O -Wall -o sl sl.c -lncurses
sl.c:41:20: 致命的エラー: curses.h: そのようなファイルやディレクトリはありません
 #include <curses.h>
                    ^
コンパイルを停止しました。
make: *** [sl] エラー 1
```
ムムム。

curses.h
のライブラリがないっぽい。

```shell
[root@localhost sl-master]# yum provides \*/curses.h
...
ncurses-devel-5.9-14.20130511.el7_4.x86_64 : Development files for the ncurses library
リポジトリー        : base
一致          :
ファイル名    : /usr/include/ncurses/curses.h
ファイル名    : /usr/include/ncursesw/curses.h
ファイル名    : /usr/include/curses.h
```
ncurses-devel-5.9-14.20130511.el7_4.x86_64
がないようなので入れる。

```shell
[root@localhost sl-master]# yum install ncurses-devel-5.9-14.20130511.el7_4.x86_64
...
Is this ok [y/d/N]: y
...
  インストール中          : ncurses-devel-5.9-14.20130511.el7_4.x86_64                                            1/1
  検証中                  : ncurses-devel-5.9-14.20130511.el7_4.x86_64                                            1/1

インストール:
  ncurses-devel.x86_64 0:5.9-14.20130511.el7_4

完了しました!
```
もう一度、

```shell
[root@localhost sl-master]# make all
gcc -O -Wall -o sl sl.c -lncurses
[root@localhost sl-master]# 
```
通った。

```applescript
[root@localhost sl-master]# ls -l
合計 716
-rw-r--r-- 1 root root    334  4月 20  2017 LICENSE
-rw-r--r-- 1 root root    358  4月 20  2017 Makefile
-rw-r--r-- 1 root root    436  4月 20  2017 README.ja.md
-rw-r--r-- 1 root root    297  4月 20  2017 README.md
-rw-r--r-- 1 root root 666742  4月 20  2017 demo.gif
-rwxr-xr-x 1 root root  17976 11月 17 16:32 sl
-rw-r--r-- 1 root root    593  4月 20  2017 sl.1
-rw-r--r-- 1 root root    764  4月 20  2017 sl.1.ja
-rw-r--r-- 1 root root  10703  4月 20  2017 sl.c
-rw-r--r-- 1 root root   6627  4月 20  2017 sl.h
```
**-rwxr-xr-x 1 root root  17976 11月 17 16:32 sl**
実行ファイル出来上がり。

適当にPATHが通る場所へ

```shell
[root@localhost sl-master]# cp -pi ./sl /usr/local/bin/
[root@localhost sl-master]# which sl
/usr/local/bin/sl
```
これでもし ls と sl を打ち間違ったときには汽車が走ります。
うざくなること請け合い。

> 参照
> [豊田正史とslコマンド (Masashi Toyoda and SL command)](http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/) ※作者
> [SL改造計画](http://www.izumix.xyz/sl/)
> [ジョークプログラムslを動かしてみた](https://qiita.com/gm_kou/items/2840a6670dc2e733d00a)

# 実行したら……
楽しみを奪ってしまう？かもしれないですが、
こんな感じになります。
## sl
![sl.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489575/29fc0bbf-ebe4-1214-a5a7-afc5c6e45322.gif)
## sl -a
![sl-a.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489575/7e1df5bd-14ad-600a-a647-2c34be5b7111.gif)
## sl -c
![sl-c.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489575/40fecc5c-0519-54ce-1fa9-66efdabf779f.gif)
## sl -F
![sl-F.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489575/867bbcd0-e0dc-5880-c534-9fa78d5e3d8b.gif)
## sl -l
![sl-l.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489575/bde3e6b4-3983-7e0f-3f50-b91ac0d4d75f.gif)
## sl -alFc
実際に試して見てみてね。