ceph中rados/rbd命令无法使用

源码编译Ceph后执行make install,这时候编译后的可执行文件安装到了/usr/local/bin目录下,执行rados或者rbd命令后显示:

[root@node build]# rados -h
rados: error while loading shared libraries: libradosstriper.so.1: cannot open shared object file: No such file or directory

这个时候看一下rados的依赖:

[root@ceph3 build]# ldd /usr/local/bin/rados
    linux-vdso.so.1 =>  (0x00007ffd19fea000)
    librados.so.2 => /lib64/librados.so.2 (0x00007f7204d6a000)
    libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f7204b2b000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f7204927000)
    libradosstriper.so.1 => not found
    libceph-common.so.0 => /usr/local/lib64/ceph/libceph-common.so.0 (0x00007f71fbde1000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f71fbbc5000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f71fb9af000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f71fb7a6000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f71fb58c000)
    libssl3.so => /lib64/libssl3.so (0x00007f71fb349000)
    libsmime3.so => /lib64/libsmime3.so (0x00007f71fb121000)
    libnss3.so => /lib64/libnss3.so (0x00007f71fadfb000)
    libnssutil3.so => /lib64/libnssutil3.so (0x00007f71fabcf000)
    libplds4.so => /lib64/libplds4.so (0x00007f71fa9ca000)
    libplc4.so => /lib64/libplc4.so (0x00007f71fa7c5000)
    libnspr4.so => /lib64/libnspr4.so (0x00007f71fa587000)
    libibverbs.so.1 => /lib64/libibverbs.so.1 (0x00007f71fa373000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f71fa06a000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f71f9d68000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f71f9b51000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f71f9790000)
    libboost_thread-mt.so.1.53.0 => /lib64/libboost_thread-mt.so.1.53.0 (0x00007f71f9579000)
    libboost_system-mt.so.1.53.0 => /lib64/libboost_system-mt.so.1.53.0 (0x00007f71f9374000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f71f916f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f720756c000)
    libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007f71f8f01000)
    libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007f71f8ce0000)

很明显,依赖的一个库文件没有找到:libradosstriper.so.1

我的机器上,这个库文件的路径是:/usr/local/lib64/

解决方案:
将库文件的路径加入到/etc/ld.so.conf文件中;
执行ldconfig生效

再次执行 ldd /usr/local/bin/rados,找到了刚才那个库文件的路径:

[root@ceph3 build]# ldd /usr/local/bin/rados
    linux-vdso.so.1 =>  (0x00007fffe62a0000)
    librados.so.2 => /usr/local/lib64/librados.so.2 (0x00007f9ce36dd000)
    libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f9ce349e000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f9ce329a000)
    libradosstriper.so.1 => /usr/local/lib64/libradosstriper.so.1 (0x00007f9ce2fac000)
    libceph-common.so.0 => /usr/local/lib64/ceph/libceph-common.so.0 (0x00007f9cda466000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9cda24a000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f9cda034000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f9cd9e2b000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f9cd9c11000)
    libssl3.so => /lib64/libssl3.so (0x00007f9cd99ce000)
    libsmime3.so => /lib64/libsmime3.so (0x00007f9cd97a6000)
    libnss3.so => /lib64/libnss3.so (0x00007f9cd9480000)
    libnssutil3.so => /lib64/libnssutil3.so (0x00007f9cd9254000)
    libplds4.so => /lib64/libplds4.so (0x00007f9cd904f000)
    libplc4.so => /lib64/libplc4.so (0x00007f9cd8e4a000)
    libnspr4.so => /lib64/libnspr4.so (0x00007f9cd8c0c000)
    libibverbs.so.1 => /lib64/libibverbs.so.1 (0x00007f9cd89f8000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f9cd86ef000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f9cd83ed000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f9cd81d6000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f9cd7e15000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f9ce3cae000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f9cd7c10000)
    libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007f9cd79a2000)
    libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007f9cd7780000)

你可能感兴趣的:(Ceph集锦)