openeuler ceph10编译问题

简介: ceph10在openeuler环境上的编译问题

RPM install

cat ceph.spec | grep BuildRequires | awk -F' ' '{print $2}' | xargs -i yum install -y {}
# 缺少rpm包
libxio-devel redhat-rpm-config FastCGI-devel libexpat-devel babeltrace-devel Cython redhat-lsb-core python-Sphinx  openldap2-devel lsb-release libopenssl-devel keyutils-devel mozilla-nss-devel btrfsprogs libbz2-devel systemd-rpm-macros python-nose python-devel 

make ERROR:

1. signal error 找不到 sys_siglist
# define sig_str(signum) strsignal(signum)
//#ifndef HAVE_REENTRANT_STRSIGNAL
//# define sig_str(signum) sys_siglist[signum]
//#else
//# define sig_str(signum) strsignal(signum)
//#endif


2. boost错误,删除调用函数
rbd_replay/Replayer.cc: In member function ‘void rbd_replay::Replayer::wait_for_actions(const Dependencies&)’:
rbd_replay/Replayer.cc:342:141: error: no matching function for call to ‘boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000>::subsecond_duration(float)’
  342 |     boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(dep.time_delta * m_latency_multiplier / 1000));
      |                                                                                                                                             ^
In file included from /usr/include/boost/date_time/posix_time/posix_time_config.hpp:16,
                 from /usr/include/boost/date_time/posix_time/posix_time_system.hpp:13,
                 from /usr/include/boost/date_time/posix_time/ptime.hpp:12,
                 from /usr/include/boost/date_time/posix_time/posix_time_types.hpp:12,
                 from /usr/include/boost/thread/thread_time.hpp:11,
                 from /usr/include/boost/thread/lock_types.hpp:18,
                 from /usr/include/boost/thread/pthread/mutex.hpp:16,
                 from /usr/include/boost/thread/mutex.hpp:16,
                 from rbd_replay/Replayer.hpp:18,
                 from rbd_replay/Replayer.cc:15:
