基于ubuntu16.04的ceph v10.2.9源码编译
2017-09-27 15:56
435 查看
1.环境准备
在进行源码编译之前首先安装源码编译过程中可能用到的安装包。
安装包非常多,不同平台依赖不一样,可以根据平台configure提示安装。
2.编译代码
安装完编译环境后,可以进行代码编译。
其中,–without-librocksdb-static主要是给bluestore使用。
注意,如果是从git下载的zip源码,解压后会出现编译错误:
错误1:
需要将对应的文件修改为:
错误2:
修改:
在进行源码编译之前首先安装源码编译过程中可能用到的安装包。
apt install libtool automake cmake gcc g++ cython snappy libsnappy-dev libleveldb-dev libblkid-dev libudev-dev libkeyutils-dev libcrypto++-dev libfcgi-dev libcurl4-openssl-dev libcurl4-gnutls-dev libcurlpp-dev openssl libssl-dev fuse libfuse-dev libatomic-ops-dev librocksdb-dev libaio-dev xfslibs-dev libboost-all-dev libldap-dev
安装包非常多,不同平台依赖不一样,可以根据平台configure提示安装。
2.编译代码
安装完编译环境后,可以进行代码编译。
./install-deps.sh ./autogen.sh ./configure --without-tcmalloc --without-librocksdb-static --with-rados --with-radosgw --with-radosstriper make -j4
其中,–without-librocksdb-static主要是给bluestore使用。
注意,如果是从git下载的zip源码,解压后会出现编译错误:
错误1:
./include/rados/memory.h:1:1: error: expected unqualified-id before ‘.’ token ../memory.h
需要将对应的文件修改为:
vim src/include/rados/memory.h ../memory.h ---> #include "../memory.h" vim src/include/rados/buffer.h ../buffer.h ----> #include "../buffer.h"
错误2:
In file included from os/bluestore/BlueRocksEnv.cc:4:0: os/bluestore/BlueRocksEnv.h:10:42: fatal error: rocksdb/utilities/env_mirror.h: No such file or directory
修改:
cd src git clone https://github.com/facebook/rocksdb.git git clone https://github.com/ceph/gmock.git[/code]
错误3:/bin/bash: ./make_version: Permission denied
修改:chmod +x src/make_version
错误4:make[3]: *** No rule to make target 'erasure-code/jerasure/jerasure/src/cauchy.c', needed by 'erasure-code/jerasure/jerasure/src/libec_jerasure_generic_la-cauchy.lo'. Stop
修改:
由于此类缺少文件的错误太多,这里不一一赘述,最终采取下载官方源码或者git下载然后递归下载子模块的方式排除此类错误。
接下来就是漫长的等待期了。。。。
相关文章推荐
- OGRE学习之路01:Ubuntu16.04 下 OGRE 1.10.11 基于源码的编译安装
- [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
- Android O编译环境搭建,基于ubuntu16.04
- 玩转Ambari之二----基于ubuntu的源码编译和安装
- Ubuntu 16.04 源码编译安装PHP7
- ubuntu16.04编译android6_r1源码绕坑贴
- ubuntu 16.04 LTS 内核源码下载编译流程
- Ubuntu 16.04配置Android源码编译环境
- 基于ubuntu16.04环境编译libvirt
- 基于Ubuntu14.04 64位系统编译vlc-android源码
- [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
- ubuntu16.04编译安装mysql源码
- Ubuntu16.04+CUDA9+cudnn7+python3.5+源码编译Tensorflow1.4+opencv3.3
- Ubuntu 16.04 64bit 编译 Android 4.4 源码
- Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
- Ubuntu 16.04下载、编译Android源码
- Ubuntu 16.04源码编译安装Apache 2.4.25教程
- Ubuntu16.04 通过源码编译安装 MySQL 5.7.17
- [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
- [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程