Generar un tgz de pike7.8 desde debian (instalar pike en S.O. no soportados para usar el pngrenderer, p.ej. arch, yocto/pocky)
Se hace de la siguiente manera (probado en Debian 9 y 10 x86_64, e instalado luego en arch):
cd /var/lib/dpkg/info/
cat pike*list | while read l ; do if [ -f "/$l" ] ; then echo $l >> /tmp/pike.list ; fi ; done
cat /tmp/pike.list | sort | uniq > /tmp/pike.list.1
cd /tmp/
tar -cvzf pike7.8.tgz $(cat pike.list.1)
mkdir t
cd t
tar -xvzf ../pike7.8.tgz
mkdir opt
mv usr opt/pike7.8
mkdir -p usr/bin/../lib/../share/man/man1/../../pixmaps
cd usr/bin/
ln -s ../../opt/pike7.8/bin/pike7.8 .
ln -s pike7.8 pike
cd ../lib
ln -s ../../opt/pike7.8/lib/pike7.8 .
cd ../share/man/man1/
ln -s ../../../../opt/pike7.8/share/man/man1/pike7.8.1.gz .
cd ../../pixmaps
ln -s ../../../opt/pike7.8/share/pixmaps/pike7.8.xpm .
cd ..
cd ..
cd ..
ls
tar -czf ../pike7.8_amd64.tgz opt usr
NOTA: Despues de esto, hace falta instalar la libjpeg.so.62 y quizás alguna dependencia más:
/usr/lib/pike7.8$ find . -name "*.so" -exec ldd \{\} \; | sed "s/(.*//g" | sort | uniq
p.ej. para el pngrenderer seguramente hagan falta:
libjpeg.so.62
libpng16.so.16
libfreetype.so.6
libfontconfig.so.1
libpcre.so.3
Para cogerlas en uiharu:
cd /usr/lib/pike7.8
names=$(find . -name "*.so" -exec ldd \{\} \; | sed "s/(.*//g" | sort | uniq | grep -i "jpeg\|png\|freetype\|fontconfig\|pcre" | cut -d '>' -f 2 | cut -d ' ' -f 2)
cd /tmp && rm -rf pikeso && mkdir pikeso && cd pikeso && ln -s $names /tmp/pikeso/ && tar -cvhzf /tmp/pike-dependencies_amd64.tgz * && cd /tmp && rm -rf pikeso
Con eso se obtiene lo siguiente:
- pike7.8_amd64.tgz Es el que tiene el intérprete de pike 7.8. Hay que descomprimirlo en el raíz.
- pike-dependencies_amd64.tgz Contiene algunas librerías de las que depende pike y son necesarias para funcionen los módulos que usa pngrenderer. Si vuestro sistema no trae alguna de esas librerías, poned la copia que hay en este tgz en /usr/lib.
Los tgz son para 64bit.
Una vez instalados en el equipo de destino se puede probar que funciona correctamente comprobando que lo siguiente no da ningún error:
$ pike
Pike v7.8 release 866 running Hilfe v3.5 (Incremental Pike Frontend)
> Image.Image;
(1) Result: Image.Image
> MIME.encode_base64;
(2) Result: encode_base64
> Image.Fonts.open_font;
(3) Result: _Image.Fonts.open_font
> Image.PNG.decode;
(4) Result: image_module.c:139()->decode
> Image.GIF.decode_layer;
(5) Result: _Image_GIF.decode_layer
> Image.JPEG.decode;
(6) Result: _Image_JPEG.decode
> exit
Exiting.
$
UPDATE 20200718 Añado la libpcre.so.3 a la lista de dependencias de arriba.
|