1. ホーム
  2. レディス

redis-6.0.1 をインストールするとエラー server.c:xxxx:xx: error: 'xxxxxxx' has no member named 'xxxxxxxx'.

2022-02-23 02:28:33
<パス

もしあなたがLinuxシステムにredisをインストールする方法を知らないなら、この記事は間違いなくあなたが全体を理解するのに役立つはずです。
redis 5.0.8をインストールする

新しいバージョン6.0.1がredisウェブサイトで公開されています。

また、インストール方法も同じです。
しかし、ここでちょっとした問題が発生します。
4まで進んだら、基本環境のインストールです。ここで少しエラーが報告されていることに気がつくと思います。
次のように server.c:xxxx:xx: error: 'xxxxxxx' has no member named 'xxxxxxxx' .

[root@master redis-6.0.1]# make
......
server.c:5101:19: error: 'struct redisServer' has no member named 'sofd'
         if (server.sofd > 0)
                   ^
server.c:5102:94: error: 'struct redisServer' has no member named 'unixsocket'
             serverLog(LL_NOTICE,"The server is now ready to accept connections at %s", server.unixsocket);
                                                                                              ^
server.c:5103:19: error: 'struct redisServer' has no member named 'supervised_mode'
         if (server.supervised_mode == SUPERVISED_SYSTEMD) {
                   ^
server.c:5104:24: error: 'struct redisServer' has no member named 'masterhost'
             if (!server.masterhost) {
                        ^
server.c:5117:15: error: 'struct redisServer' has no member named 'maxmemory'
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
               ^
server.c:5117:39: error: 'struct redisServer' has no member named 'maxmemory'
......



gccのバージョンを見てみましょう。

# Check if gcc version is above 5.3, the default for centos7 is 4.8.5.
gcc -v


解決策

#Upgrade to version 5.3 and above
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

scl enable devtoolset-9 bash


注意: scl コマンドの有効化は一時的なもので、xshell をロールアウトしたり、再起動すると元の gcc バージョンに戻ります。
長期的な効果を期待する場合は、以下を実行してください。

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile


注意:このコマンドを実行した後、xshell ウィンドウを再び開くと、新しいバージョンの gcc になっています。
以下の他のバージョンも同様で、devtoolsetのバージョン番号を変更するだけです。

この時点で、もう一度gccのバージョン番号を見ることができます。

次に、4、基本環境のインストール以降を再実行すればよい。

redis 6.0.1の新しいリリースを是非お試しください。