Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
March 15, 2019 what am I missing here with that working dir? | ||||
---|---|---|---|---|
| ||||
I'd like to call a executable which works fine on terminal if called within the bin directory otherwise it give missing issues. To archive the same on my D program, I did set the working dir but I get an error saying a .so file couldn't be found. What am I missing here? enum app = "/path/to/wkhtmltox-0.12.4_linux-generic-i386/wkhtmltox/bin/wkhtmltopdf"; enum html = "/path/to/my/htmlFile.htm"; enum pdf = "/path/to/output/foo.pdf"; // is this the correct working dir? enum workingDir = "/path/to/wkhtmltox-0.12.4_linux-generic-i386/wkhtmltox/bin"; import std.process : execute, Config; auto conv = execute([app, html,pdf], null, Config.none, size_t.max, workingDir); writeln(conv); Gives the error: Tuple!(int, "status", string, "output")(127, "/path/to/wkhtmltox-0.12.4_linux-generic-i386/wkhtmltox/bin/wkhtmltopdf" error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory\n") |
March 16, 2019 Re: what am I missing here with that working dir? | ||||
---|---|---|---|---|
| ||||
Posted in reply to DFTW | On Friday, 15 March 2019 at 21:48:50 UTC, DFTW wrote:
> What am I missing here?
Maybe the terminal and your utility you run wkhtmltopdf from have different environment?
|
March 18, 2019 Re: what am I missing here with that working dir? | ||||
---|---|---|---|---|
| ||||
Posted in reply to FreeSlave | On Saturday, 16 March 2019 at 07:27:43 UTC, FreeSlave wrote: > On Friday, 15 March 2019 at 21:48:50 UTC, DFTW wrote: >> What am I missing here? > > Maybe the terminal and your utility you run wkhtmltopdf from have different environment? I guessed so, I've tried set the env as well: enum env = ["LD_LIBRARY_PATH" : "/path/to/wkhtmltox-0.12.4_linux-generic-i386/wkhtmltox/lib"]; import std.process : execute, Config; auto conv = execute([app, html,pdf], env, Config.newEnv, size_t.max, workingDir); but that doesn't work either. |
March 18, 2019 Re: what am I missing here with that working dir? | ||||
---|---|---|---|---|
| ||||
Posted in reply to DFTW | On Monday, 18 March 2019 at 15:23:46 UTC, DFTW wrote: > On Saturday, 16 March 2019 at 07:27:43 UTC, FreeSlave wrote: >> On Friday, 15 March 2019 at 21:48:50 UTC, DFTW wrote: >>> What am I missing here? >> >> Maybe the terminal and your utility you run wkhtmltopdf from have different environment? > > I guessed so, I've tried set the env as well: > > enum env = ["LD_LIBRARY_PATH" : > "/path/to/wkhtmltox-0.12.4_linux-generic-i386/wkhtmltox/lib"]; > import std.process : execute, Config; > auto conv = execute([app, html,pdf], > env, > Config.newEnv, > size_t.max, > workingDir); > but that doesn't work either. My assumption is, the issue is not related to D or the working dir. It is more a linux thing. Maybe you also try function executeShell. Also did you have a look e.g here https://www.google.com/amp/s/www.cyberciti.biz/faq/debian-ubuntu-linux-wkhtmltopdf-error-while-loading-shared-libraries-libxrender-so-1/amp/ Kind regards Andre |
March 18, 2019 Re: what am I missing here with that working dir? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andre Pany | On Monday, 18 March 2019 at 15:39:39 UTC, Andre Pany wrote:
> On Monday, 18 March 2019 at 15:23:46 UTC, DFTW wrote:
>> On Saturday, 16 March 2019 at 07:27:43 UTC, FreeSlave wrote:
>>> [...]
>>
>> I guessed so, I've tried set the env as well:
>>
>> enum env = ["LD_LIBRARY_PATH" :
>> "/path/to/wkhtmltox-0.12.4_linux-generic-i386/wkhtmltox/lib"];
>> import std.process : execute, Config;
>> auto conv = execute([app, html,pdf],
>> env,
>> Config.newEnv,
>> size_t.max,
>> workingDir);
>> but that doesn't work either.
>
> My assumption is, the issue is not related to D or the working dir. It is more a linux thing. Maybe you also try function executeShell. Also did you have a look e.g here
> https://www.google.com/amp/s/www.cyberciti.biz/faq/debian-ubuntu-linux-wkhtmltopdf-error-while-loading-shared-libraries-libxrender-so-1/amp/
>
> Kind regards
> Andre
Also did you try, just this command?
auto conv = execute([app, html,pdf]);
As you use absolute paths, the working directory is not relevant.
Kind regards
Andre
|
March 18, 2019 Re: what am I missing here with that working dir? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andre Pany | On Monday, 18 March 2019 at 15:39:39 UTC, Andre Pany wrote:
> On Monday, 18 March 2019 at 15:23:46 UTC, DFTW wrote:
>> On Saturday, 16 March 2019 at 07:27:43 UTC, FreeSlave wrote:
>>> On Friday, 15 March 2019 at 21:48:50 UTC, DFTW wrote:
>>>> What am I missing here?
>>>
>>> Maybe the terminal and your utility you run wkhtmltopdf from have different environment?
>>
>> I guessed so, I've tried set the env as well:
>>
>> enum env = ["LD_LIBRARY_PATH" :
>> "/path/to/wkhtmltox-0.12.4_linux-generic-i386/wkhtmltox/lib"];
>> import std.process : execute, Config;
>> auto conv = execute([app, html,pdf],
>> env,
>> Config.newEnv,
>> size_t.max,
>> workingDir);
>> but that doesn't work either.
>
> My assumption is, the issue is not related to D or the working dir. It is more a linux thing. Maybe you also try function executeShell. Also did you have a look e.g here
> https://www.google.com/amp/s/www.cyberciti.biz/faq/debian-ubuntu-linux-wkhtmltopdf-error-while-loading-shared-libraries-libxrender-so-1/amp/
>
> Kind regards
> Andre
You're right, it's a linux issue. I did get rid of the binaries I've had and compile from the source code on my own, just passing the aditional LD_LIBRARY_PATH set to where the .so files were located, it worked fine!
|
Copyright © 1999-2021 by the D Language Foundation