All Sunday

首页

制作moosefs_debian安装包

Moosefs一共可以分为master chunkserver client 三个应用程序,需要分别制作3个debian安装包。

准备工作

  1. 确保fuse已经安装
  2. 安装checkinstall

     apt-get install checkinstall
    
  3. moosefs下载源代码mfs-1.6.27.tar.gz
  4. 创建用于编译的mfs帐号和用户组

     # groupadd mfs
     # useradd -g mfs mfs
    
  5. 解压源代码,并切换目录

     # tar xvzf mfs-1.6.27.tar.gz
     # cd mfs-1.6.27
    

制作Master安装包

  1. 配置

     # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
    
  2. 编译,-j4是为了让make充分利用多核CPU

     # make -j4
    
  3. 使用checkinstall自动生成debian安装包

     # checkinstall
    
这里会提示

	The package documentation directory ./doc-pak does not exist.
	Should I create a default set of package docs? [y]:**

回答 **y**。
然后,*checkinstall*会询问你生成的安装包的名字,版本号,描述等信息
![checkinstall_ask](http://www.falkotimme.com/howtos/checkinstall/images/1.gif)

我们用**moosefs-master**来做安装包的名字。填写完毕后,直接回车就开始制作debian安装包。如果没有异常发生,则会在当前目录下多一个*moosefs-master_1.6.27-1_amd64.deb*的文件,并且*makeinstall*已经自动帮我们安装好了。

制作chunckserver安装包

  1. 重新解压mfs-1.6.27.tar.gz,并切换目录
  2. 配置

     # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfscgiserv --disable-mfsmount --disable-mfscgi
    
  3. 编辑doc/Makefile,删除261行处general_mans等号后面的值,变成如下所示

     ...
     253 target = x86_64-unknown-linux-gnu
     254 target_alias =
     255 target_cpu = x86_64
     256 target_os = linux-gnu
     257 target_vendor = unknown
     258 top_build_prefix = ../
     259 top_builddir = ..
     260 top_srcdir = ..
     261 general_mans =
     262 chunkserver_mans = mfschunkserver.8 mfschunkserver.cfg.5 mfshdd.cfg.5
     263 master_mans = mfsmaster.8 mfsmetarestore.8 mfsmaster.cfg.5 mfsexports.cfg.5     mfstopology.cfg.5 mfsmetalogger.8 mfscgiserv.8 mfsmetalogger.cfg.5
     264 mount_mans = \
     265     mfsmount.8 mfstools.1 \
     266     mfscheckfile.1 mfsdirinfo.1 mfsfileinfo.1 mfsfilerepair.1 \
     267     mfsgetgoal.1 mfsgettrashtime.1 mfsrgetgoal.1 mfsrgettrashtime.1 \
     268     mfsrsetgoal.1 mfsrsettrashtime.1 mfssetgoal.1 mfssettrashtime.1 \
     269     mfsgeteattr.1 mfsseteattr.1 mfsdeleattr.1 \
     270     mfsappendchunks.1 mfsmakesnapshot.1
     ...
    

    这是因为有部分文档会被包含到多个安装包里面,导致文件冲突。所以我们将这些通用的文档只包含在master的安装包里面。

  4. 编译

     # make -j4
    
  5. 使用checkinstall自动生成debian安装包,这里步骤同创建master安装包

     # checkinstall
    

    我们用moosefs-chunkserver来做安装包的名字。填写完毕后,直接回车就开始制作debian安装包。如果没有异常发生,则会在当前目录下多一个moosefs-chunkserver_1.6.27-1_amd64.deb的文件,并且makeinstall已经自动帮我们安装好了。

创建client安装包

  1. client安装包的制作方法除了配置的参数有改动,与chunkserver基本一样。重新解压mfs-1.6.27.tar.gz,并切换目录
  2. 配置,这里我们加了–enable-mfsmount,来强制开启编译client

     # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --disable-mfscgiserv --enable-mfsmount --disable-mfscgi
    

    如果你的机器上没有安装fuse,这里会报错。

  3. 编辑doc/Makefile,删除261行处general_mans等号后面的值,变成如下所示

     ...
     253 target = x86_64-unknown-linux-gnu
     254 target_alias =
     255 target_cpu = x86_64
     256 target_os = linux-gnu
     257 target_vendor = unknown
     258 top_build_prefix = ../
     259 top_builddir = ..
     260 top_srcdir = ..
     261 general_mans =
     262 chunkserver_mans = mfschunkserver.8 mfschunkserver.cfg.5 mfshdd.cfg.5
     263 master_mans = mfsmaster.8 mfsmetarestore.8 mfsmaster.cfg.5 mfsexports.cfg.5     mfstopology.cfg.5 mfsmetalogger.8 mfscgiserv.8 mfsmetalogger.cfg.5
     264 mount_mans = \
     265     mfsmount.8 mfstools.1 \
     266     mfscheckfile.1 mfsdirinfo.1 mfsfileinfo.1 mfsfilerepair.1 \
     267     mfsgetgoal.1 mfsgettrashtime.1 mfsrgetgoal.1 mfsrgettrashtime.1 \
     268     mfsrsetgoal.1 mfsrsettrashtime.1 mfssetgoal.1 mfssettrashtime.1 \
     269     mfsgeteattr.1 mfsseteattr.1 mfsdeleattr.1 \
     270     mfsappendchunks.1 mfsmakesnapshot.1
     ...
    

    这里编译chunkserver

  4. 编译

     # make -j4
    
  5. 使用checkinstall自动生成debian安装包,这里步骤同创建master安装包

     # checkinstall
    

    我们用moosefs-client来做安装包的名字。填写完毕后,直接回车就开始制作debian安装包。如果没有异常发生,则会在当前目录下多一个moosefs-client_1.6.27-1_amd64.deb的文件,并且makeinstall已经自动帮我们安装好了。

下一篇: MySQL replica