ハイパーニートプログラマーへの道

頑張ったり頑張らなかったり

CentOS(6.4)でmanコマンドやmanページをインストール

manがない・・・だと?

vagrantでCentOS6.4のMinimalを起動させて使ってるんですけど、あっれーmanがないよ。おまんまんがないよ!

ググってみると

http://tyonmagetanuki.hatenablog.com/entry/2013/12/07/180217

この方もちょうど同じようにvagrant + VirtualBox + CentOS6.4最小構成という形なので、まあそちらの記事を見たほうが早いんですけども。

manのインストール

$ sudo yum install man

これでいいかと思いきや

$ man 3 printf
No entry for printf in section 3 of the manual
$ man 1 printf
(以下メッセージ)

セクション1、ユーザコマンドはまあいいんだけど、3のサブルーチン、ライブラリ関数やら

$ man 2 read
No entry for read in section 2 of the manual

システムコール関連もダメと。

manpathも確認しようね

ということで

$ manpath
/usr/local/share/man:/usr/share/man/ja:/usr/share/man

大丈夫そう。

manページの場所

manページの場所は /usr/share/manディレクトリに

$ cd /usr/share/man
[vagrant@localhost man]$ ls
bg  el  fr  it     man1   man2x  man4   man6   man8   mann  pt_BR  sl     zh_TW
cs  en  hr  ja     man1p  man3   man4x  man6x  man8x  nl    ro     sv
da  es  hu  ko     man1x  man3p  man5   man7   man9   pl    ru     tr
de  fi  id  man0p  man2   man3x  man5x  man7x  man9x  pt    sk     zh_CN

ここにいろいろ分割されて入ってると。例えばセクション2に関してはman2でも覗いてみるかと

$ ls man2

うん、なんにもでてこない。足りない分をインストールしないと。

manページのパッケージ

リスト表示させてみる。

$ yum list man-*
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Installed Packages
man.x86_64                             1.6f-32.el6                       @base  
Available Packages
man-pages.noarch                       3.22-20.el6                       base   
man-pages-cs.noarch                    0.18.20090209-2.1.el6             base   
man-pages-es.noarch                    1.55-14.el6                       base   
man-pages-es-extra.noarch              1.55-14.el6                       base   
man-pages-fr.noarch                    3.23-10.el6                       base   
man-pages-it.noarch                    2.80-6.el6                        base   
man-pages-ja.noarch                    20100115-6.el6                    base   
man-pages-ko.noarch                    2:20050219-17.el6                 base   
man-pages-overrides.noarch             6.5.3-1.el6_5                     updates
man-pages-pl.noarch                    0.24-8.1.el6                      base   
man-pages-ru.noarch                    0.97-9.el6                        base   
man-pages-uk.noarch                    0.1-0.11.20071108.el6             base 

多言語で用意されていて、man-pages-ja.noarchなんてのもありますが、無難なところでいちばん上のman-pages.noarchを拾ってこようと。

$ sudo yum -y install man-pages.noarch
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package man-pages.noarch 0:3.22-20.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch            Version                 Repository     Size
================================================================================
Installing:
 man-pages          noarch          3.22-20.el6             base          4.8 M

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 4.8 M
Installed size: 4.3 M
Downloading Packages:
man-pages-3.22-20.el6.noarch.rpm                         | 4.8 MB     00:05     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : man-pages-3.22-20.el6.noarch                                 1/1 
  Verifying  : man-pages-3.22-20.el6.noarch                                 1/1 

Installed:
  man-pages.noarch 0:3.22-20.el6                                                

Complete!

これでもう1度やってみる

$ man 3 printf

PRINTF(3)                  Linux Programmer’s Manual                 PRINTF(3)

NAME
       printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf,
       vsnprintf - formatted output conversion
(以下略)
$ man 2 read

READ(2)                    Linux Programmer’s Manual                   READ(2)

NAME
       read - read from a file descriptor
(以下略)
$ ls /usr/share/man/ja
man1  man5  man8

日本語のページが少ないなと感じたけど、まあ必要ならman-pages-ja.noarchをインストールすればいいかと。