mcpField
L
Ledger

Ledger

官方Agent-ready
github.com开发者工具6.1kledger今天更新
代码仓库访问官网

关于 Ledger

Ledger 是一个强大的复式簿记工具,将账目数据存储为纯文本格式的日记账。支持多种查询和分析命令,可以快速生成余额表、交易明细、预算报告等财务报表。

主要功能

  1. 01维护纯文本格式的复式簿记账本
  2. 02通过 balance、register 等命令快速查询账户状态
  3. 03支持脚本化的自动化财务报告生成

适用场景

  1. 01管理个人或项目的财务记录和账目追踪
  2. 02自动化定期财务报告和对账工作
  3. 03与版本控制系统集成进行账目版本管理

安装

选择你的系统或包管理器,复制命令到终端运行。

$
brew install ledger

安装完成后运行ledger --version确认安装成功。

命令示例

常用命令按使用顺序排列。

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

详细介绍

在 https://gitter.im/use-package/Lobby 加入聊天 Build Status 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

如需了解如何维护账簿,请参阅[文档]、[维基]以及本文件末尾的资源部分。 可在 ledger/ledger-mode repository 中找到适用于 Ledger 文件的 Emacs 模式,vim 插件则位于 ledger/vim-ledger repository。

Docker 版本

如果你的计算机或服务器上安装了 Docker,可以使用本软件的 Docker 版本,无需安装任何其他依赖项:

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

依赖项

如果你想继续使用该软件,需要安装一些依赖项。 请注意,某些功能(例如 --import)要求构建 Ledger 时启用 Python 支持。 在你的平台上安装依赖项的最简便方法是运行以下 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 上,你可以使用 Homebrew 或 MacPorts 轻松安装 Ledger 的构建依赖项。

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

在某些平台(例如 linux-64)上,可以从 conda-forge 获取构建 Ledger 所需的依赖项,并通过 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

如果配置步骤失败,请阅读 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 上创建拉取请求。

评论

支持 Markdown