/usr/include/boost/date_time/time_duration.hpp:296:36: note: candidate: ‘template<class T> constexpr boost::date_time::subsecond_duration<base_duration, frac_of_second>::subsecond_duration(const T&, typename boost::enable_if<boost::is_integral<T>, void>::type*) [with T= T; base_duration = boost::posix_time::time_duration; long int frac_of_second = 1000000]’
  296 |     BOOST_CXX14_CONSTEXPR explicit subsecond_duration(T const& ss,
      |                                    ^~~~~~~~~~~~~~~~~~
/usr/include/boost/date_time/time_duration.hpp:296:36: note:   template argument deduction/substitution failed:
/usr/include/boost/date_time/time_duration.hpp: In substitution of ‘template<class T> constexpr boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000>::subsecond_duration(const T&, typename boost::enable_if<boost::is_integral<T>, void>::type*) [with T = float]’:
rbd_replay/Replayer.cc:342:141:   required from here
/usr/include/boost/date_time/time_duration.hpp:296:36: error: no type named ‘type’ in ‘struct boost::enable_if<boost::is_integral<float>, void>’
In file included from /usr/include/boost/date_time/posix_time/posix_time_config.hpp:16,
                 from /usr/include/boost/date_time/posix_time/posix_time_system.hpp:13,
                 from /usr/include/boost/date_time/posix_time/ptime.hpp:12,
                 from /usr/include/boost/date_time/posix_time/posix_time_types.hpp:12,
                 from /usr/include/boost/thread/thread_time.hpp:11,
                 from /usr/include/boost/thread/lock_types.hpp:18,
                 from /usr/include/boost/thread/pthread/mutex.hpp:16,
                 from /usr/include/boost/thread/mutex.hpp:16,
                 from rbd_replay/Replayer.hpp:18,
                 from rbd_replay/Replayer.cc:15:
/usr/include/boost/date_time/time_duration.hpp:281:30: note: candidate: ‘constexpr boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000>::subsecond_duration(const boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000000>&


3. 指针问题
./common/dout.h:82:12: error: base operand of ‘->’ is not a pointer
   82 |   _ASSERT_H->_log->submit_entry(_dout_e);  \
      |            ^~
./common/dout.h:82:12: note: in definition of macro ‘dendl’
   82 |   _ASSERT_H->_log->submit_entry(_dout_e);  \
      |            ^~
./common/dout.h:62:18: warning: unused variable ‘_dout_cct’ [-Wunused-variable]
   62 |     CephContext *_dout_cct = cct;     \
      |                  ^~~~~~~~~
./common/dout.h:62:18: note: in definition of macro ‘dout_impl’
   62 |     CephContext *_dout_cct = cct;     \
      |                  ^~~~~~~~~
test/librados_test_stub/TestWatchNotify.cc:267:5: note: in expansion of macro ‘ldout’
  267 |     ldout(m_cct, 10) << "oid=" << oid << ", notify_id=" << notify_id
      |     ^~~~~
./common/dout.h:82:12: error: base operand of ‘->’ is not a pointer
   82 |   _ASSERT_H->_log->submit_entry(_dout_e);
   
相关文章
|
分布式计算 关系型数据库 MySQL
DolphinScheduler安装部署
DolphinScheduler安装部署
1201 0
|
缓存 Perl
如何修改openeuler为阿里源
修改openeuler为阿里源
3710 0
|
运维 资源调度 Kubernetes
Kubernetes Scheduler Framework 扩展: 1. Coscheduling
# 前言 ## 为什么Kubernetes需要Coscheduling功能? Kubernetes目前已经广泛的应用于在线服务编排,为了提升集群的的利用率和运行效率,我们希望将Kubernetes作为一个统一的管理平台来管理在线服务和离线作业。但是默认的调度器是以Pod为调度单元进行依次调度,不会考虑Pod之间的相互关系。但是很多数据计算类的作业具有All-or-Nothing特点,要求所有的
2964 0
|
资源调度 Kubernetes 应用服务中间件
Kubernetes Scheduler Framework 扩展: 2. Binpack
# 前言 ## 为什么需要Binpack功能? Kubernetes默认开启的资源调度策略是`LeastRequestedPriority`,消耗的资源最少的节点得分最高,优先被调度。这样的资源选择情况有可能导致较多的资源碎片,如下图所示,两个节点各剩余1GPU的资源,导致申请2GPU的作业无法调度,导致整体资源使用率下降。 如果使用的资源调度策略是Binpack,优先将节点
1813 0
|
20天前
|
存储 NoSQL Java
APScheduler简介
APScheduler简介
39 0
|
20天前
|
Kubernetes 监控 调度
|
7月前
|
Kubernetes Linux Docker
suse 12 二进制部署 Kubernetets 1.19.7 - 第08章 - 部署kube-scheduler组件
suse 12 二进制部署 Kubernetets 1.19.7 - 第08章 - 部署kube-scheduler组件
23 0
|
11月前
|
自然语言处理 分布式计算 数据可视化
DolphinScheduler
DolphinScheduler是一款开源的分布式任务调度系统,它基于分布式架构设计,支持多租户、多语言、多框架、多数据源等特性。DolphinScheduler提供了可视化的工作流设计器和任务调度管理界面,使得任务的调度和管理更加方便和可靠。
425 0
|
12月前
|
负载均衡 网络协议 Linux
Anolis/openEuler 下 DPVS 的编译与部署
海光C86 7169+Anolis/openEuler 部署 DPVS v1.9.4版本;
785 0
Anolis/openEuler 下 DPVS 的编译与部署
QGS
|
人工智能 安全 Java
(openEuler-x86)安装配置OpenJDK1.8+TongWeb7.0
openEuler是一款开源操作系统。当前openEuler内核源于Linux,支持鲲鹏及其它多种处理器,能够充分释放计算芯片的潜能,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统,适用于数据库、大数据、云计算、人工智能等应用场景。同时,openEuler是一个面向全球的操作系统开源社区,通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统,推动软硬件应用生态繁荣发展。
QGS
366 0