View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

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.