【小技能】c分布式编译环境搭建

c分布式编译环境搭建

  • Distcc介绍
          • 1.1Distcc本地可以配置成为server端或者user端。
          • 1.2Server端生成distccd进程,并在3632端口监听任务。
          • 1.3User端使用命令行,在执行make的时候,带入参数CC=distcc,根据服务器数量的多少,-j的数量一般可以将服务器数量*4。
          • 1.4Distcc本地要指向使用的gcc / ar / ld等工具,服务器的编译工具必须是工程要使用的版本。
          • 1.5User要执行预处理,这样在编译服务器上不需要同样一套代码,这样在部署上比共享文件夹类型的分布式编译系统简单很多。
  • Distcc安装配置
          • 2.1 Server端安装可以使用:sudo apt install distcc
          • 2.2 User端安装可以使用:sudo apt install distcc distccmon-gnome distcc-pump
          • 2.3 Server和User端配置:
          • 2.3 Server端配置:
          • 2.4 User端检查当前可用服务器
          • 2.5 在User端增加配置
  • 演示和测试
          • 3.1 将配置好的n台PC打开
          • 3.2 User打开监控:distccmon-gnome
          • 3.3 进入某个编译目录,使用make直接编译,观察监控
          • 3.4 清空编译结果,使用make -j16编译,观察监控
          • 3.5 清空编译结果,使用make -j16 CC = distcc编译,观察监控
  • 自动化部署(待开发和验证)

Distcc介绍

【小技能】c分布式编译环境搭建_第1张图片

1.1Distcc本地可以配置成为server端或者user端。
1.2Server端生成distccd进程,并在3632端口监听任务。
1.3User端使用命令行,在执行make的时候,带入参数CC=distcc,根据服务器数量的多少,-j的数量一般可以将服务器数量*4。
1.4Distcc本地要指向使用的gcc / ar / ld等工具,服务器的编译工具必须是工程要使用的版本。
1.5User要执行预处理,这样在编译服务器上不需要同样一套代码,这样在部署上比共享文件夹类型的分布式编译系统简单很多。

Distcc安装配置

2.1 Server端安装可以使用:sudo apt install distcc
2.2 User端安装可以使用:sudo apt install distcc distccmon-gnome distcc-pump
2.3 Server和User端配置:

默认安装后distcc要配置在本地的PATH中,将/usr/lib/distcc加入即可:
【小技能】c分布式编译环境搭建_第2张图片
默认配置的distcc指向的是本地的gcc,在嵌入式方向要修改编译器时,需要新建链接:
cd /usr/lib/distcc
sudo ln –s …/…/bin/distcc arm-eabi-gcc
sudo ln –s …/…/bin/distcc arm-eabi-g++

2.3 Server端配置:

STARTDISTCC="true"
# 下面的 /16表示前面的IP地址16位有效,即192.168.xx.xx的用户发过来的请求都接受
ALLOWEDNETS="127.0.0.1 192.168.0.0/16"
LISTENER=""
NICE="10"
JOBS=""
ZEROCONF="true"

2.4 User端检查当前可用服务器

distcc --show-hosts

2.5 在User端增加配置

[A-IP]:3632/32,cpp,lzo
[C-IP]:3632/16,cpp,lzo
[B-IP]:3632/8,cpp,lzo

演示和测试

3.1 将配置好的n台PC打开
3.2 User打开监控:distccmon-gnome
3.3 进入某个编译目录,使用make直接编译,观察监控
3.4 清空编译结果,使用make -j16编译,观察监控
3.5 清空编译结果,使用make -j16 CC = distcc编译,观察监控

【结论】使用distcc将编译任务会发送到编译服务器上,经过分布式编译利用多台机器的协作提升效率。

自动化部署(待开发和验证)

Distcc的安装和配置比较复杂,当添加多台服务器时,重复配置耗费大量人力,当配置出错时更是需要浪费时间定位,需要开发一部分脚本方便IT部门操作。
4.1 安装配置说明书,文本文件即可。
4.2 服务器配置脚本,使用setDistccEnvServer.sh xxxPATH即可将本机设置为server。
4.3 用户端配置脚本,使用updateDistccEnvServer.sh,即可将当前可用的server自动更新,在user上使用。

你可能感兴趣的:(【软件工程】)