Przygotowuję nowy, dedykowany system centos 6.4 z redis. Zainstalowałem redis wiele razy, ale nigdy nie natknąłem się na ten problem (i nigdy wcześniej nie byłem na centos 6.4).
cd redis-2.6.16
sudo make install
błąd:
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"
Kiedy próbuję zbudować jemalloc bezpośrednio (z obszaru / src tarballa redis), inne błędy obejmują:
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
Próbowałem także redis 2.6.7 i mam ten sam problem.
Kopałem wszystko i nie mogę znaleźć drogi do przodu.
Odpowiedzi:
Zetknąłem się z tym samym problemem na centos 6.4 i musiałem uruchomić następujące polecenia:
Nie jestem pewien, dlaczego deps nie zostały zbudowane, myślałem, że były w przeszłości. Jednak to mnie uruchomiło z wersją redis, której potrzebowałem.
źródło
unset ARCH; make hiredis
. From github.com/redis/hiredis-rb/issues/2Miałem te same błędy po pierwszej awarii spowodowanej brakującym pakietem (gcc).
Po zainstalowaniu gcc kolejna
make
próba dała te błędy:Błędy te zostały spowodowane przez niektóre pliki pozostawione tutaj po niepowodzeniu pierwszego
make
polecenia. Najwyraźniej musiałem wyczyścić te pliki za pomocą polecenia:A potem
make
znowu i zadziałało.Źródło: https://groups.google.com/forum/#!topic/redis-db/-guYpX2OCSk
źródło
make
przed instalacjąbuild-essential
itcl8.5
.Na tym systemie
/tmp
został zamontowanynoexec
.Redis uruchamia wiele skryptów powłoki
/tmp
podczas instalacji, więc rozwiązaniem jest ponowne podłączenie/tmp
beznoexec
flagi. Robi to tymczasowo:Powinienem dodać, że to rozwiązanie dotyczy wszystkich wersji Redis 2.xi 3.x (4.x jest mi nieznana)
źródło
Czy próbowałeś zainstalować pakiet, o który prosił?
Można to znaleźć w repozytorium EPEL, które powinieneś już dodać do swojego systemu CentOS.
Pomyśl o tym,
redis
jest również w EPEL ...źródło
Rozwiązano to dla Redis 3.0.2 na RHEL-6.6 w następujący sposób:
Z katalogu instalacyjnego Redis
Uruchom
./deps/update-jemalloc.sh 3.6.0
(gdzie 3.6.0 to najnowsza wersja jemalloc, która współpracuje z Redis 3.0.2 od tego momentu)Biegać
make distclean && make
źródło
Dzieje się tak z powodu brudnego tworzenia pliku, więc przed uruchomieniem
uruchomić to:
na pewno rozwiąże wszystkie zależności.
źródło
ten sam problem, który napotkałem podczas tworzenia redis-3.0.0 na CentOS-6.6x86, spróbuj to zrobić.
źródło
Miałem ten problem po tym, jak zabiłem kompilację w połowie i próbowałem ją powtórzyć.
make clean
nie pomogło, więc nukowałem katalog i zacząłem od nowa, a wszystko dobrze się skompilowało.źródło
Początkowo po wyodrębnieniu plików z
redis.<version>.tar.gz
make nie powiodło się, ponieważ nie zainstalowano gcc:Więc zainstalowałem gcc:
Potem ponownie uruchomiłem markę, otrzymałem:
Usunąłem folder redis i ponownie rozpakowałem go.
redis.<version>.tar.gz
Ponieważ gcc jest zainstalowany tym razem, wszystko poszło pomyślnie po uruchomieniumake
. Uruchomiłem z wyodrębnionego katalogu redis:źródło