This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new!


Business accounting for Linux

By Laurent Duperval on December 07, 2004 (8:00:00 AM)

Share    Print    Comments   

Can you run your entire company on Linux only? To find out, I tested three promising accrual-basis accounting packages: GnuCash 1.8.9, SQL-Ledger 2.4.0, and Quasar 1.2.4. All were installed on a Gentoo system.

My evaluation criteria are as follows:

  • Installation and setup: the simpler, the better. 20% of final score.
  • Ease of use: 35% of final score.
  • Multilingual support: I need to produce invoices in English and in French. 10% of final score.
  • Reporting: Plenty of reports that look good when printed. 25% of final score.
  • Support: Mailing list or newsgroup support. 15% of final score.

I will take you through a tour of all three applications, starting with installation and setup, entering transactions, and producing reports.

If you don't understand certain accounting terms I use, take a look at the sidebar below.

Disclaimer: I am not an accountant.

The Contenders


Quasar's main screen
Quasar's main screen -- click to enlarge
SQL-Ledger main page
SQL-Ledger main page -- click to enlarge
Gnucash's main window
Gnucash's main window -- click to enlarge

Quasar is a modular commercial accounting system for Windows and Linux, distributed by Linux Canada inc. The base accounting module is free (as in beer) for one user, on one computer. The other available modules are:

  • Inventory Control to define goods and services.
  • Handheld Interface (Linux only).
  • Multi-Store support.
  • Point-of-Sale support.
  • Sybase support.


SQL-Ledger is a GPL'd web application that supports inventory, point-of-sale, projects, and more. It requires Apache and PostgreSQL.


GnuCash started as a personal accounting application but since about 2002, it has started incorporating features for small businesses.

Installation and setup

Many things are common between all the programs. In all cases, you will need to

  1. set up your chart of accounts;
  2. set up your tax tables;
  3. create clients and vendors.


Quasar comes in a gzipped tarfile (which I used) or an RPM file. The file contains the program, the Firebird 1.0.0 database server, and two user guides.

Quasar has been tailored to work with the distributed version of Firebird only. If you already are running Firebird on your system, you will need to reconfigure one of the servers so both can work side by side.

To install, uncompress and untar the file. Then, execute the install/ script, specify what install directory to use. The installation is fully automated on Debian, SuSE (err... Novell), Mandrake and Red Hat. Other distributions may require manual intervention.

The first time I ran Quasar, I had to choose a language then accept the license agreement. I logged in and used “File > New Company” to create my company, using the wizard. 

Next, I loaded a basic chart of accounts. Two charts of accounts are provided: US and Canada. I don't know about the availability of others. Then I created my tax tables and payment terms using the “Setup > System” menu.

Finally, I created vendors and customers in Quasar's address book. The address book allows you to enter four types of contacts: vendors, customers, employees and personal.

On two occasions, after updating some applications on my system, I had to reinstall Quasar because it refused to run. Reinstalling in the existing directory fixed the problem, without corrupting my data.

I can't say for sure that the system update caused the problem, but both times, when I noticed it, it coincided with updates. Nobody on the list reported similar behavior.

Accounting definitions
These definitions come from
Chart of accounts
A numerical listing of a business's accounts.
An entry on the right side of an account - decreases assets or increases liabilities.
An entry on the left side of an account - increases assets or decreases liabilities.
General ledger
The master record of all the balance sheet and income statement account balances. (This is where you record all transactions for your business).
Accounts Payable
Accounts of money you owe. A liability that is usually created when you have made a purchase on credit.
Accounts Receivable
Accounts of money owed to you for the sale of goods or services.
Accrual basis
A method of accounting where transactions are recorded as they occur regardless of when payment for that transaction is made or received.
Cash basis
An accounting method where transactions are recorded when the actual change of payment occurs, regardless of when the goods or services are delivered.
Trial balance
A work sheet showing the balances in each account - used to prove the equality of debits and credits.


There are two methods for installing SQL-Ledger: manually or using the install script. I used the latter. It downloaded the source code, extracted it and configured apache automatically.

One thing to remember about SQL-Ledger: RTFM. There is little documentation, and it is all on the web site. There are FAQs and brief but complete installation instructions. Everything that is mentioned is important. Most installation and setup questions I've seen on the list are answered in the FAQ.

I had to prepare PostgreSQL to support SQL-Ledger by adding PL/PGSQL support:

# createlang plpgsql <dataset>
# createlang plpgsql template1

dataset corresponds to a Postgres user. You must use a different user for each company you plan on managing in the accounting system.

You create a new company by creating a new dataset in SQL-Ledger's administration module. Each dataset contains a chart of accounts for the company you are creating. SQL-Ledger comes with charts of accounts for thirty different countries.

Each user of the system must be configure by specifying the dataset to use, the chart of accounts, the language and access privileges.

