Difference between revisions of "Online Quotes"
(→cron and Non-X Usage: add MacOs (from De/Aktienhandel#Automatisierter_Kursabruf_mittels_cron)) |
m (grammar corrections) |
||
Line 2: | Line 2: | ||
==Requirements== | ==Requirements== | ||
===Perl=== | ===Perl=== | ||
− | *'''Unix''' (Linux, Solaris, AIX, HPUX,...): You probably already have perl installed. Type <code>perl -v</code> on a command line to | + | *'''Unix''' (Linux, Solaris, AIX, HPUX,...): You probably already have perl installed. Type <code>perl -v</code> on a command line to get the version number. If not, use your package manager to install it. |
− | *'''Mac OS X''' already has Perl installed. Open a Terminal application (in the Utilities folder of your Applications folder) and run <code>perl -v</code> to | + | *'''Mac OS X''' already has Perl installed. Open a Terminal application (in the Utilities folder of your Applications folder) and run <code>perl -v</code> to the version number. |
*'''Windows''': <to be moved from [[Windows#Finance::Quote]] etc.> | *'''Windows''': <to be moved from [[Windows#Finance::Quote]] etc.> | ||
Source: [http://www.perl.org/get.html] | Source: [http://www.perl.org/get.html] | ||
===Finance::Quote=== | ===Finance::Quote=== | ||
− | You need to install several Perl modules | + | You need to install several Perl modules to get online quotes. While the error message may be about Finance::Quote not being installed properly, that module alone is not sufficient. |
* You can check the ''version'' and the list of ''available modules'' by running | * You can check the ''version'' and the list of ''available modules'' by running | ||
gnc-fq-check | gnc-fq-check | ||
Line 13: | Line 13: | ||
'''Update:''' In Feb 2014 Yahoo changed their URL. So '''F::Q 1.20''' is required. | '''Update:''' In Feb 2014 Yahoo changed their URL. So '''F::Q 1.20''' is required. | ||
− | * If F::Q is missing or outdated, you need to install or update it. | + | * If F::Q is missing or outdated, you need to install or update it. It can be done with |
perl -MCPAN -e shell | perl -MCPAN -e shell | ||
install Finance::Quote | install Finance::Quote | ||
:respective | :respective | ||
upgrade Finance::Quote | upgrade Finance::Quote | ||
− | But there are easier ways | + | But there are easier ways depending on your operating system: |
:[[FAQ#Q: How do I install Finance::Quote on a Mac?]] | :[[FAQ#Q: How do I install Finance::Quote on a Mac?]] | ||
:[[Windows#Finance::Quote]] | :[[Windows#Finance::Quote]] | ||
Line 24: | Line 24: | ||
:'''Linux:''' | :'''Linux:''' | ||
:If there is no recent perl-finance-quote offered by your ''package manager'' do the following: | :If there is no recent perl-finance-quote offered by your ''package manager'' do the following: | ||
− | :As root (su / sudo) run | + | :As root (su / sudo) run the GnuCash Finance Quote update script |
gnc-fq-update | gnc-fq-update | ||
:It will install Finance::Quote and its dependencies. | :It will install Finance::Quote and its dependencies. | ||
:* Some (Ubuntu based) distributions removed it from the package. In this case you can download it from [https://raw.github.com/Gnucash/gnucash/master/src/quotes/gnc-fq-update.in github]. | :* Some (Ubuntu based) distributions removed it from the package. In this case you can download it from [https://raw.github.com/Gnucash/gnucash/master/src/quotes/gnc-fq-update.in github]. | ||
− | ::*In the first line replace <tt>@-PERL-@</tt> with the path to your perl executable, e.g. <tt>/usr/bin/perl</tt> and mark the file as executable. | + | ::*In the first line replace <tt>@-PERL-@</tt> with the path to your perl executable, e.g., <tt>/usr/bin/perl</tt> and mark the file as executable. |
::A discussion of how to set it up (in Ubuntu) can be found at [http://gnucash.1415818.n4.nabble.com/Installing-activeperl-for-automatic-retrieval-of-quotes-td4656798.html]. | ::A discussion of how to set it up (in Ubuntu) can be found at [http://gnucash.1415818.n4.nabble.com/Installing-activeperl-for-automatic-retrieval-of-quotes-td4656798.html]. | ||
Line 74: | Line 74: | ||
* '''Windows''': <tt>C:\Perl\site\lib\Finance\Quote</tt> | * '''Windows''': <tt>C:\Perl\site\lib\Finance\Quote</tt> | ||
− | You can get the path | + | You can get the path by running: |
perldoc -lm Finance::Quote | perldoc -lm Finance::Quote | ||
(Tested on Linux. Please update for: MacOS, Windows) | (Tested on Linux. Please update for: MacOS, Windows) |
Revision as of 08:12, 7 July 2015
GnuCash can update your price database by fetching quotes online via the Perl module Finance::Quote.
Contents
Requirements
Perl
- Unix (Linux, Solaris, AIX, HPUX,...): You probably already have perl installed. Type
perl -v
on a command line to get the version number. If not, use your package manager to install it. - Mac OS X already has Perl installed. Open a Terminal application (in the Utilities folder of your Applications folder) and run
perl -v
to the version number. - Windows: <to be moved from Windows#Finance::Quote etc.>
Source: [1]
Finance::Quote
You need to install several Perl modules to get online quotes. While the error message may be about Finance::Quote not being installed properly, that module alone is not sufficient.
- You can check the version and the list of available modules by running
gnc-fq-check
from the command line.
Update: In Feb 2014 Yahoo changed their URL. So F::Q 1.20 is required.
- If F::Q is missing or outdated, you need to install or update it. It can be done with
perl -MCPAN -e shell install Finance::Quote
- respective
upgrade Finance::Quote
But there are easier ways depending on your operating system:
- FAQ#Q: How do I install Finance::Quote on a Mac?
- Windows#Finance::Quote
- FAQ#Q: How do I fix a system error when getting stock quotes?
- Linux:
- If there is no recent perl-finance-quote offered by your package manager do the following:
- As root (su / sudo) run the GnuCash Finance Quote update script
gnc-fq-update
- It will install Finance::Quote and its dependencies.
- Some (Ubuntu based) distributions removed it from the package. In this case you can download it from github.
- In the first line replace @-PERL-@ with the path to your perl executable, e.g., /usr/bin/perl and mark the file as executable.
- A discussion of how to set it up (in Ubuntu) can be found at [2].
That script, as of 2.4.0, uses CPAN to install:
- LWP
- Date::Manip
- HTML::Parser
- HTML::TableExtract
- Crypt::SSLeay
- Finance::Quote
Then read the instructions.
Warning About Open Files
Updating quotes will modify the GNUCash file/database. As multi-user access is not supported (as of 2.4), the file/database should be closed prior to updating quotes.
cron and Non-X Usage
If you attempt to run
gnucash --add-price-quotes /path/to/file.gnucash
or on MacOSX:
/Applications/Gnucash.app/Contents/MacOS/Gnucash --add-price-quotes /Users/<username>/Documents/test.gnucash
without dbus running (for example, from a cron job or ssh without X forwarding), you may get errors such as
GConf Error: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. See http://projects.gnome.org/gconf/ for information. (Details - 1: Not running within active session)
One resolution for this, courtesy of SyncEvolution - The Missing Link, is to launch dbus for the duration of the quote retrieval with a cron command similar to
env `dbus-launch` sh -c 'trap "kill $DBUS_SESSION_BUS_PID" EXIT; gnucash --add-price-quotes /path/to/file.gnucash'
Note: This has been documented in Bug #639776
Technical Details
Where the files are stored depends on your OS/Distro:
- Linux depends on the way it was installed:
- by package manager: /usr/share/perl5/[vendor/]Finance/Quote
- by CPAN or gnc-fq-update: /usr/share/perl5/site/Finance/Quote
- self compiled: /usr/local/share/perl/5.xx.x/Finance/Quote
- Windows: C:\Perl\site\lib\Finance\Quote
You can get the path by running:
perldoc -lm Finance::Quote
(Tested on Linux. Please update for: MacOS, Windows)