[GNC] gnucash-cli says, "No quotes retrieved. Finance::Quote isn't installed properly" on macOS

John Ralls jralls at ceridwen.us
Sat Jun 12 23:49:11 EDT 2021



> On Jun 12, 2021, at 6:31 PM, Jim DeLaHunt <list+gnucash at jdlh.com> wrote:
> 
> On 2021-06-12 09:13, John Ralls wrote:
> 
>>> On Jun 12, 2021, at 12:22 AM, Jim DeLaHunt <list+gnucash at jdlh.com> wrote:
>>> 
>>> OK, I can understand that the MacPorts installation of perl may be configured to look for perl packages in MacPorts locations, and ignore the system locations. But I don't understand wny the GUI app of GnuCash apparently can find Finance::Quote when run from the GUI, but the gnucash-cli app apparently cannot. What is different?
>> Because applications started by LaunchServices don't get the environment from your shell's startup files. That means GnuCash is running /usr/bin/perl, not /opt/local/bin/perl but when you run a program from Terminal the environment is read so gnucash-cli runs /opt/local/bin/perl.
> 
> Thank you, John, this explanation is very helpful. I can understand that the GnuCash GUI and the gnucash-cli experience different environments, especially different $PATH values, because the OS invokes them in different environments.
> 
> But I find it very confusing to have gnucash-cli be presented as an integral part of GnuCash, and all the references to a singular action of "update Finance::Quote on the system", then have gnucash-cli behave differently and require a different installation of Finance::Quote than the GnuCash GUI.
> 
> It seems to me that if both gnucash-cli and the GnuCash GUI would invoke the perl executable at an absolute path, then they would have consistent behaviour. Thus I wonder why GnuCash lets the environment find the perl executable.
> 
> I have filed Bug 798209, "gnucash-cli might not use the same perl and Finance::Quote as GnuCash GUI", <https://bugs.gnucash.org/show_bug.cgi?id=798209> , to track this.
> 
> My workaround as a MacPorts user: install Finance::Quote into the MacPorts perl environment:
> 
> ```
> % port install p5-finance-quote

Jim,

I summarily dismissed your bug report. It's on users who modify their operating systems to know what they're doing.

It's standard practice nowadays to use the environment to get the executable to make it easy for users to set the one they want. That does require that users have a clue, but users without one who mess up their OS with package managers they don't understand have only themselves to blame.

There's a really simple solution for you: Just install F::Q in both perls:
  sudo /usr/bin/perl /Applications/Gnucash.app/Contents/Resources/bin/gnc-fq-update
  /opt/local/bin/perl /Applications/Gnucash.app/Contents/Resources/bin/gnc-fq-update

Regards,
John Ralls




More information about the gnucash-user mailing list