Vendors are set up in the “Accounts Payable (AP)” menu, and customers in “Accounts Receivable (AR)”. You can specify billing and shipping address information, payment terms, discounts, and other parameters.

SQL-Ledger can be configured to disallow modification of a posted transaction, forcing you to enter a reversing entry.


It is best to use your distribution's version of GnuCash. On GnuCash's website, there are fifteen dependencies listed, not counting the ones needed by those dependencies. So unless you enjoy Dependency Hell...

The first time I ran GnuCash on my GNOME 2.6 system, it didn't work because the proper version of gconfd wasn't running. On Gentoo, I need to launch gconfd-1 beforehand.

GnuCash has a complete documentation set and the program itself is very intuitive. Detailed installation guidelines for business users are available on Aerospace Software's web site.

I created my chart of accounts, and configured the my tax tables. Then I created a few client and vendor accounts. You can specify different tax tables for each vendor or customer.

Entering data

None of the programs have integrated payroll support. You must do calculations manually.


Some of the information you enter in the invoice can be fetched from the database; this is denoted by a blue triangle. <F9> or <Tab> executes the search.

Enter the first letters of your search criterion, then press <Tab>. Quasar will locate the longest match it can from the database. Pressing <F9> shows the list of vendors or clients. The window that appears is empty. You need to press the Refresh button to see the data because it is fetched on demand only.

When dealing with payments, Quasar used the concept of tenders. Tenders are methods of payment that your business will accept: cash, check, credit card and charge. Charge, means you are billing now but getting paid later. If you do not specify a charge tender, Quasar will assume that the invoice is paid immediately.


SQL-Ledger's screen is separated in two panes: the left pane is the “menu bar” and the right pane is the application per se.

You create new invoices by clicking “Sales Invoice” in AR or “Vendor Invoice” in AP. Every time you enter an item, pressin the “Update” button or hitting the Enter key adds a new line for you.

Creating an invoice
SQL-Ledger: Creating an invoice -- click to enlarge

When a new item is added, SQL-Ledger searches its database of available parts and services. If it finds a single value matching your entry, the information is automatically filled in for you. If more than one match is found, you are shown all the matches and you must choose the correct one. If none is found, SQL-Ledger sends you to the Parts/Service creation page.

On that page, you create a new part or service, give it a name and a part number. You can specify a list price, a sell price, the cost of obtaining the goods for this part or service, etc.

You can preview invoices and bills before printing.

When you pay invoices go to AP, select “Outstanding”, press the “Continue” button, then select the invoice you want to pay. Enter the amount paid for that invoice and repeat the information for other invoices. Execute the same steps in AR if you are receiving customer payment.


When adding a new transaction (in an invoice or in the ledger, for example), GnuCash attempts to complete the typing for you as much as possible. For example, if you entered "Programming for company Foo" on one line, typing "P" on a new line will automatically insert "Programming for company Foo". If multiple matches exist, it will show the last one you used.

Auto-completion in the business accounting screens is not as fully implemented as in the personal accounting portion of GnuCash. For example, in the personal module, auto-completion also enters the account information and the amounts for you. In the business module, only the current column is completed. It's not a big deal but it is very noticeable if you're a long-time GnuCash user, as I am.

Whenever you specify a date, GnuCash uses today's date by default. There are keyboard shortcuts to skip forward or backwards one week at a time, one month at a time or even one year at a time. Another nice touch: when you enter data on the same invoice, any date field in a new line item will be the same as the last date you entered.

A useful shortcut is “:” to traverse your account tree. For example, if you have a tree that looks like this:

   + Credit cards
   + - +Master Card
       + Visa
       + American Express

you can select the Visa account by typing “Li:Cr:V”.

Once you've entered all your items, you must post the invoice. Posting records the invoice and tallies it in the business reports. Until you post them, the invoices are stored but do not appear as transactions in your reports. If you post an invoice or a bill and you realize that you made a mistake, you can unpost the invoice, make corrections and post again.

Entering invoice information
GnuCash: Entering invoice information -- click to enlarge

Although I find GnuCash's interface more pleasing to use than Quasar's or SQL-Ledger's, it still has some deficiencies. The most annoying one is the need to go through three steps when looking for a vendor or a customer. First, you need to bring up the search window; then you must enter a search term and launch the search; finally, select the vendor or customer you want. A simple drop-down list would have been much easier. Or, even better, a match-as-you-type approach, similar to what is used when selecting accounts.

Another UI peculiarity, when you choose an invoice to display from the invoice-selection dialog, the new window appears behind the selection window. It's very surprising and counterintuitive. To access the invoice window, you must close the selection dialog.



Quasar has basic reporting features. There are three ledger reports: Balance Sheet, Profit & Loss and Trial Balance. There are three sales reports and two vendor reports. Since there is a SQL interface to the data, you can create your own reports using standard queries.

