2016-05-10

Tesseract pod Centos - JNA problem

Problem:

Caused by: java.lang.UnsatisfiedLinkError: /tmp/jna-1347637353/jna2637488223705099160.tmp: /tmp/jna-1347637353/jna2637488223705099160.tmp: failed to map segment from shared object: Operation not permitted
        at java.lang.ClassLoader$NativeLibrary.load(Native Method) [rt.jar:1.8.0_77]
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) [rt.jar:1.8.0_77]
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824) [rt.jar:1.8.0_77]
        at java.lang.Runtime.load0(Runtime.java:809) [rt.jar:1.8.0_77]
        at java.lang.System.load(System.java:1086) [rt.jar:1.8.0_77]
        at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:851) [jna-4.2.2.jar:4.2.2 (b0)]
        at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:826) [jna-4.2.2.jar:4.2.2 (b0)]
        at com.sun.jna.Native.(Native.java:140) [jna-4.2.2.jar:4.2.2 (b0)]
        at net.sourceforge.tess4j.TessAPI1.(TessAPI1.java:41) [tess4j-3.1.0.jar:3.1.0]

Rozwiązanie problemu:

Taki problem występuje ponieważ katalog /tmp jest noexec. Są dwa sposoby na rozwiązanie tego problemu. Można usunąć noexec z /tmp albo zdefiniować inne miejsce zapisu dla tmp natywnych bibliotek. Ja wybrałem ten drugi sposób i ładnie działa. Wystarczy dopisać:

-Djava.io.tmpdir=/jakis_katalog/tmp

źródło: cloudbees.zendesk.com

2016-05-09

Java z automatyczną akceptacją licencji

Instalacja Java pod Ubuntu z automatyczną akceptacją licencji. Taka możliwość może być przydatna przy instalacji składników ze skryptu - np. przy stawianiu systemu w środowisku Docker'a (w Dockerfile).

echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
sudo apt-get install -y oracle-java8-installer

2016-05-06

Git: aktualizacja listy branchy na lokalnej maszynie

# list all branches, local and remote
$ git branch -av

# update remote list
$ git remote update origin --prune

Instalacja Python 2.7.10 pod CentOS

yum install gcc
cd /usr/src
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
tar xzf Python-2.7.10.tgz
cd Python-2.7.10
./configure
make altinstall

# python2.7 -V
Python 2.7.10

2016-05-02

Odpalenie curl'em POST'a

curl -i -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{}' http://test.pl/kabooom