找回密码
 新注册用户
搜索
查看: 5332|回复: 8

[原创] CentOS 7 编译 BOINC 7.14

[复制链接]
发表于 2019-3-4 10:25:15 | 显示全部楼层 |阅读模式
本帖最后由 0xCAFEBABE 于 2019-3-4 10:36 编辑

本来折腾着在 FreeBSD 上装了 BOINC,结果装好之后发现 Rosetta 和 WCG 都没包,就又把系统换成了 CentOS。

本打算直接用 yum 安装,结果试了诸如 boinc、boinc-client 之类的几个包名之后,发现在官方源里都不存在。然后又从官网下载了 sh 安装脚本,发现缺少一些老版本的依赖库,鉴于官网的二进制版本太低,于是只能手工源码编译了。

在坛子里搜索了下,也没有找到最近的在 CentOS 下编译 BOINC 的相关文章,于是只能自己动手丰衣足食了,并把过程记录下来,供其它有需要的小伙伴参考食用。


1) 首先是下载源码:
  1. >$ git clone https://github.com/BOINC/boinc boinc
复制代码
我们假设当前目录是 /home/user 将源码下载到 boinc 目录下,绝对路径即 /home/user/boinc。
然后切换分支到相应的版本上,我选择的是最新的版本 7.14.2。
  1. >$ cd boinc
  2. >$ git checkout -b client_release_7.14.2 client_release/7.14/7.14.2
复制代码



2) 安装相关的依赖库
  1. >$ sudo yum install -y openssl-devel
  2. >$ sudo yum install -y libcurl-devel
  3. >$ sudo yum install -y libnotify-devel
  4. >$ sudo yum install -y sqlite-devel
复制代码

上面是构建 boinc 所需要的依赖库,需在编译之前安装好。


3) 安装图形开发包 - wxWidgets
如果不需要编译图形管理界面,可以跳过此步骤。
在构建 boinc 时,为 configure 脚本添加 --disable-manager 参数即可禁用构建图形界面。


3.1)  安装 GTK2
由于 wxWidgets 依赖 GTK2,所以需要先安装 GTK2 相关的依赖。
  1. >$ sudo yum install -y gtk2-devel binutils-devel
复制代码

3.2) 构建  wxWidgets
  1. >$ wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.0.4/wxWidgets-3.0.4.tar.bz2
  2. >$ tar xjvf wxWidgets-3.0.4.tar.bz2
  3. >$ cd wxWidgets-3.0.4
  4. >$ ./autogen.sh
  5. >$ ./configure
  6. >$ make -j2
  7. >$ sudo make install
复制代码

4) 构建 BOINC
  1. >$ cd /home/user/boinc
  2. >$ ./_autosetup
  3. >$ ./configure --disable-server --enable-client CXXFLAGS="-O3 "
  4. >$ make -j2
复制代码
这里我们只编译客户端,不编译服务端,所以对 configure 脚本添加 --disable-server 参数。

接下来就是等待编译完成啦,然后把编译完成的二进制文件提取到 /home/user/boinc/out 文件夹下。
  1. >$ mkdir out
  2. >$ cp client/boinc out
  3. >$ cp client/boinccmd out
  4. >$ cp clientgui/boincmgr out
  5. >$ cp -r clientgui/skins out
  6. >$ cp -r locale out
复制代码

5) 运行 BOINC

最后一步就是运行 boinc,下面的命令各位要根据自己的 boinc 命令所在的路径自己做相应的修改,还要创建一个数据文件夹(在这里是/home/user/data_boinc)供 boinc 客户端存储任务数据等。
  1. >$ ./boinc --allow_remote_gui_rpc --daemon --dir /home/user/data_boinc
复制代码
通过 ps 命令确认客户端已启动之后,就可以查看 /home/user/data_boinc/gui_rpc_auth.cfg 文件里面的密码了,然后我们就可以使用这个密码远程管理这个 boinc 客户端啦。


教程就写到这里了,有什么问题欢迎回帖讨论。


参考文献:
获取源代码
构建BOINC
依赖库
GitHub


评分

参与人数 2基本分 +22 收起 理由
qiangge + 10 很给力!
horst1981 + 12 很给力!

查看全部评分

回复

使用道具 举报

发表于 2019-3-4 10:32:54 | 显示全部楼层
拜大神!拜大神!
回复

使用道具 举报

发表于 2019-3-4 11:07:23 | 显示全部楼层
debian系都是一条命令自动安装,centos不会这么挫吧……
FreeBSD没包可以试试seti,不挑食,基本每个平台都有……
回复

使用道具 举报

发表于 2019-3-4 13:43:05 | 显示全部楼层
docker 一把梭
官方支持,持续更新
- [BOINC/boinc-client-docker: The BOINC client in a Docker container]( https://github.com/BOINC/boinc-client-docker )

回复

使用道具 举报

 楼主| 发表于 2019-3-4 18:24:10 | 显示全部楼层
woclass 发表于 2019-3-4 13:43
docker 一把梭
官方支持,持续更新
- ( https://github.com/BOINC/boinc-client-docker )

看了下 Dockerfile,这是要在 CentOS 上跑一个基于 Ubuntu 的 docker,再运行 boinc 的节奏
回复

使用道具 举报

发表于 2019-3-4 21:55:33 | 显示全部楼层
0xCAFEBABE 发表于 2019-3-4 18:24
看了下 Dockerfile,这是要在 CentOS 上跑一个基于 Ubuntu 的 docker,再运行 boinc 的节奏
...

嗯,要性能还是得 native 编译,docker 就是方便。
回复

使用道具 举报

 楼主| 发表于 2019-3-4 22:31:04 | 显示全部楼层
woclass 发表于 2019-3-4 21:55
嗯,要性能还是得 native 编译,docker 就是方便。

Docker 会影响性能吗?
这个我还没研究过。

搞个 Docker 的编译环境倒是不错的,不知道能不能行。


回复

使用道具 举报

发表于 2019-3-5 08:26:32 | 显示全部楼层
0xCAFEBABE 发表于 2019-3-4 22:31
Docker 会影响性能吗?
这个我还没研究过。

搜了一搜,CPU 损失 1~3% 可以接受;I/O 延迟会加大,毕竟多了几层;再就是 docker 本身会占用一点内存。(数据出自 IBM,未核查)搞计算还可以接受。






不过本机编译可以充分的利用 CPU 支持的最快的的指令集,这个和 SETI 的优化一个原理。
docker 也相当于一层虚拟机,为了兼容性,就不会、也不应该用特有的指令集。
抛去 docker 本身带来的损失,速度也还是不如本机编译的。(具体的差距有多看就看你用的CPU有多契合计算程序)

当然你编译的是BOINC,编译对应项目才能获得对应的加速,所以实际上一般就损失 docker 本身导致的 1~3%。

还有个问题,对显卡的支持或许有点麻烦,没试过。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-4-19 22:26

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表