The reports results can be printed but cannot be saved. If you need to view the output before printing, there is no option to do so directly. If you use the CUPS-PDF printer, you should know that it doesn't like Quasar's output. If you need PDF files, ps2pdf gives better results.


SQL-Ledger's reports include Chart of Accounts, Trial Balance, Income Statement, and Balance Sheet. There are specialized reports for Accounts Payable, Accounts Receivable, Cash, Human Resources, Goods and Services, General Ledger, and more.

Of the three programs, SQL-Ledger produces the best output. You can produce reports using HTML templates or LaTeX templates. The default templates distributed with SQL-Ledger are sensible; you can modify them easily. You also can ask Dieter Simater, the author, to do some custom work on your behalf. Comments from people who have paid for his services have always been positive.


GnuCash has most of the reports I need including balance sheet, profits and losses, vendor and customer reports, AR and AP aging. There are a number of graphical reports, also, that display information in barcharts or piecharts. There is no trial balance in the current version. It has been added in CVS and should be available with GnuCash 1.10.

GnuCash's biggest weakness is printing. The program uses old versions of gtkhtml and gnomeprint, which have some bugs, and this can lead to problems. It is a GNOME1 application; a port to GNOME2 is in progress but until it is completed, many of these bugs will not be addressed.

If you don't like the default styles, you can create and use different stylesheets. However, there seems to be some black magic involved to get things looking “just right”. Also, the stylesheets are part of the program code. To create new stylesheets, you must write some Scheme code and you must configure GnuCash to recognize it.

GnuCash stores data in an XML file, which precludes data sharing. A Postgres backend is available but it is buggy and the business functions do not work when using it.

Multilingual support


Quasar only supports English out of the box but there are hooks in place to translate the interface. Linux Canada provides a tool which allows you to translate every part of the interface. I took a look at it and it seems thorough enough, but doing the translation appears to be quite a daunting task. If you need to translate Quasar's interface, you may want to ask on the list if anyone has done it already.


SQL-Ledger is fully localized. In order to produce French invoices, I needed to create a new user, specify that the preferred language was French and everything else followed. When I configured the new user, I made sure he used the same dataset as my main user. That way, any changes I made as the English user were automatically carried over to the French user. Basically, there isn't much to say, since it's so well done.


Controlling the language (and the currency) GnuCash uses is as simple as correctly setting the LANG environment variable. It affects everything: the interface, the language for the reports and invoices.

It isn't possible to use the application in one language but print in another; you must exit, change the language, and restart. Account names are not translated so if you need to export your tree in two languages, you're out of luck.

I would like to display labels for taxes in French when printing in French, and in English when printing in English. Unfortunately, this is a global property so French and English labels appear on all my invoices, even though the rest of the invoice uses a single language.



When you purchase Quasar, you get a 90 day warranty which allows you to download patches and bug fixes from Quasar's web site. You also get 30 days of free email support to help with your installation problems.

If you don't buy support, you can rely on the mailing list. The people on the list are helpful and you often get responses from on of the Linux Canada employees. List traffic is very low (about 20 messages on a good month).

Linux Canada has mentioned that the code will eventually become open source.


There is a very active mailing list for SQL-Ledger users. The author jumps in periodically to give answers to problems.

Dieter Simater has chosen to release the code under the GPL with no documentation. Documentation is in PDF format, costs $179, and includes one year of email or phone support. Other options are detailed on the web site.

Some members on the list have mentioned that they might write an introductory manual for first time users, but nothing is available yet.


GnuCash's web site, the mailing list and developer feedback are top-notch. There are two very active mailing lists, one for users and one for developers.

Commercial support isn't available but you can help the project by giving a donation. Derek Atkins is always looking for volunteers to help the project along.


All scores are on a scale of one to ten, except the total.

Feature Quasar SQL-Ledger GnuCash
Installation and setup (20% of total) 6 9 9
Ease of use (35% of total) 8 7.5 9.5
Multilingual support (10% of total) 5 10 8
Reporting (25% of total) 8 10 8.5
Support (15% of total) 7 8 9
Weighted Total (max: 100) 72.5 87 89.5


For my needs, GnuCash is the best. The interface is clean, intuitive, and there is excellent support available. I've also been using it for my personal accounting for many years.

SQL-Ledger comes in a close second. I think it is the most complete of the packages. It produces the best output and has the best multilingual support. The interface is cumbersome because it is a web application.

I cannot recommend Quasar. I found it too fragile when upgrading the system, and the other applications provided all I needed, without the proprietary licensing. Quasar may be a good choice for retail-selling businesses.

One thing I found out while writing this article, it helps to know what good accounting practices are. The tools won't help you if you don't know what you are doing. If you are serious about taking control of your business's accounting, read a bit to understand what is involved (see the resources for example). You need to understand your business well in order to set up your chart of accounts properly. If you can, have an accountant friend help out. I've found that a beer and a meal can work miracles.

