一、RPM Package Manager(RPM软件包管理器)的缩写,  

    rpm是由RedHat开发的软件包管理方式,使用rpm可以方便的进行软件的查询、安装、升级、校验等工作,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。   

    获取rpm包的途径:

    CentOS:

        http://mirrors.163.com

        http://mirrors.sohu.com

        http://rpmfind.net

        http://rpm.pbone.net

包管理器的基本功能
      打包
      安装
      查询
      升级
      卸载
      校验
      数据库管理

rpm包管理器:安装

        rpm -i, --install

      #rpm -i /pathto/rpm_package ...

        -v:显示安装信息

        -vv:二级详细

        -vvv:三级详细

        -h:bash 以#的个数显示安装进度,一个#表示%2的进度

        --test:仅测试,不真正执行安装过程;

解决依赖关系:把所依赖的包安装上,但有的依赖包非常多,很麻烦,所以就有了yum,后面会讲;
忽略依赖关系:--nodeps

重新安装:
       -ivh  --replacepkgs
     原来的配置文件不会被覆盖,新安装的配置文件将会重命名为以.rpmnew为后缀的文件;


例如:

#pwd
/media/Packages
# rpm -ivh zsh-5.0.2-14.el7.x86_64.rpm 
warning: zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zsh-5.0.2-14.el7                 ################################# [100%]


仅测试安装,不真正执行:
# rpm -ivh --test zip-3.0-10.el7.x86_64.rpm 
warning: zip-3.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
    package zip-3.0-10.el7.x86_64 is already installed
   

重新安装:
# rpm -ivh --replacepkgs zsh-5.0.2-14.el7.x86_64.rpm 
warning: zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zsh-5.0.2-14.el7                 ################################# [100%]

卸载:

    rpm -e, --erase

    #rpm -e package_name

如果卸载被其他程序所依赖的包

忽略依赖关系:--nodeps

#rpm -e zsh


查询:

    rpm -q  package_name

    支持文件名通配;
    查询所有已安装的包:rpm -qa

#rpm -qa bind*
bind-utils-9.9.4-29.el7.x86_64
bind-license-9.9.4-29.el7.noarch
bind-libs-9.9.4-29.el7.x86_64
bind-libs-lite-9.9.4-29.el7.x86_64

    查询某单个包是否安装: rpm -q package_name

   查询包的描述信息:rpm -qi package_name

# rpm -qi bash
Name        : bash                (名称)
Version     : 4.2.46             (版本)               
Release     : 19.el7             (发行号)
Architecture: x86_64
Install Date: Fri 04 Mar 2016 07:39:23 PM CST    (安装时间)
Group       : System Environment/Shells            (包组)
Size        : 3663618                            (包大小)
License     : GPLv3+                             (许可证)
Signature   : RSA/SHA256, Wed 25 Nov 2015 10:14:53 PM CST, Key ID 24c6a8a7f4a80eb5    (数字签名)
Source RPM  : bash-4.2.46-19.el7.src.rpm        (源码的rpm包)
Build Date  : Fri 20 Nov 2015 01:04:53 PM CST    (制作日期)
Build Host  : worker1.bsys.centos.org            (在哪个系统上制作的)
Relocations : (not relocatable)        (重定位:表示这个包在安装时是否可以自行指定安装路径的,这里表示不支持重定位。)
Packager    : CentOS BuildSystem <http://bugs.centos.org>    (包制作者)
Vendor      : CentOS                    (提供商)
URL         : http://www.gnu.org/software/bash        (表示到哪里可以找到相应的源码)
Summary     : The GNU Bourne Again shell                (简要说明)
Description :                            (略详细说明)
The GNU Bourne Again shell (Bash) is a shell or command language
interpreter that is compatible with the Bourne shell (sh). Bash
incorporates useful features from the Korn shell (ksh) and the C shell
(csh). Most sh scripts can be run by bash without modification.

    查询包安装之后在当前系统生成的文件列表:rpm -ql package_name

