Aktualizacja RMagick i Imagemagick to bolesne doświadczenie. Zaktualizowałem wersję Imagemagick na moim Macu (MacOS El Capitan wersja 10.11.5) z homebrew dla jednego projektu w Ruby 2.3 do6.9.5-9
$ convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09
Teraz starszy projekt w Ruby 1.8.7 odmawia pracy z komunikatem o błędzie „ta instalacja RMagick została skonfigurowana z ImageMagick 6.8.9, ale ImageMagick 6.9.5-9 jest używany”. W ten sposób odinstalowałem "rmagick", ale nie można go zainstalować ponownie
$ gem install rmagick -v 2.16.0
Building native extensions. This could take a while...
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
checking for /usr/local/opt/gcc46/bin/gcc-4.6... yes
checking for Magick-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... no
checking for sys/types.h... no
checking for wand/MagickWand.h... no
Can't install RMagick 2.16.0. Can't find MagickWand.h.
A jeśli nie można go zainstalować, cała aplikacja nie może zostać uruchomiona. Wypróbowałem wszystkie odpowiedzi tutaj i żadna z nich nie działa na MacOS :-( Ponownie zainstalowałem imagemagick i pkg-config z homebrew i wypróbowałem różne wersje RMagicka bez powodzenia. 2.16.0 jest obecnie najnowszą wersją RMagicka .
Wydaje się, że MagicWand jest używany w ImageMagick w wersji> 6.9 i można go znaleźć na komputerze:
find /usr/local -name MagickWand.h
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6/wand/MagickWand.h
find /usr/local -name MagickWand.pc
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/lib/pkgconfig/MagickCore.pc
To nie działa, nawet jeśli podam te ścieżki podczas instalacji gem (ten sam błąd co powyżej) :-(
C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick
AKTUALIZACJA:
Błąd występuje tylko w przypadku Ruby 1.8.7, można zainstalować RMagick dla Ruby 2.0 i Ruby 2.3. Wydaje się, że Ruby 1.8.7 i ImageMagick 6.9.5 nie są kompatybilne.
- Ruby 1,8,7 x
- Ruby 2.0.0 ✓
- Ruby 2.3.1 ✓
źródło
Odpowiedzi:
Aby rozwiązać problem w systemie Mac OSX Sierra, High Sierra, El Capitan, Mojave i Catalina , możesz wykonać następujące czynności:
imagemagick@6
jestkeg-only
, więc musisz wymusić tworzenie linków.źródło
brew unlink imagemagick
przed połączeniem - ale zadziałało. Wielkie dzięki.Miałem ten sam problem z ImageMagick 7.0.4-4 . Właściwa poprawka to instalacja
imagemagick@6
. Uważam, że https://github.com/Homebrew/homebrew-core/pull/8756 jest przydatny, jeśli przypadkowo usunąłeś swójimagemagick@6
lub nigdy nie miałeś go zainstalowanego w pierwszej kolejności.źródło
brew install imagemagick@6 && brew link imagemagick@6 --force
rozwiązał to dla mniebrew install --force imagemagick@6 && brew link imagemagick@6 --force
Using 6.9.8 Q16 from /usr/local/Cellar/imagemagick@6/6.9.8-3. checking for outdated ImageMagick version (<= 6.4.9)... yes checking for Ruby version >= 1.8.5... yes checking for stdint.h... no checking for sys/types.h... no checking for wand/MagickWand.h... no Can't install RMagick 2.15.0. Can't find MagickWand.h.
macOs Sierra:
źródło
Przede wszystkim odłącz zainstalowany plik imagemagick, który nie został poprawnie zainstalowany w najnowszej wersji systemu Mac High Sierra, używając.
następnie zainstaluj najnowszy imagemagic6 za pomocą poniższego polecenia
Następnie zainstaluj gem rmagick za pomocą poniższego polecenia
Będzie działać idealnie.
źródło
tak, ten rozwiązuje mój problem:
MacOS X Sierra:
źródło
Wiele rzeczy zmieniło się w ImageMagick 7, takich jak ta ścieżka:
include/.../wand
iwand/MagickWand.h
jest w tej chwili wbudowana w rmagic gem. W moim przypadku nie można było zaktualizować perełki, ponieważ projekt jest dość stary. W końcu zainstalowałem starszą wersję ImageMagic.Możesz zainstalować najnowszą wersję od 6.xx:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb
Możesz również przypiąć go do późniejszego wykorzystania:
brew pin imagemagick
źródło
Coś się zmieniło w ImageMagick 7.0.4-4 dla mnie.
wand/MagickWand.h
nie można już znaleźć:Nadal miałem ImageMagick 6.9.7-3 w swoim systemie i zmieniłem go z powrotem z
Później mogłem
rmagick
bez problemu zainstalować :źródło
RMagick zależy od przestarzałej wersji imagemagick, wersja 6. (patrz poniżej) Homebrew oferuje to jako pakiet tylko do beczek, który możesz zainstalować za pomocą:
Wynik kompilacji będzie zawierał sekcję Ostrzeżenia (również dostępną
brew info imagemagick@6
po wyczyszczeniu danych wyjściowych):Zamiast siła sieciowania, który ma potencjał, powodują problemy z innym oprogramowaniem, które ma obsługiwać nowsze wersje ImageMagick, można użyć sugerowane
export
s, aby gem RMagick odebrać starą wersję natomiast buduje:źródło
źródło
pkg-config
i zadziałała.Nie mam jeszcze reputacji, aby zostawić to jako komentarz poprawiający inną odpowiedź, ale odpowiedź @ Evgeniy28 zadziałała dla mnie na Sierra tylko po zainstalowaniu pkg-config, który nie jest instalowany domyślnie na świeżej maszynie Sierra.
Więc:
Sukces:
źródło
Postępuj zgodnie z poniższymi instrukcjami i zmień część w zależności od potrzeb.
źródło
Zainstaluj wersję imagemagick 6, ponieważ wersja 7 nie jest kompatybilna:
$ brew install imagemagick@6
Nie powinno się łączyć - wymuś starszą wersję, ponieważ zmieni to binaria na twojej ścieżce, a dobro
brew doctor
będzie narzekać.Odwołaj się do nagłówków i bibliotek z wersji 6, która została zainstalowana podczas budowania natywnego rozszerzenia gem:
$ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.10-14/lib/pkgconfig/ gem install rmagick -v '2.16.0'
Uwaga: Pracowałem dla mnie bez wskazania folderu lib i include, ponieważ jest za to odpowiedzialny pkgconfig.
Uwaga: 6.9.10-14 to najnowsza wersja imagemagick @ 6, ale możesz ją zmienić, jeśli chcesz użyć innej wersji
źródło
Oto, jak rozwiązałem (po wielu próbach i niepowodzeniach) na macOS High Sierra 10.13.3 z Homebrew:
brew uninstall imagemagick
gem install rmagick
Jeśli masz już zainstalowaną starą wersję Imagemagick, powinno to działać: https://stackoverflow.com/a/41674363
źródło
w wersji 7.0.7-1 można utworzyć dowiązanie symboliczne, ale kompilacja zakończy się niepowodzeniem w drugim przypadku.
źródło
Nie ma potrzeby, aby niczego łączyć ani odłączać, postępuj zgodnie z instrukcjami ze skryptu instalacji brew:
źródło
Ten sam błąd dotyczy kompilacji obrazu Alpine 3.9. Pochodzi z ImageMagick 7.0.8.38-r0
Aby naprawić, albo używasz alpine 3.5 z ImageMagick 6.9.6.8-r1 :
Lub zainstaluj ImageMagick 6.9.6.8-r1 z repozytorium pakietów dla 3.5:
W repozytorium rmagick jest otwarty problem dotyczący nieudanych kompilacji programu ImageMagick 7.0.x. więc miejmy nadzieję, że wkrótce zostanie to naprawione.
źródło
Coś było bardzo nie tak w moim systemie, tak bardzo, że całkowicie się popsuło, ale w końcu mogłem ponownie zainstalować RMagick for Ruby 1.8.7 po zainstalowaniu
Instalacja nowej wersji Ruby z RVM
rvm install 1.8.7
zainstalowała również nowy kompilator GCC: usunęła starszą wersję GCC 4.6 i zainstalowała GCC w wersji 4.9. Najwyraźniej GCC nie był w stanie znaleźć właściwych nagłówków pomimo pkg-config.źródło
W pełni wyjaśniam proces instalacji w ImageMagick install w centos .
tak czy owak ...
po instalacji Zainstaluj Imagick & ImageMagick-devel & ImageMagick bibliotekę PHP jak poniżej:
przejdź do / usr / include
Ważne: skopiuj folder ImageMagick z „/ usr / include” do „/ usr / local / include” dla ImageMagick znajdź „MagickWand.h”
Przetestowałem tę zmianę na imagick-3.4.3 (ImageMagick-7) i centos 6.5 i php56 i działa idealnie ...
Jeśli zainstalowałeś już program „ImageMagick” kilka razy, najpierw usuń je wszystkie i znajdź foldery „ImageMagick” i „imagick”, wyczyść je wszystkie i kontynuuj proces instalacji z tą zmianą.
Użyj następującego polecenia, aby znaleźć plik lub folder:
i kontynuuj instalację
przed poniższymi liniami nie zapomnij: idź do "php.ini" znajdź "disable_functions" i wyczyść "proc_open, popen, proc_close" ponieważ spraw, aby imagick potrzebował tych funkcji, po zakończeniu instalacji możesz dodać te funkcje do swojego " disable_functions "w pliku" php.ini ".
Powodzenia...
źródło
Dla wersji Ubuntu> 12 i nie używającej homebrew,
Jeśli w łączu wget otrzymujesz pliki „7z” zamiast plików „tar.gz”, to
Następnie możesz wznowić swój pakiet dla RMagick.
źródło
Po pierwsze, nie musisz odinstalowywać programu imagemagick, jeśli ma zainstalowaną wersję 6.x, jak pokazano poniżej. Możesz zobaczyć aktualny „główny”,
7.0.7-8
ale6.9.1-10
nadal tam jest.Jeśli nie masz starej wersji 6.x, następnie zainstalować ImageMagick @ 6.
Po drugie, nie wymuszaj link imagemagick, szczególnie nie 6. EDYCJA: Zobacz ¹
Oprócz flag --with-opt- * musisz ustawić PKG_CONFIG_PATH.
To działa dla mnie na High Sierra z wyżej wymienioną konfiguracją parzenia na Ruby 1.9.3-p551:
Tworzenie dokumentów ri kończy się niepowodzeniem, ale to nie ma znaczenia.
¹: Prace budowlane, ścieżka dylib, której szuka RMagick, jest jednak zła. Podniesiono numer 278, aby wyjaśnić, czy można to naprawić. W przeciwnym razie konieczne jest ręczne połączenie symboliczne libMagickWand itp. Wciąż bezpieczniejsze może być ręczne połączenie określonych bibliotek niż
brew link --force
chociaż.źródło