162 lines
5.4 KiB
Text
162 lines
5.4 KiB
Text
h1. Ledger: Command-Line Accounting
|
|
|
|
Ledger is a powerful, double-entry accounting system that is accessed from the
|
|
UNIX command-line. This may put off some users, since there is no flashy UI,
|
|
but for those who want unparalleled reporting access to their data there are
|
|
few alternatives.
|
|
|
|
h2. For the Impatient
|
|
|
|
I know, you just want to build and play. If you have all the dependencies
|
|
installed (see below), then simply do this:
|
|
|
|
<pre>
|
|
git clone git://github.com/jwiegley/ledger.git
|
|
cd ledger && ./acprep update # Update to the latest, configure, make
|
|
</pre>
|
|
|
|
Now try your first ledger command:
|
|
|
|
<pre>
|
|
./ledger -f doc/sample.dat reg
|
|
</pre>
|
|
|
|
h2. To the Rest
|
|
|
|
If you're reading this file, you have in your hands the Bleeding Edge. This
|
|
may very well *not* be what you want, since it's not guaranteed to be in a
|
|
functionally complete state. It's under active development, and may change in
|
|
any way at any time.
|
|
|
|
What you may prefer is the current stable release, or the current beta branch.
|
|
The *BETA* is what I prefer people use, since I still have a chance to fix
|
|
major bugs that you find. Just e-mail me, or post to the mailing list,
|
|
they'll become a part of my work list.
|
|
|
|
|*RELEASE*|@git checkout v2.6.3@|
|
|
|*CURRENT*|@git checkout maint@|
|
|
|*BETA*|@git checkout -b master origin/master@|
|
|
|*ALPHA*|@git checkout -b next origin/next@|
|
|
|
|
There are also several topic branches which contain experimental features,
|
|
though none of these are guaranteed to compile. Best to chat with me on
|
|
"IRC":irc//irc.freenode.net/ledger or via the
|
|
"mailing list":http://groups.google.com/group/ledger-cli before going too
|
|
much further with those.
|
|
|
|
h2. Dependencies
|
|
|
|
If you wish to proceed in this venture, you'll need a few dependencies. The
|
|
easiest way to get them for your platform is to run:
|
|
|
|
<pre>
|
|
./acprep dependencies
|
|
</pre>
|
|
|
|
If that doesn't completely work, read on.
|
|
|
|
h3. For building the current master branch
|
|
|
|
|_.Library|_.Min.Ver.|_.When needed|
|
|
|Boost|1.35||
|
|
|GMP|4.2.2||
|
|
|MPFR|2.4.0||
|
|
|gettext|0.17|_optional_|
|
|
|libedit|20090111-3.0|_optional_|
|
|
|Python|2.4|_optional_|
|
|
|doxygen|1.5.7.1|_optional_, for @make docs@|
|
|
|graphviz|2.20.3|_optional_, for @make docs@|
|
|
|texinfo|4.13|_optional_, for @make docs@|
|
|
|lcov|1.6|_optional_, for @make report@, used with @./acprep gcov@|
|
|
|sloccount|2.26|_optional_, for @make sloc@|
|
|
|
|
h3. For building the current @maint@ branch
|
|
|
|
|_.Library|_.Min.Ver.|_.When needed|
|
|
|GMP|4.2.2||
|
|
|pcre|7.7||
|
|
|libofx|0.8.3|_optional_|
|
|
|expat|2.0.1|_optional_|
|
|
|libxml2|2.7.2|_optional_|
|
|
|
|
h3. MacPorts
|
|
|
|
If you build stuff using MacPorts on OS X, as I do, here is what you would
|
|
run:
|
|
|
|
<pre>
|
|
sudo port install -f automake autoconf libtool python26
|
|
libiconv +universal zlib +universal gmp +universal
|
|
mpfr +universal ncurses +universal ncursesw +universal
|
|
gettext +universal libedit +universal boost-jam
|
|
boost +st+python26+icu texlive doxygen graphviz
|
|
texinfo lcov sloccount
|
|
</pre>
|
|
|
|
You can even just install the current Ledger *RELEASE* directly:
|
|
|
|
<pre>
|
|
sudo port install ledger
|
|
</pre>
|
|
|
|
h3. Ubuntu
|
|
|
|
If you're going to be build on Ubuntu, @sudo apt-get install ...@ the
|
|
following packages (current as of Ubuntu Hardy):
|
|
|
|
<pre>
|
|
sudo apt-get install build-essential libtool autoconf automake \
|
|
zlib1g-dev libbz2-dev python-dev bjam cvs gettext libgmp3-dev \
|
|
libmpfr-dev libboost1.35-dev libboost-regex1.35-dev \
|
|
libboost-date-time1.35-dev libboost-filesystem1.35-dev \
|
|
libboost-python1.35-dev texinfo lcov sloccount
|
|
</pre>
|
|
|
|
Or, for Ubuntu Karmic:
|
|
|
|
<pre>
|
|
sudo apt-get install build-essential libtool autoconf automake \
|
|
texinfo python-dev zlib1g-dev libbz2-dev libgmp3-dev \
|
|
bjam gettext cvs libboost1.40-dev libboost-regex1.40-dev \
|
|
libboost-date-time1.40-dev libboost-filesystem1.40-dev \
|
|
libmpfr-dev
|
|
</pre>
|
|
|
|
h2. Building
|
|
|
|
The next step is preparing your environment for building. While you can use
|
|
@autogen.sh@, ./configure and make, I've prepared a script that does a lot more
|
|
of the footwork for you:
|
|
|
|
<pre>
|
|
./acprep update
|
|
# or, if you want to use the Boost libraries with suffix -mt, install in
|
|
# $HOME/local and build with 2 processes in parallel
|
|
./acprep update --boost=-mt -- --prefix=$HOME/local -j2
|
|
</pre>
|
|
|
|
Please read the contents of @config.log@ if the configure step fails. Also,
|
|
see the @help@ command to @acprep@, which explains some of its many options.
|
|
It's pretty much the only command I run for configuring, building and testing
|
|
Ledger.
|
|
|
|
You can run @make check@ to confirm the result, and @make install@ to install.
|
|
|
|
If you have extra CPU cycles to burn, try @./acprep proof@, which provides the
|
|
most thorough shakedown of a healthy source tree.
|
|
|
|
h2. Resources
|
|
|
|
Now that you're up and running, here are a few resources to keep in mind:
|
|
|
|
|Home page|"http://ledger-cli.org":http://ledger-cli.org|
|
|
|IRC channel|"#ledger on irc.freenode.net":irc://irc.freenode.net/ledger|
|
|
|Mailing List / Forum|"http://groups.google.com/group/ledger-cli":http://groups.google.com/group/ledger-cli|
|
|
|GitHub project page|"http://github.com/jwiegley/ledger":http://github.com/jwiegley/ledger|
|
|
|Buildbot status|"http://www.newartisans.com:9090":http://www.newartisans.com:9090|
|
|
|Ohloh code analysis|"http://www.ohloh.net/projects/ledger":http://www.ohloh.net/projects/ledger|
|
|
|
|
If you have ideas you'd like to share, the best way is either to e-mail me a
|
|
patch (I prefer attachments over pasted text), or to get an account on GitHub.
|
|
Once you do, fork the "Ledger project":http://github.com/jwiegley/ledger, hack
|
|
as much as you like, then send me a pull request via GitHub.
|