# rpm -ql bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
/usr/bin/alias
/usr/bin/bash
/usr/bin/bashbug
/usr/bin/bashbug-64
/usr/bin/bg
/usr/bin/cd
/usr/bin/command
/usr/bin/fc
/usr/bin/fg
/usr/bin/getopts
/usr/bin/jobs
/usr/bin/read
/usr/bin/sh
/usr/bin/umask
/usr/bin/unalias
/usr/bin/wait
/usr/share/doc/bash-4.2.46
.....

   查询包安装后生成的帮助文档:rpm -qd package_name

# rpm -qd iptables
/usr/share/doc/iptables-1.4.21/COPYING
/usr/share/doc/iptables-1.4.21/INCOMPATIBILITIES
/usr/share/man/man1/iptables-xml.1.gz
/usr/share/man/man8/ip6tables-restore.8.gz
/usr/share/man/man8/ip6tables-save.8.gz
/usr/share/man/man8/ip6tables.8.gz
/usr/share/man/man8/iptables-extensions.8.gz
/usr/share/man/man8/iptables-restore.8.gz
/usr/share/man/man8/iptables-save.8.gz
/usr/share/man/man8/iptables.8.gz


     查询某文件是由哪个包安装生成的:rpm -qf /path/to/somefile 

#rpm -qf /etc/passwd
setup-2.8.71-6.el7.noarch 

#rpm -qf /etc/issue
centos-release-7-2.1511.el7.centos.2.10.x86_64

#rpm -qf /bin/bash
bash-4.2.46-19.el7.x86_64

    查询包安装后生成的配置文件:rpm -qc package_name

# rpm -qc iptables
/etc/sysconfig/ip6tables-config
/etc/sysconfig/iptables-config

# rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc

查询包相关的脚本: rpm -q --srcipts package_name

    脚本有四种

        preinstall:安装前脚本

        postinstall:安装后脚本

        preuninstall:卸载前脚本

        postuninstall:卸载后的脚本

# rpm -q --scripts which
postinstall scriptlet (using /bin/sh):
/sbin/install-info --quiet --info-dir=/usr/share/info /usr/share/info/which.info.gz
exit 0
preuninstall scriptlet (using /bin/sh):
if [ $1 = 0 ]; then
   /sbin/install-info --quiet --info-dir=/usr/share/info --delete /usr/share/info/which.info.gz
fi
exit 0



# rpm -q --scripts bash
postinstall scriptlet (using <lua>):
nl        = '\n'
sh        = '/bin/sh'..nl
bash      = '/bin/bash'..nl
f = io.open('/etc/shells', 'a+')
if f then
  local shells = nl..f:read('*all')..nl
  if not shells:find(nl..sh) then f:write(sh) end
  if not shells:find(nl..bash) then f:write(bash) end
  f:close()
end
postuninstall scriptlet (using <lua>):
-- Run it only if we are uninstalling
if arg[2] == "0"
then
  t={}
  for line in io.lines("/etc/shells")
  do
    if line ~= "/bin/bash" and line ~= "/bin/sh"
    then
      table.insert(t,line)
    end
  end

  f = io.open("/etc/shells", "w+")
  for n,line in pairs(t)
  do
    f:write(line.."\n")
  end
  f:close()
end

查询尚未安装的rpm包文件的相关信息:

    查询安装后会生成的文件列表:rpm -qpl /path/to/package_file

#rpm -qpl /media/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm 
warning: /media/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/httpd/logs
/etc/httpd/modules
.......

    查询安装后会生成的描述信息:rpm -qpi /path/to/package_file

#rpm -qpi /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm 
warning: /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Name        : zsh
Version     : 5.0.2
Release     : 14.el7
Architecture: x86_64
Install Date: (not installed)
Group       : System Environment/Shells
Size        : 5834871
License     : MIT
Signature   : RSA/SHA256, Thu 26 Nov 2015 12:07:38 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : zsh-5.0.2-14.el7.src.rpm
Build Date  : Fri 20 Nov 2015 09:11:36 PM CST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://zsh.sourceforge.net/
Summary     : Powerful interactive shell
Description :
The zsh shell is a command interpreter usable as an interactive login
shell and as a shell script command processor.  Zsh resembles the ksh
shell (the Korn shell), but includes many enhancements.  Zsh supports
command line editing, built-in spelling correction, programmable
command completion, shell functions (with autoloading), a history
mechanism, and more.

    查询安装后会生成的配置文件:rpm -qpc /path/to/package_file

