https://github.com/ledgersmb/ledgersmb-installer
Installer for LedgerSMB
https://github.com/ledgersmb/ledgersmb-installer
installer ledgersmb linux unix windows
Last synced: about 2 months ago
JSON representation
Installer for LedgerSMB
- Host: GitHub
- URL: https://github.com/ledgersmb/ledgersmb-installer
- Owner: ledgersmb
- Created: 2025-03-08T11:43:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-15T22:10:31.000Z (2 months ago)
- Last Synced: 2026-04-16T00:21:39.843Z (2 months ago)
- Topics: installer, ledgersmb, linux, unix, windows
- Language: Perl
- Homepage: https://github.com/ledgersmb/LedgerSMB
- Size: 252 KB
- Stars: 1
- Watchers: 10
- Forks: 3
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
Awesome Lists containing this project
README
# NAME
ledgersmb-installer - An installer for LedgerSMB, targetting as many platforms as possible
on which the LedgerSMB server can run.
The user instructions for downloading the most recent version of `ledgersmb-installer` are available at https://get.ledgersmb.org.
❌ Do not use unofficial or AI-generated examples. These are often incomplete, break silently, or skip required services.
# SYNOPSIS
```bash
ledgersmb-installer install --log-level=error --target=/srv/ledgersmb --version=1.12.0
```
# COMMANDS
## compute
```plain
ledgersmb-installer compute --version=1.12.0
```
Computes the list of packages fulfilling the module dependencies.
**Note**: The computation currently does not take the module versions into account.
## download
## install
```plain
ledgersmb-installer install --version=1.12.0
ledgersmb-installer --version=1.12.0
```
Downloads, unpacks and installs the indicated version, if possible with the
necessary O/S packages.
## help
### Options
```plain
--[no-]system-packages
--target=
--local-lib=
--log-level=[fatal,error,warning,info,debug,trace]
--[no-]verify-sig
--version=
```
# INSTALLER PROCESS
```mermaid
flowchart TD
pre_A@{ shape: start }
--> pre_A5(Check have compiler)
--> pre_A7(Check have C library headers)
--> pre_A6(Check have make)
--> pre_A4(Check have pg_config and Pg headers)
--> pre_A8(Check have xml2-config and libxml2 headers)
--> pre_B(Load platform support)
pre_B --> pre_B1{Running system Perl}
pre_B1 --> |Yes| pre_C{"Have precomputed deps
(implies suitable system perl)"}
pre_B1 --> |No| pre_D(Grab 'cpanfile' from GitHub)
pre_C --> |Yes| pre_C1{Can install pkgs}
pre_C --> |No| pre_D
pre_C1 --> |Yes| pre_omicron(Check & install builder environment) --> pre_K
pre_C1 --> |No| pre_D
pre_D --> pre_E{Running suitable perl}
pre_E --> |Yes| pre_omega(Check & install builder environment) --> pre_alpha{Running suitable **system** perl}
pre_E --> |No| pre_beta{Have suitable perl}
pre_beta --> |No: assert other prereqs| pre_E1b
pre_beta --> |Yes| pre_gamma(Self-invoke with suitable perl)
--> pre_Z2@{ shape: stop }
pre_alpha --> |Yes| pre_F{Can install pkgs &&
Have 'pkg compute' prereqs}
pre_alpha --> |No| pre_E1a{Have DBD::Pg}
pre_E1a --> |Yes| pre_delta
pre_E1a --> |No| pre_E1b{Have libpq prereq}
pre_E1b --> |Yes| pre_E1d
pre_E1b --> |No| pre_E1c{Can install pkgs}
pre_E1c --> |Yes| pre_E1d(Install libpq)
pre_E1c --> |No| pre_J("**bail**
(Unchanged system state;
no cleanup)") --> pre_Z4@{ shape: stop }
pre_E1d --> pre_delta{Have LaTeX::Driver}
pre_delta --> |Yes| pre_E2{Running suitable Perl}
pre_delta --> pre_epsilon{Have or install 'latex' binary}
pre_epsilon --> |Yes| pre_E2
pre_epsilon --> |No| pre_J
pre_E2 --> |Yes| pre_E2b{Have libxml2}
pre_E2 --> |No| pre_E2a(Install perlbrew) --> pre_E2c(Self-invoke with suitable perl) --> pre_Z3@{ shape: stop }
pre_E2b --> |Yes| pre_M(Install latex)
pre_E2b --> |No| pre_E3{Can install pkgs}
pre_E3 --> |Yes| pre_E4(Install libxml2)
pre_E3 --> |No| pre_E5(Install Alien::LibXML)
pre_E4 --> pre_M
pre_E5 --> pre_M
pre_F --> |Yes| pre_H(Map pkg deps)
pre_F --> |No| pre_E1a
pre_H --> pre_K(Install packaged modules)
pre_K --> pre_K1(Download & Install tarball)
pre_K1 --> pre_N(Install CPAN modules)
pre_M --> pre_K1
pre_N --> pre_O(Cleanup: Remove build modules)
--> pre_Z
pre_Z@{ shape: stop }
```