This is an old revision of the document!
Table of Contents
Unix/Linux Prerequisites
Building
You probably need or want to build Synchronet for your Unix/Linux system from source code and you will need the following prerequisites installed first:
Required
Required Component | Files | Debian Package | Red Hat Package | FreeBSD Port/Package |
---|---|---|---|---|
GNU make | gmake or make | make | make | devel/gmake |
GNU C/C++ Compiler or Clang C/C++ Compiler | gcc and g++ or clang and clang++ | g++ | gcc | Part of system |
System C library header files | errno.h | linux-libc-dev | glibc-headers | Part of system |
libarchive | libarchive.so and archive.h | libarchive-dev | libarchive-devel | Part of system |
ncurses library and headers | libncurses.so and ncurses.h or curses.h | libncursesw5-dev | ncurses-devel | Part of system |
Netscape Portable Runtime Library | libnspr4.so and nspr.h | libnspr4-dev | nspr-devel | devel/nspr |
Perl | perl | perl | lang/perl5.14 (version subject to change) | |
Python | python | python3 | python | lang/python |
pkgconf | pkg-config | pkg-config | pkgconfig | devel/pkgconf |
unzip | unzip | zip | unzip | archivers/unzip |
patch (for non-x86 platforms) | patch | patch | patch |
Recommended
It's possible to build Synchronet, but potentially more difficult, if you don't have the following components on your system:
Recommended Component | Files | Debian Package | FreeBSD port/package | Alternative |
---|---|---|---|---|
Git | git | git | devel/git | ftp , wget , curl |
Capabilities Library (Linux) | libcap.so and sys/capability.h | libcap-dev | Not available | setcap |
GNU Debugger | gdb | gdb | Part of system | |
systemd library (for systemd integration) | libsystemd.so and headers | libsystemd-dev | N/A | |
MQTT library | libmosquitto.so and headers | libmosquitto-dev | net/mosquitto | |
Xorg | Xlib.so and headers | xorg-dev | x11/xorg | |
SDL 2 | libsdl.so and headers | libsdl2-dev | devel/sdl2 | |
GTK+ | libraries and headers | libgtk-3-dev | x11-toolkits/gtk30 | |
GTK+ User Interface Builder (GLADE) | libraries and headers | libglade2-dev | devel/libglade2 | |
GNU Wget | wget | wget | ftp/wget |
3rd Party Programs
Some 3rd party executables may be utilized while running a Synchronet BBS:
Optional
Install
Debian/Ubuntu Linux
The following shell command-line/script file1) can be used to install the required and recommended packages on Debian-based Linux distros (e.g. Ubuntu):
- install-sbbs-deps.sh
sudo apt install build-essential perl zip git gdb libarchive-dev libncursesw5-dev libnspr4-dev libmosquitto-dev libsystemd-dev libcap-dev xorg-dev libsdl2-dev libgtk-3-dev libglade2-dev python2.7 lrzsz gkermit
Python 2 has been removed from Ubuntu 23.00 so you will need to install Python 3 and python-is-python3, which basically creates a symlink in /usr/bin.
- install-sbbs-deps.sh
sudo apt install build-essential perl zip git gdb libarchive-dev libncursesw5-dev libnspr4-dev libmosquitto-dev libsystemd-dev libcap-dev xorg-dev libsdl2-dev libgtk-3-dev libglade2-dev python3 python-is-python3 lrzsz gkermit
CentOS 7
To be able to use Mosquitto for MQTT, you will need to add the EPEL repo. Execute the following command as root:
yum -y install epel-release
Now install the development tools:
yum group install "Development Tools"
and finally the rest of the prerequisite packages
yum install libarchive-devel nspr-devel ncurses-devel libcap-devel systemd-devel xorg-x11-server-devel SDL-devel lrzsz gkermit mosquitto-devel
(this is a work in progress)