# rpm -qpc /media/Packages/vsftpd-3.0.2-10.el7.x86_64.rpm 
warning: /media/Packages/vsftpd-3.0.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf

    查询安装后生成的帮助文档:rpm -qpd package_name

#rpm -qpd /media/Packages/vsftpd-3.0.2-10.el7.x86_64.rpm 
warning: /media/Packages/vsftpd-3.0.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
/usr/share/doc/vsftpd-3.0.2/AUDIT
/usr/share/doc/vsftpd-3.0.2/BENCHMARKS
/usr/share/doc/vsftpd-3.0.2/BUGS
/usr/share/doc/vsftpd-3.0.2/COPYING
/usr/share/doc/vsftpd-3.0.2/Changelog
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration


升级

    rpm -U:升级或安装

    rpm -F:仅升级

    rpm {-Uvh|Fvh} /path/to/package_file

如果升级时依赖其他包,忽略其依赖关系:--nodeps

如果版本冲突时,可使用:--force 强行安装

    注意:不要对内核执行升级操作;

            多版本内核可并存,建议执行安装操作;


校验检查包安装后生成的文件是否被修改过
        rpm -V  package_name

首先来查询包安装上后生成了哪些文件,并修改其文件,在进行校验

# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc

修改其配置文件,然后进行校验

#vim /etc/zshenv

wKiom1buFOKTtUpdAABbJIGoCNA466.png

# rpm -V zsh
S.5....T.  c /etc/zshenv
显示文件的大小已改变md5码及时间戳也被修改;下满详细来说明下分别代表的含义:

    S:文件大小改变了

    M:权限改变了

    5:校验码改变了

    D:主设备号和次设备号不匹配

    L:路径不匹配

    U:属主改变了

    G:属组改变了

    T:(时间戳)修改时间,改变了

    P能力改变了

     校验来源合法性和软件完整性
       包完整行:通过单向加密机制(MD5|sha1)
       来源合法性:通过公钥加密机制(RSA)
   检查
     rpm -K /path/to/somefile  

或者

     rpm --checksig /path/to/package_file
    

      --nosigeature:不检查来源合法性
      --nodigest:不检查包完整性

# rpm -K /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm 
/media/Packages/zsh-5.0.2-14.el7.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#f4a80eb5) 
显示是有问题的下面来导入密钥试一下

    导入制作者的公钥,CentOS发行版的公钥早光盘中; 

    导入命令:rpm --import /path/to/package_file

    导入密钥后进行验证:

#ls /media/
CentOS_BuildTag  EULA  p_w_picpaths    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
# rpm --import /media/RPM-GPG-KEY-CentOS-7
# rpm -K /media/Packages/zsh-5.0.2-14.el7.x86_64.rpm 
/media/Packages/zsh-5.0.2-14.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
显示已经OK


数据库重建

    位置:/var/lib/rpm

   

    重建:rpm --initdb

        --dbpath:指定数据库路径

    如果实现不存在数据库,则新建之;

#rpm --initdb --dbpath /var/lib/rpm

    rpm --rebilddb:重建

    直接新建数据库,会覆盖原有库;


二、YUM:Yellowdog Update Modifier

    wKioL1buIT3hURpMAAAvtriOWKo887.jpgyum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。C/S架构,基于RPM包管理,能够从指定的服务器自动下载 RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装


yum服务器端:

    提供文件服务,要输出各rpm包,以及个rpm包之间的元数据信息; 


