Nedávno jsem upgradoval PHP na části serveru.
Mám dvě verze php které jedou zároveň php8.1, php8.3 a asi i díky tomu také dvě verze phpize: phpize8.1, phpize8.3
Pro instalaci imagicku jsem použil lehce upravený postup z
Githubu:
cd /usr/share
git clone https://github.com/Imagick/imagick
mv imagick php-imagick8.1
git clone https://github.com/Imagick/imagick
mv imagick php-imagick8.3
cd php-imagick8.1
phpize8.1 && ./configure
make
make install
cd ../php-imagick8.3
phpize8.3 && ./configure
make
make install
Postup se zdá být ok, do chvíle kdy make install vypíše
Installing shared extensions: /usr/lib/php/20230831/
Installing header files: /usr/include/php/20230831/
Vypsal jsem si co to přesně dělá
make install --dry-run
/bin/bash /usr/share/php-imagick8.3/libtool --tag=CC --mode=install cp ./imagick.la /usr/share/php-imagick8.3/modules
test -d modules && \
/usr/share/php-imagick8.3/build/shtool mkdir -p /usr/lib/php/20230831
echo "Installing shared extensions: /usr/lib/php/20230831/"
rm -f modules/*.la >/dev/null 2>&1
/usr/share/php-imagick8.3/build/shtool install -c modules/* /usr/lib/php/20230831
if test "ext/imagick/php_imagick_shared.h"; then \
for i in `echo ext/imagick/php_imagick_shared.h`; do \
i=`/usr/share/php-imagick8.3/build/shtool path -d $i`; \
paths="$paths /usr/include/php/20230831/$i"; \
done; \
/usr/share/php-imagick8.3/build/shtool mkdir -p $paths && \
echo "Installing header files: /usr/include/php/20230831/" && \
for i in `echo ext/imagick/php_imagick_shared.h`; do \
if test "imagick"; then \
src=`echo $i | /usr/bin/sed -e "s#ext/imagick/##g"`; \
else \
src=$i; \
fi; \
if test -f "/usr/share/php-imagick8.3/$src"; then \
/usr/share/php-imagick8.3/build/shtool install -c -m 644 /usr/share/php-imagick8.3/$src /usr/include/php/20230831/$i; \
elif test -f "/usr/share/php-imagick8.3/$src"; then \
/usr/share/php-imagick8.3/build/shtool install -c -m 644 /usr/share/php-imagick8.3/$src /usr/include/php/20230831/$i; \
else \
(cd /usr/share/php-imagick8.3/$src && /usr/share/php-imagick8.3/build/shtool install -c -m 644 *.h /usr/include/php/20230831/$i; \
cd /usr/share/php-imagick8.3/$src && /usr/share/php-imagick8.3/build/shtool install -c -m 644 *.h /usr/include/php/20230831/$i) 2>/dev/null || true; \
fi \
done; \
fi
V této situaci by mne zajímalo pár věcí:
1) Nejsem si tak úplně jistý, jestli mohu použít více příkazů `make instal za sebou` - to co mi dělá `make instal` jsem si uvědomil až po spuštění na tom druhém adresáři a tahle otázka směřuje k tomu, zda je lepší oba adresáře smazat a zkusit to celé s drobnými úpravami znovu, nebo mohu na tom co už mám znovu spustit `make install` a udělá to to samé
2) Koukal jsem co je v adresáři `/usr/lib/php`, kam se 'instaluje' imagick, a jsou tam mimo jiné adresáře 8.1, 8.3.
Myslíte, že by bylo v pořádku tu nainstalovanou cestu vylepšit tímto adresářem?
cd /usr/lib/php/
mv 20230831 8.1/20230831
to samé by pak třeba šlo udělat i v adresáři
`/usr/include/php/`, kde takové adresáře zatím nejsou