Hi Christian,

Interestingly, proc:execute("/usr/local/bin/tesseract") works (I have BaseX 9.2).

proc:system("/usr/local/bin/tesseract") returns the following:

> SET DEBUG true
DEBUG: true
> XQUERY proc:system("/usr/local/bin/tesseract")
org.basex.query.QueryException: 
at org.basex.query.func.proc.ProcSystem.item(ProcSystem.java:26)
at org.basex.query.expr.ParseExpr.value(ParseExpr.java:50)
at org.basex.query.expr.ParseExpr.iter(ParseExpr.java:45)
at org.basex.query.scope.MainModule.iter(MainModule.java:97)
at org.basex.query.QueryContext.iter(QueryContext.java:332)
at org.basex.query.QueryProcessor.iter(QueryProcessor.java:90)
at org.basex.core.cmd.AQuery.query(AQuery.java:107)
at org.basex.core.cmd.XQuery.run(XQuery.java:22)
at org.basex.core.Command.run(Command.java:257)
at org.basex.core.Command.execute(Command.java:93)
at org.basex.api.client.LocalSession.execute(LocalSession.java:132)
at org.basex.api.client.Session.execute(Session.java:36)
at org.basex.core.CLI.execute(CLI.java:92)
at org.basex.core.CLI.execute(CLI.java:76)
at org.basex.BaseX.console(BaseX.java:176)
at org.basex.BaseX.<init>(BaseX.java:151)
at org.basex.BaseX.main(BaseX.java:42)
org.basex.core.BaseXException: Stopped at ., 1/12:
[proc:code0001] 
at org.basex.core.Command.execute(Command.java:94)
at org.basex.api.client.LocalSession.execute(LocalSession.java:132)
at org.basex.api.client.Session.execute(Session.java:36)
at org.basex.core.CLI.execute(CLI.java:92)
at org.basex.core.CLI.execute(CLI.java:76)
at org.basex.BaseX.console(BaseX.java:176)
at org.basex.BaseX.<init>(BaseX.java:151)
at org.basex.BaseX.main(BaseX.java:42)
Caused by: org.basex.query.QueryException: 
at org.basex.query.func.proc.ProcSystem.item(ProcSystem.java:26)
at org.basex.query.expr.ParseExpr.value(ParseExpr.java:50)
at org.basex.query.expr.ParseExpr.iter(ParseExpr.java:45)
at org.basex.query.scope.MainModule.iter(MainModule.java:97)
at org.basex.query.QueryContext.iter(QueryContext.java:332)
at org.basex.query.QueryProcessor.iter(QueryProcessor.java:90)
at org.basex.core.cmd.AQuery.query(AQuery.java:107)
at org.basex.core.cmd.XQuery.run(XQuery.java:22)
at org.basex.core.Command.run(Command.java:257)
at org.basex.core.Command.execute(Command.java:93)
... 7 more
Stopped at ., 1/12:
[proc:code0001] 




On Nov 13, 2019, at 5:50 PM, Christian Grün <christian.gruen@gmail.com> wrote:

Hi Giuseppe,

When I try to run
proc:system("/usr/local/bin/tesseract") I get the error [proc:code0001]

On my system, I get the (expected) error…

[proc:error] Cannot run program "/usr/local/bin/tesseract":
CreateProcess error=2, Das System kann die angegebene Datei nicht finden

…so we may need to find out what code 1 means in your case. Could you
run the query with debugging enabled and pass us on the stack trace?

And your error code indicates that you are using an older version of
BaseX. Does it work with a more recent version? If not, what do you
get?

Best,
Christian





Similarly:

proc:system("tesseract") returns [proc:error] Cannot run program "tesseract": error=2, No such file or directory

Similarly:

proc:system("tesseract", (), map {"dir" : "/usr/local/bin/"}) returns [proc:error] Cannot run program "tesseract" (in directory "/usr/local/bin"): error=2, No such file or directory

The command "tesseract" works at the command line. I suspect there may be a problem with permissions: is there a way to overcome this error? Thanks.

Best,
Giuseppe