yum客户端:    

     缓存元数据:

          yum会到各可用的yum仓库获取元数据,并缓存至本地;

     分析元数据:

          根据具体的操作请求完成元数据分析,可能包括检查依赖关系、文件列表等信息;

     配置文件:

          /etc/yum.conf:为所有仓库提供公共配置;

          /etc/yum.repos.d/*.sh:为仓库的指向提供配置;

/etc/yum.conf:

这是yum的全局配置,一般不会改动

[main] :       yum仓库名称;
cachedir:      yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum;
keepcache:     本地缓存的rpm包使用完成之后是否缓存下来;
debugleve:     调试级别,0-10,默认是2;
logfile:       yum的日志文件,默认是/var/log/yum.log;
exactarch:     安装程序包是要不要精确严格的平台匹配;     
gpgcheck:      是否校验包的来源合法性及完整性;
plugins:       是否支持插件机制,默认是支持的;
installonly_limit:  一次一批同时安装几个程序包;
bugtracker_urlproject_id:追踪bug的url;
distroverpkg:  
 指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。


仓库的定义:

[repositoryID]:

name:              描述仓库的基本信息

baseurl:          指定仓库的地址;支持四种协议:http://    ftp://    file:///   nfs://

enabled={1|0}:    是否启用此仓库,默认启用;

gpgcheck={1|0}:   是否校验是否校验包的完整性及来源合法性

gpgkey= URL        指明密钥文件; 

enablegroups={1|0}: 是否支持在此仓库上使用组,来批量管理程序包,默认是支持的;

failovermethod{roundrobin|priority}:默认为roundrobin,随即挑选;

cost: 第一此仓库的开销,默认为1000;


yum命令用法:

     yum [options] [command] [package ...]

    yum的命令行选项

     --nogpgcheck:禁止进行gpg check;

     -y:自动回答为“yes”

     -q:静默模式;


显示仓库列表:

     repolist [all|enabled|disabled]:默认显示已启用的(enabled);

     yum repolist :显示已启用的yum repo;

wKioL1buInfzhJVAAAArPcBAxyU599.png


        yum repolist all:显示所有仓库;

wKiom1buIfPQQNNwAADG3CCxf_M825.png

    .......   

    list [all|installed|available]:列出程序包,默认显示所有程序包;

     #yum list installed:显示所有已安装过的包

wKioL1buIpng_AWgAAC_NdKfPa0527.png

 .......      

     #yum list available:显示可用的,尚未安装的包。

wKioL1buIrCCQzpHAAC7QuldbIg832.png

 .....      

    安装程序包:

         install pachage_name ...:

         #yum -y install zsh    -y表示不跟用户交互,直接安装

    wKioL1buIxGTyNLPAAB3b-Dqni4191.png

 ......  

    重新安装指定的包

         reinstall package_name...

        #yum -y reinstall zsh


    检查可升级的包:

         check-update

        #yum check-update

wKiom1buIsKi7ULPAAA8bxffERc108.png

    升级指定程序包:

         update package_name

         可指定升级到指定版本:yum uodate x-1.2.2

    降级:

         downgradr package1 [package2]


    检查可用的升级包:

         check-update


    卸载程序包:请注意其依赖关系;

         remove或erase  package_name

         #yum -y remove zsh


    查看指定包所依赖的信息;

         deplist  package1 [package2]

         #yum deplist zsh

wKiom1buIyGwk7f4AACDGzyAktw287.png


查看程序包的的信息:

     info [package]

     #yum info zsh:显示包的描述信息;

wKioL1buJALS5OgiAACJu3-8zuw525.png


列出所有包组:grouplist

       

     #yum grouplist:列出所有包组

wKiom1buI5KhO2niAABwx1rGOjg686.png




查看包组信息:

     groupinfo  “package_name”

     #yum groupinfo "Development Tools":查看Development Tools包组的信息(中间有空格需要用双引号);

wKioL1buJEHTJYRYAABl341A2jk820.png


    

    三个跟开发相关的包组:

          Desktop Platform Development

          Server Platform Development

          Development Tools

   提示:       

     如果系统为CentOS 5,常用开发包组为“Development Tools”和“Development libraries”

     如果系统为CentOS 6, 常用开发包组为“Development Tools”和“Server Platform Development”


安装指定的包组:

     groupinstall  “group_name”

     yum -y groupinstall "Development Tools"

wKiom1buI9iSQphbAACv7xBMPco362.png


卸载指定的包组:

     groupremove "group_name"

     #yum -y groupremove "Development Tools"


查看某文件是由哪个程序包所提供:

     provides | whatprovides feature1 [feature2] [...]

     #yum provides /etc/passwd     #由setup所提供

wKioL1buJIaxBc9bAAB-iVzho0Y737.png


清理本地缓存:

     clean [all|packages|metadate|expire-cache|rpmdb|plugins]

     #yum clean all

wKioL1buJKGhyyBdAAAeJ_I9NIU215.png


构建缓存:

     makecache   


搜索:

     search string1 [sring2] [....]      以指定的关键子搜索程序包名及summary信息;

     #yum search bash

wKiom1buJDrD5H8CAABdbjS0Fmk237.png


查看yum事务历史:

     history [info|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

     #yum history  查看之前执行过的命令;

wKioL1buJOLxjhKOAABrTVba8jU131.png


安装本地包:

     install /path/to/package_file

     手动禁止检查来源完整性: --nogpgcheck

          例如: yum install /media/zsh-2.3.1-2.e16.x86_64.rpm --nogpgcheck     


yum配置文件中可用的四个宏:

     $releaserver:程序的版本,对yum而言指的是redhat-release版本;只替换为主版本号,如redhat 6.5,则替换为6

     $arch:系统架构;

     $basearch:系统基本架构,如i686,i586等的基本架构为i386;

     $YUM0-9:在系统中第一的环境变量,可以在yum中使用;

   获取当前系统相应宏替换结果的办法;

python

Python 2.7.5 (default, Nov 20 2015, 02:00:19)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import yum,pprint

>>> yb = yum. YumBase()

>>> pprint.pprint(yb.conf.yumvar,width=1)

Loaded plugins: fastestmirror, langpacks

{'arch': 'ia32e',

'basearch': 'x86_64',

'infra': 'stock',

'releasever': '7',

'uuid': 'af265277-59cc-4e66-80d7-1e5c6dd1b27d'}

>>> 


三、编译安装

编译安装的步骤:
          1.拿到源代码,并解压
            tar -xf package-version.tar.{gz|bz2|xz}
            注意:展开后的目录通常为package-version
          2.切换至源码目录中
             cd package-version
          3.执行configure脚本
           ./configure
          4.编译
            make
          5.安装
            make install

        configure脚本的通用功能:
           我们需要定义的配置:
            1.指定安装路径
                   --prefix=前缀,用于指定安装路径,默认为/usr/local/
                   --sysconfdir=/etc/package_name  :配置文件安装位置
            2.指定启动/禁用的特性
               --enable-feature:例如--enable-fpm
               --disable-fecture;例如 --disable-socket
            3.指定所依赖功能、程序或文件
               --with-function: 启用某功能
               --without-function: 禁用某功能
         
          不同的程序,其configure不尽相同,应获取帮助信息
            ./configure --help

下面简单演示一下

1、安装开发包组

    # yum -y groupinstall "Development Tools" Server Platform Development”

wKiom1buQXqxLtOjAADHGYjUisA594.png

2、解压源码包,并编译

    # tar -xf httpd-2.2.29.tar.bz2

    #cd httpd-2.2.29

    #./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2



wKioL1buQwaAPM_yAAB1FpHpBaY403.png

3、#make && makeinstall

wKiom1buQsmhB-LFAAEVewwkx44187.png


4、切换地址刚才只是定的安装路径下,并启动该服务;

wKioL1buRMizwCtTAABJkwtQYfU698.png


5、使用netstat -tnlp命令 查看80端口是否已处于监听状态;

wKiom1buRNThNInIAABweD77Nw0699.png


wKioL1buRc6Ah3-YAABO9FiHpQI754.png

安装后的配置:

    因我们是自己定义的安装路径,系统中的PATH变量是找不到该服务的启动文件,帮助文件等;

(1)到处二进制程序目录之PATH环境变量中

        编辑文件/etc/profile.d/NAME.sh

            export PATH=/PATH/TO/BIN:$PATH

 (2)导出库文件路径

        编辑/etc/ld.so.conf.d/NAME.conf

            添加新的库文件所在的目录至此目录中;(我们此处的路径是/usr/local/apache2/lib)

        让系统重新生成缓存:

            ldconfig [-v]

(3)导出头文件

    基于链接的方式实现            

        ln -sv

(4)导出帮助手册

    编辑/etc/man.config文件

        添加一条MANPATH


以上只是演示简单的编译安装用法。