mcpField
L
Ledger

Ledger

公式Agent-ready
github.com開発ツール6.1kledger今日更新
リポジトリ公式サイト

Ledger について

Ledger はコマンドラインベースの会計ツールで、財務データをプレーンテキスト形式で管理します。シンプルなジャーナル形式から balance や register などのコマンドを使用して、貸借対照表や取引記録、予算レポートなどの財務諸表を生成できます。

主な機能

  1. 01バージョン管理に適したプレーンテキスト形式で財務記録を管理
  2. 02balance や register などのコマンドで口座と取引を照会
  3. 03スクリプト化可能なコマンドで自動化された財務レポートを生成

活用シーン

  1. 01個人またはプロジェクトの財務を複式簿記で追跡管理
  2. 02定期的な決算報告と照合業務の自動化
  3. 03会計データをバージョン管理システムと統合

インストール

OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。

$
brew install ledger

インストール後にledger --versionを実行して確認します。

コマンド例

よく使うコマンドを使う順に並べています。

01
ledger -f journal.dat balance
02
ledger -f journal.dat register

詳細

チャットに参加 ビルドステータス main ステータス ライセンス GitHub リリース

Ledger:コマンドライン会計

Ledger は、UNIX コマンドラインから利用する強力な複式簿記システムです。 派手な UI がないため敬遠するユーザーもいるかもしれませんが、 データに対して比類のないレポート機能を求める人にとって、これに代わるものはほとんどありません。

Ledger は入力にテキストファイルを使用します。ファイルを読み込んでレポートを生成し、 それ以外のデータベースや保存された状態はありません。Ledger を使うには、 勘定科目名と取引を記載したファイルを作成し、コマンドラインから 入力と求めるレポートを指定するオプションを付けて実行すると、結果が出力されます。 出力は通常プレーンテキストですが、グラフや HTML を生成することもできます。 Ledger は概念としてはシンプルで、驚くほど多機能であり、使いやすいソフトウェアです。

すぐに試したい方へ

そうですよね。すぐにビルドして試したいだけですよね。依存関係 がすべてインストールされているなら、次のコマンドを実行するだけです。

$ git clone [email protected]:ledger/ledger.git
$ cd ledger && ./acprep update  # 最新版に更新し、設定してビルド

まずは次の Ledger コマンドを試してみましょう。

$ ./ledger -f test/input/sample.dat reg

仕訳帳の管理方法については、[ドキュメント]、Wiki、 このファイル末尾のリソースセクションをご覧ください。 Ledger ファイル用の Emacs モードは [ledger/ledger-mode リポジトリ]にあり、vim プラグインは [ledger/vim-ledger リポジトリ]にあります。

Docker 版

お使いのコンピューターまたはサーバーに Docker がインストールされている場合は、追加の依存関係をインストールせずに、このソフトウェアの Docker 版を利用できます。

$ docker run --rm -v "$PWD"/test/input:/data dcycle/ledger:1 -f /data/sample.dat reg

依存関係

この作業を進めるには、いくつかの依存関係が必要です。 --import などの一部の機能を使うには、Python サポートを有効にして Ledger をビルドする必要があります。 お使いのプラットフォームに必要なものを簡単に揃えるには、次の便利な Python スクリプトを実行してください。

$ ./acprep dependencies

これで問題がすべて解決しない場合は、現在の main ブランチをビルドするための依存関係を以下に示します。

依存関係バージョン(またはそれ以上)
CMake3.16.2
Boost1.72
Gmp6.1.2
Mpfr4.0.2
utfcpp3.2.3
ICU63 任意
gettext0.17 任意
libedit20090111-3.0 任意
Python3.10 任意
Gpgmepp1.13.1 任意
doxygen1.9.5 任意、make docs 用
graphviz2.20.3 任意、make docs 用
texinfo4.13 任意、make docs 用
lcov1.6 任意、make report 用。./acprep gcov と併用
sloccount2.26 任意、make sloc 用
macOS

macOS で Ledger のビルド依存関係を簡単にインストールするには、 Homebrew または MacPorts を利用できます。

1. Homebrew

Homebrew を使う場合、依存関係をインストールするには次のコマンドを実行します。

$ brew install cmake boost boost-python3 gmp mpfr
2. MacPorts

私と同じように macOS で MacPorts を使ってビルドする場合は、次のコマンドを実行します。

$ sudo port install -f cmake python37 \
     libiconv zlib gmp \
     mpfr ncurses ncursesw \
     gettext libedit boost-jam \
     boost +st+python37+icu texlive doxygen graphviz \
     texinfo lcov sloccount
Conda

