====== Unix/Linux Prerequisites ====== ===== Building ===== You probably need or want to build Synchronet for your Unix/Linux system from [[dev:source|source code]] and you will need the following prerequisites installed first: ==== Required ==== ^ Required Component ^ Files ^ Debian Package ^ Red Hat Package ^ FreeBSD Port/Package ^ | [[http://www.gnu.org/software/make/|GNU make]] | ''[[:install:nix:make|gmake]]'' or ''make'' | [[http://packages.debian.org/stable/make|make]] | make | devel/gmake | | [[http://gcc.gnu.org/|GNU C/C++ Compiler]] or [[https://clang.llvm.org/|Clang C/C++ Compiler]] | ''gcc'' and ''g++'' or ''clang'' and ''clang++'' | [[http://packages.debian.org/stable/g++|g++]] | gcc | Part of system | | System C library header files |''errno.h'' | [[http://packages.debian.org/stable/linux-libc-dev|linux-libc-dev]] | glibc-headers | Part of system | | [[http://libarchive.org|libarchive]] | ''libarchive.so'' and ''archive.h'' | [[https://packages.debian.org/stable/libarchive-dev|libarchive-dev]] | libarchive-devel | Part of system | | [[http://www.gnu.org/software/ncurses/|ncurses library and headers]] | ''libncurses.so'' and ''ncurses.h'' or ''curses.h'' | [[http://packages.debian.org/stable/libncursesw5-dev|libncursesw5-dev]] | ncurses-devel | Part of system | | [[http://www.mozilla.org/projects/nspr/|Netscape Portable Runtime Library]] | ''libnspr4.so'' and ''nspr.h'' | [[http://packages.debian.org/stable/libnspr4-dev|libnspr4-dev]] | nspr-devel | devel/nspr | | [[http://www.perl.org|Perl]] | ''perl'' | [[https://packages.debian.org/stable/perl|perl]] | | lang/perl5.14 (version subject to change) | | [[http://www.python.org|Python]] | ''python'' | [[https://packages.debian.org/stable/python3|python3]] | python | lang/python | | [[http://github.com/pkgconf/pkgconf/|pkgconf]] | ''pkg-config'' | [[https://packages.debian.org/stable/pkg-config|pkg-config]] |pkgconfig| devel/pkgconf | | unzip | ''unzip'' | [[https://packages.debian.org/stable/zip|zip]] | unzip | archivers/unzip | | patch (for non-x86 platforms)| patch | [[https://packages.stable.org/stable/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 ^ | [[https://git-scm.com/|Git]] | ''git'' | [[https://packages.debian.org/stable/git|git]] | ''devel/git'' | ''ftp'', ''wget'', ''curl'' | | Capabilities Library (Linux) | ''libcap.so'' and ''sys/capability.h'' | [[http://packages.debian.org/stable/libcap2-dev|libcap-dev]] | Not available | ''[[howto:linux_non-root|setcap]]'' | | GNU Debugger | ''gdb'' | [[http://packages.debian.org/stable/gdb|gdb]] | Part of system | | | systemd library (for systemd integration) | ''libsystemd.so'' and headers | [[https://packages.debian.org/stable/libsystemd-dev|libsystemd-dev]] | N/A | | | MQTT library | ''libmosquitto.so'' and headers | [[https://packages.debian.org/stable/libmosquitto-dev|libmosquitto-dev]] | net/mosquitto | | | [[http://x.org|Xorg]] | ''Xlib.so'' and headers | [[http://packages.debian.org/stable/xorg-dev|xorg-dev]] | ''x11/xorg'' | | | [[http://libSDL.org|SDL 2]] | ''libsdl.so'' and headers | [[http://packages.debian.org/stable/libsdl2-dev|libsdl2-dev]] | ''devel/sdl2'' | | | [[http://www.gtk.org|GTK+]] | libraries and headers | [[http://packages.debian.org/stable/libgtk-3-dev|libgtk-3-dev]] | ''x11-toolkits/gtk30'' | | | [[https://glade.gnome.org/|GTK+ User Interface Builder (GLADE)]] | libraries and headers | [[http://packages.debian.org/stable/libglade2-dev|libglade2-dev]] | devel/libglade2 | | | [[https://www.gnu.org/software/wget/|GNU Wget]] | ''wget'' | [[https://packages.debian.org/stable/wget|wget]] | ''ftp/wget'' | | ===== 3rd Party Programs ===== Some 3rd party executables may be utilized while running a Synchronet BBS: ==== Optional ==== ^ Optional Component ^ Files ^ Debian Package ^ FreeBSD port/package ^ Comments ^ | [[http://www.ohse.de/uwe/software/lrzsz.html|lrzsz]] | ''rz'' and ''sz'' | [[http://packages.debian.org/stable/lrzsz|lrzsz]] | comms/lrzsz | Use [[util:sexyz]] instead | | [[http://www.columbia.edu/kermit/gkermit.html|G-Kermit]] | ''gkermit'' | [[http://packages.debian.org/stable/gkermit|gkermit]] | comms/gkermit | | | Network tools | ''netstat'', ''ifconfig'' | [[http://packages.debian.org/stable/net-tools|net-tools]] | | [[https://packages.debian.org/stable/iproute2|iproute2]] package contains newer/alternative tools (e.g. ''ss'', ''ip'') | ===== Install ===== ==== Debian/Ubuntu Linux ==== The following shell command-line/script file((made executable with chmod +x)) can be used to install the required and recommended packages on **Debian**-based Linux distros (e.g. **Ubuntu**): 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) ==== MacOS ==== After installing [[http://brew.sh|Homebrew]]: brew install pkgconf nspr libarchive sdl2 ===== See Also ===== * [[:dev:Dependencies]] * [[:install:nix:|Installation for UNIX Instructions]]