Clients should use normal git-clone/git-fetch, IMAP or NNTP clients
if they want to import mail into their personal inboxes.
+As of 2022, public-inbox is packaged by several OS distributions,
+listed in alphabetical order: Debian, GNU Guix, NixOS, and Void Linux.
+
public-inbox is developed on Debian GNU/Linux systems and will
never depend on packages outside of the "main" component of
the "stable" distribution, currently Debian 10.x ("buster"),
but older versions of Debian remain supported.
Most packages are available in other GNU/Linux distributions
-and FreeBSD.
+and FreeBSD. CentOS 7.x users will likely want newer git and
+Xapian packages for better performance and v2 inbox support:
+https://public-inbox.org/meta/20210421151308.yz5hzkgm75klunpe@nitro.local/
TODO: this still needs to be documented better,
also see the scripts/ and sa_config/ directories in the source tree
functionality. The core tools are, of course:
* Git (1.8.0+, 2.6+ for writing v2 inboxes)
-* Perl 5.10.1+
+* Perl 5.12.0+
* DBD::SQLite (needed for IMAP, NNTP, message threading, and v2 inboxes)
To accept incoming mail into a public inbox, you'll likely want:
* MTA - postfix is recommended (for public-inbox-mda)
* SpamAssassin (spamc/spamd) (for public-inbox-watch/public-inbox-mda)
-Beyond that, there is one non-standard Perl module required:
+Beyond that, there is one non-standard Perl package required:
-* URI::Escape deb: liburi-perl
+* URI deb: liburi-perl
pkg: p5-URI
rpm: perl-URI
(for HTML/Atom generation)
rpm: perl-Search-Xapian
(HTTP and IMAP search)
-- Net::Server deb: libnet-server-perl
- pkg: pkg-Net-Server
- rpm: perl-Net-Server
- (for HTTP/IMAP/NNTP background daemons,
- not needed as systemd services or
- foreground servers)
-
- Inline::C deb: libinline-c-perl
pkg: pkg-Inline-C
rpm: perl-Inline (or perl-Inline-C)
rpm: perl-ParseRecDescent
(optional, for public-inbox-imapd(1))
+- Mail::IMAPClient deb: libmail-imapclient-perl
+ pkg: p5-Mail-IMAPClient
+ rpm: perl-Mail-IMAPClient
+ (optional for lei and public-inbox-watch)
+
- BSD::Resource deb: libbsd-resource-perl
pkg: p5-BSD-Resource
rpm: perl-BSD-Resource
rpm: xapian-core
(optional, for public-inbox-compact(1))
+* curl (tool) deb, pkg, rpm: curl
+ (for HTTP(S) externals with curl)
+
- Linux::Inotify2 deb: liblinux-inotify2-perl
rpm: perl-Linux-Inotify2
- (for public-inbox-watch and -imapd on Linux)
+ (for lei, public-inbox-watch and -imapd
+ on Linux)
+
+- IO::KQueue pkg: p5-IO-KQueue
+ (for lei, public-inbox-watch and -imapd
+ on *BSDs)
+
+- Net::Server deb: libnet-server-perl
+ pkg: pkg-Net-Server
+ rpm: perl-Net-Server
+ (for HTTP/IMAP/NNTP background daemons,
+ not needed as systemd services or
+ foreground servers)
The following module is typically pulled in by dependencies listed
above, so there is no need to explicitly install them:
make test # see HACKING for faster tests for hackers
make install # root permissions may be needed
-When installing Search::Xapian, make sure the underlying Xapian
-installation is not affected by an index corruption bug:
+symlink-install (public-inbox.git and 1.7.0+)
+---------------------------------------------
- https://bugs.debian.org/808610
+For users who lack permissions and/or wish to minimize their
+installation footprint, the "symlink-install" target is available in
+public-inbox.git. The following installs symlinks to $HOME/bin
+pointing to the source tree:
+
+ perl Makefile.PL
+ make symlink-install prefix=$HOME
-For Debian 8.x (jessie), this means using Debian 8.5 or later.
+Other installation notes
+------------------------
+
+Debian 8.x (jessie) users, use Debian 8.5 or later if using Xapian:
+ https://bugs.debian.org/808610
-public-inbox will never store unregeneratable data in Xapian
-or any other search database we might use; Xapian corruption
-will not destroy critical data.
+public-inbox-* commands will never store unregeneratable data in
+Xapian nor any other search database we might use; Xapian
+corruption will not destroy critical data. Note: `lei' DOES store
+unregeneratable data in Xapian and SQLite.
See the public-inbox-overview(7) man page for the next steps once
the installation is complete.
* Encode rpm: perl-Encode
* IO::Compress rpm: perl-IO-Compress
* Storable rpm: perl-Storable
+* Text::ParseWords rpm: perl-Text-Parsewords
Copyright
---------
-Copyright 2013-2021 all contributors <meta@public-inbox.org>
+Copyright all contributors <meta@public-inbox.org>
License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>