Laurent Duperval has fifteen years of experience in computing. He is a Java developer, budding speaker, and all around good guy. At least, his wife and kids seem to think so. He can be reached at


GnuCash business guide:
Managing your cash flow:

Share    Print    Comments   


on Business accounting for Linux

Note: Comments are owned by the poster. We are not responsible for their content.

What about other commercial packages?

Posted by: Anonymous Coward on December 08, 2004 01:01 AM
I've looked at these packages over the years and have found them lacking for the typical small to medium sized businesses. Since most business are familiar with PeachTree or Quickbooks (not that I would touch either with a 10 foot pole) few are willing to deal with the user interfaces of these packages.

I'd be interested to know about the other commercial accounting packages available. Since Appgen is all but gone ( I was an Appgen customer but it had its problems) There needs to be a good alternative for those companies willing to pay for a mission critical application like an accounting system.

I know that ACCPAC has ported many of their accounting products to Linux. I'd like to see a review of their offering and any others that support Linux.

Accounting packages seem to be the "final frontier" in eliminating barriers to widespread Linux adoption.


Re:What about other commercial packages?

Posted by: Anonymous Coward on December 08, 2004 09:23 PM
<A HREF="" title=""></a>


OOps! Someone doesn't know his math...

Posted by: Anonymous Coward on December 08, 2004 10:45 PM
Thanks to Dan Hunt for pointing out a mistake. The weighted totals are incorrect, as they come up to 105%.

It turns out that during a rewrite of the article, I removed a category and distributed the weighting improperly. Support should have been 10%. The final results then become:

Quasar: 72
SQL-Ledger: 87.25
GnuCash: 89.5

Laurent Duperval


Quasar Info

Posted by: Anonymous Coward on December 09, 2004 02:22 PM
Just a few points on the Quasar that was used:

1. The 1.2.4 version is from over 2 years ago. Its not at all the fault of the reviewer since that was the last public release but it does mean its not a good comparison against the latest versions of the other products. We will release the new 1.4.1 version on Jan 10th and it will be open source so hopefully it can be retested then and compared.

2. The 1.2.4 version tested with was also compiled on Redhat 7.2 which would be the reason for the problems running it on Gentoo which has very different libraries and interfaces than what existed back in Redhat 7.2 days. The new release compiled from source is a much better comparison for stability and some user interface elements.

3. Quasar was designed to be usable for larger customers. We have customers with over 100,000 inventory items and thousands of customers and millions of transactions. The review was for a much smaller business operation and while Quasar works well for this too, there are some choices of how auto-completion and such work that have to be made to function with large amounts of data. So there are some trade-offs but I would like to see how the other packages can handle that much data.

4. The reporting in our latest version has been greatly expanded with a report engine like Crystal Reports being used that allows for powerful reports that the user can modify and add to. The report definitions are stored in XML files and there is an external program that can execute reports from a cron job. This is a new area of Quasar and reports are being added all the time and it was designed to be used outside of Quasar as well and I hope to see it available as a stand-alone Qt based report writer.

5. The 1.2.4 version worked with a modified Firebird to work around a Firebird bug in the versions from that time that caused the database server to crash. The latest Quasar version works with the latest Firebird installs and can use what you want to install. We also now have support for PostgreSQL as well as Sybase for commercial customers wanting a commercial database. The database interface is a C++ class and adding new ones is not difficult so I hope to see MySQL and DB2 support added next (the PostgreSQL support took only 2 days to implement).

Quasar was largely designed to run retail stores and has the ability to handle a lot of data. It also has a Point-of-Sale program that can run even if the server goes down. It has detailed inventory analysis reporting and purchasing and receiving. We have it running large store operations with multiple grocery tills and workstations and a convenience store and Chesters Chicken outlet.

So this review is based on a very old version (which is my fault and not the reviewers since we have been too busy customizing and installing Quasar for some larger customers to get another public release out) and also doesn't show the strengths of Quasar in larger retail environments so I hope I've set the record straight a bit here and watch our web page on Jan 10th for the release!


Re:Quasar Info

Posted by: Anonymous Coward on December 14, 2004 04:50 AM
I, for one, would love to see your upcoming 1.4.1, since it's open source (hopefully GPL!), and because it will support more than one back end. My father is considering starting up a business which will require PoS, and this could be something to look at when it comes out.

I would be happy to watch your Web page, but, alas, I don't see it in your response to the article.<nobr> <wbr></nobr>:-) Can you let us know?

Thanks for the version clarification info. We'll be keeping an eye out.


Re:Quasar Info

Posted by: Anonymous Coward on December 14, 2004 11:45 AM is Quasar's Web site.


This story has been archived. Comments can no longer be posted.

Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya