Je mets en place un nouveau système centos 6.4 dédié avec redis. J'ai installé redis plusieurs fois, mais je n'ai jamais rencontré ce problème (et je n'ai jamais été sur centos 6.4 auparavant).
cd redis-2.6.16
Sudo make install
erreur:
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"
Lorsque j'essaie de construire jemalloc directement (à partir de la zone/src de l'archive tar redis), d'autres erreurs incluent:
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
J'ai également essayé redis 2.6.7 et j'ai le même problème.
J'ai creusé partout et je ne trouve aucune voie à suivre.
Sur ce système /tmp
a été monté noexec
.
Redis exécute un certain nombre de scripts Shell à partir de /tmp
lors de son installation, la solution est donc de remonter /tmp
sans l'indicateur noexec
. Cela le fait temporairement:
mount -o remount,exec /tmp
Je dois ajouter que cette solution s'applique à toutes les versions redis 2.x et 3.x (4.x m'est inconnu)
J'ai rencontré le même problème sur centos 6.4 et j'ai dû exécuter les commandes suivantes:
cd deps
make hiredis jemalloc linenoise lua geohash-int
cd ..
make install
Je ne sais pas pourquoi les dépôts n'étaient pas construits, je pensais qu'ils l'étaient dans le passé. Cependant, cela m'a permis de démarrer avec la version de redis dont j'avais besoin.
J'ai eu les mêmes erreurs après un premier échec causé par un paquet manquant (gcc).
Donc, après l'installation de gcc, une autre tentative de make
a donné ces erreurs:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
Ces erreurs ont été causées par certains fichiers laissés ici après l'échec de la première commande make
. Apparemment, j'ai dû nettoyer ces fichiers, avec la commande:
make distclean
Et puis make
à nouveau, et cela a fonctionné.
Source: https://groups.google.com/forum/#!topic/redis-db/-guYpX2OCSk
Avez-vous essayé d'installer le package demandé?
yum install jemalloc-devel
Cela peut être trouvé dans le référentiel EPEL, que vous devriez déjà avoir ajouté à votre système CentOS.
À bien y penser, redis
est aussi dans EPEL ...
Cela se produit en raison d'un fichier de création sale avant l'exécution
$ Sudo make
lance ça:
$ make distclean
bien sûr, cela résoudra toutes les dépendances.
Résolution de ce problème pour Redis 3.0.2 sur RHEL-6.6 comme suit:
Depuis le répertoire d'installation de Redis,
Courir ./deps/update-jemalloc.sh 3.6.0
(où 3.6.0 est la dernière version de jemalloc qui fonctionne avec Redis 3.0.2 à ce jour)
Courir make distclean && make
J'ai eu ce problème après avoir tué le build à mi-chemin et essayé de le refaire. make clean
n'a pas aidé alors j'ai supprimé le répertoire et recommencé, et il s'est bien compilé.
même problème que j'ai rencontré lors de la création de redis-3.0.0 sur CentOS-6.6x86, essayez ceci pour le faire.
make MALLOC=libc
Au début, après avoir extrait des fichiers de redis.<version>.tar.gz
make a échoué car aucun gcc n'était installé:
gcc: Command not found
J'ai donc installé gcc:
Sudo yum install gcc-c++
Puis j'ai relancé la marque, j'ai reçu:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
J'ai supprimé le dossier redis extrait et l'ai ré-extrait de redis.<version>.tar.gz
.Comme gcc est installé cette fois, tout s'est bien passé lorsque j'ai exécuté make
. J'ai couru depuis le répertoire extrait de redis:
Sudo make install