Ledger のビルドに必要な依存関係は、特定のプラットフォーム(例:linux-64)向けにconda-forgeから入手でき、Condaまたはmambaで使用できます。

Conda を使う場合は、次のコマンドを実行します。

$ conda install -c conda-forge python=3 cmake boost gmp mpfr \
     gettext libedit texinfo doxygen graphviz
Ubuntu

Ubuntu でビルドする場合は、次のパッケージを sudo apt-get install ... でインストールします(Ubuntu 18.04 時点の情報です)。

$ sudo apt-get install build-essential cmake doxygen \
     libboost-system-dev libboost-dev python3-dev gettext git \
     libboost-date-time-dev libboost-filesystem-dev \
     libboost-iostreams-dev libboost-python-dev libboost-regex-dev \
     libboost-test-dev libedit-dev libgmp3-dev libmpfr-dev texinfo tzdata
Debian

Debian 10(bullseye)、Debian 11(「bullseye」)、Debian testing、Debian unstable(sid)には、ledger のビルドに必要なすべてのコンポーネントが含まれています。次のコマンドで、ビルドに必要な依存関係をすべてインストールできます。

$ sudo apt-get install build-essential cmake autopoint texinfo python3-dev \
     zlib1g-dev libbz2-dev libgmp3-dev gettext libmpfr-dev \
     libboost-date-time-dev libboost-filesystem-dev \
     libboost-graph-dev libboost-iostreams-dev \
     libboost-python-dev libboost-regex-dev libboost-test-dev
Fedora

Fedora では、次のコマンドですべてのビルド依存関係をインストールできます(Fedora 32 でテスト済みです)。

$ sudo dnf install boost-date-time boost-devel boost-filesystem \
    boost-iostreams boost-python3-devel boost-regex boost-system \
    boost-test cmake doxygen gettext git gmp-devel libedit-devel \
    mpfr-devel python3-devel texinfo tzdata

ビルド

次の手順では、ビルド用の環境を準備します。cmake . と make を使用することもできますが、より多くの作業を自動で行うスクリプトを用意しています。

$ ./acprep update
# または、接尾辞 -mt の Boost ライブラリを使い、$HOME/local にインストールして
# 2 つのプロセスで並列ビルドする場合
$ ./acprep update --boost-suffix=-mt --prefix=$HOME/local -j2

configure ステップが失敗した場合は、CMakeFiles/CMakeOutput.log と CMakeFiles/CMakeError.log の内容を確認してください。また、acprep の help サブコマンドでは、多数あるオプションの一部について説明しています。 Ledger の設定、ビルド、テストで私が実行するコマンドは、ほぼこれだけです。

結果を確認するには make check を実行し、インストールするには make install を実行します。

Python バインディング

Ledger には、Boost.Python を使ってビルドするオプションの Python バインディングが含まれています。Python のサポートはデフォルトでは無効になっており、明示的に有効にする必要があります。

前提条件

標準の依存関係に加えて、次が必要です。

  • Python 3.10 以降(開発用ヘッダーを含む)
  • Boost.Python(Boost および Python のバージョンに対応するもの)

パッケージ名については、上記のプラットフォーム別の依存関係のセクションを参照してください(例:Homebrew では boost-python3、Ubuntu では libboost-python-dev)。

Python サポートを有効にしたビルド

acprep を使う場合:

$ ./acprep --python update --output=build

または、CMake を直接使う場合:

$ mkdir build && cd build
$ cmake -DUSE_PYTHON=ON ..
$ make -j$(nproc)
Python モジュールのインストール

make install(または cmake --install build)を実行すると、ledger.so(Windows では ledger.pyd)が Python インストール先の site-packages ディレクトリにコピーされます。インストール後:

$ python -c "import ledger; print(ledger)"
インストールせずに使用する

インストールせずにビルドツリーから直接モジュールを使用するには、 PYTHONPATH にビルドディレクトリを指定します。

$ PYTHONPATH=build python -c "import ledger; print(ledger)"

Linux では LD_LIBRARY_PATH=build、macOS では DYLD_LIBRARY_PATH=build も設定する必要がある場合があります。

デモスクリプトは python/demo.py にあります。

$ PYTHONPATH=build python python/demo.py

Python API の詳細なドキュメントについては、Ledger マニュアルの「Python による拡張」の章をご覧ください。

リソース

これで準備が整いました。参考になるリソースをいくつかご紹介します。

共有したいアイデアがある場合は、パッチをメールで送るか(貼り付けたテキストより添付ファイルを好みます)、GitHub アカウントを取得するのが最適です。 アカウントを取得したら、Ledger プロジェクトをフォークして、 自由に変更を加えたうえで、GitHub でプルリクエストを作成してください。

コメント