redis 安装cannot find 'ld'


进行redis 安装

tar -zxvf redis-2.8.9.tar.gz

yum install gcc -y

cd redis-2.8.9

make MALLOC=libc

 

  CC notify.o

    CC setproctitle.o

    CC hyperloglog.o

    LINK redis-server

collect2: fatal error: cannot find 'ld'

compilation terminated.

make[1]: *** [redis-server] Error 1

make[1]: Leaving directory `/opt/redis-2.8.9/src'

 

解决步骤:

 

[root@localhost redis-2.8.9]# whereis ld

ld: /usr/bin/ld /usr/bin/ld.bfd /usr/bin/ld.gold /usr/share/man/man1/ld.1.gz

[root@localhost redis-2.8.9]# ll /usr/bin/ld*

lrwxrwxrwx 1 root root    0   Nov 21 22:19 /usr/bin/ld -> /etc/alternatives/ld

文件的大小是0肯定有问题。

[root@localhost redis-2.8.9]# rpm -qf /usr/bin/ld

binutils-2.23.52.0.1-55.el7.x86_64

把安装包卸了再装

[root@localhost redis-2.8.9]# rpm -e binutils --nodeps

[root@localhost redis-2.8.9]# rpm -ivh binutils-2.23.52.0.1-55.el7.x86_64.rpm

不成功,提示更新ld文件失败。

[root@localhost bin]# pwd

/usr/bin

从其它正常机器复制文件 /etc/alternatives/ld文件,并重新做链接,如下图所示:

ln -s /etc/alternatives/ld  ld

[root@localhost bin]# ls -l ld*

lrwxrwxrwx 1 root root      20 Nov 21 22:19 ld -> /etc/alternatives/ld

-rwxr-xr-x 1 root root  902472 Nov 20  2015 ld.bfd

-rwxr-xr-x 1 root root    5302 Aug  2 13:16 ldd

-rwxr-xr-x 1 root root 4158056 Nov 20  2015 ld.gold

重新编译,成功

[root@localhost redis-2.8.9]# make MALLOC=libc

cd src && make all

make[1]: Entering directory `/opt/redis-2.8.9/src'

    LINK redis-server

    INSTALL redis-sentinel

    CC redis-cli.o

    LINK redis-cli

    CC redis-benchmark.o

    LINK redis-benchmark

    CC redis-check-dump.o

    LINK redis-check-dump

    CC redis-check-aof.o

    LINK redis-check-aof

 

Hint: To run 'make test' is a good idea ;)

 

make[1]: Leaving directory `/opt/redis-2.8.9/src'

[root@localhost redis-2.8.9]#