Ich richte ein neues, dediziertes Centos 6.4-System mit Redis ein. Ich habe redis viele Male installiert, habe dieses Problem jedoch noch nie behoben (und war noch nie bei Centos 6.4).
cd redis-2.6.16
sudo make install
Error:
MAKE jemalloc
cd jemalloc && ./configure --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS=""
/bin/sh: ./configure: Permission denied
make[2]: *** [jemalloc] Error 126
make[2]: Leaving directory `/tmp/redis32/redis-3.2.6/deps'
make[1]: [persist-settings] Error 2 (ignored)
sh: ./mkreleasehdr.sh: Permission denied
and later:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
Wenn ich versuche, jemalloc direkt zu erstellen (aus dem / src-Bereich des redis-Tarballs), sind andere Fehler:
cd src && make jemalloc
sh: ./mkreleasehdr.sh: Permission denied
make[1]: Entering directory `/tmp/rediswork/redis-2.6.16/src'
make[1]: *** No rule to make target `jemalloc'. Stop.
make[1]: Leaving directory `/tmp/rediswork/redis-2.6.16/src'
make: *** [jemalloc] Error 2
Ich habe auch versucht, Redis 2.6.7 und haben das gleiche Problem.
Ich habe überall gegraben und kann keinen Weg vorwärts finden.
Antworten:
Auf Centos 6.4 stieß ich auf dasselbe Problem und musste die folgenden Befehle ausführen:
Ich bin mir nicht sicher, warum die Deps nicht gebaut wurden. Ich dachte, sie wären in der Vergangenheit. Dies brachte mich jedoch zum Laufen mit der Version von Redis, die ich brauchte.
quelle
unset ARCH; make hiredis
. Von github.com/redis/hiredis-rb/issues/2Ich hatte die gleichen Fehler nach einem ersten Fehler, der durch ein fehlendes Paket (gcc) verursacht wurde.
Nach der Installation von gcc
make
ergab ein weiterer Versuch die folgenden Fehler:Diese Fehler wurden durch einige Dateien verursacht, die nach dem Fehlschlagen des ersten
make
Befehls hier zurückgelassen wurden. Anscheinend musste ich diese Dateien mit dem folgenden Befehl bereinigen:Und dann
make
wieder, und es hat funktioniert.Quelle: https://groups.google.com/forum/#!topic/redis-db/-guYpX2OCSk
quelle
make
vor der Installationbuild-essential
undtcl8.5
.Auf diesem System
/tmp
wurde montiertnoexec
.Redis führt
/tmp
während der Installation eine Reihe von Shell-Skripten aus , sodass die Lösung darin besteht, die Bereitstellung/tmp
ohne dasnoexec
Flag fortzusetzen . Dies macht dies vorübergehend:Ich sollte hinzufügen, dass diese Lösung für alle Redis 2.x- und 3.x-Versionen gilt (4.x ist mir bisher unbekannt).
quelle
Haben Sie versucht, das gewünschte Paket zu installieren?
Diese finden Sie im EPEL-Repository, das Sie Ihrem CentOS-System bereits hinzugefügt haben sollten.
Kommen Sie zu denken,
redis
ist auch in EPEL ...quelle
Dies wurde für Redis 3.0.2 unter RHEL-6.6 wie folgt behoben:
Aus dem Redis-Installationsverzeichnis
Ausführen
./deps/update-jemalloc.sh 3.6.0
(wobei 3.6.0 die neueste Version von jemalloc ist, die mit Redis 3.0.2 zum Zeitpunkt des Schreibens funktioniert)Lauf
make distclean && make
quelle
Es kommt vor, dass die make-Datei verschmutzt ist, bevor sie ausgeführt wird
führe dies aus:
Sicher, es wird alle Abhängigkeiten lösen.
quelle
Das gleiche Problem, das ich beim Erstellen von Redis-3.0.0 unter CentOS-6.6x86 hatte, versuchen Sie dies, um es zu erstellen.
quelle
Ich hatte dieses Problem, nachdem ich den Build auf halbem Weg beendet und versucht hatte, es erneut zu erstellen.
make clean
hat nicht geholfen, also habe ich das Verzeichnis ausgebessert und von vorne angefangen, und es hat sich gut kompiliert.quelle
Zunächst schlug das Extrahieren von Dateien aus
redis.<version>.tar.gz
make fehl, da kein gcc installiert war:Also habe ich gcc installiert:
Dann ließ ich das make nochmal laufen, ich erhielt:
Ich habe den Ordner "redis extraced" entfernt und aus "
redis.<version>.tar.gz
.Since" erneut extrahiert. Da diesmal "gcc" installiert ist, lief beim Ausführen alles erfolgreichmake
. Ich lief von innen redis extrahiertes Verzeichnis:quelle