Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
install:nix [2023/02/25 19:59] – [See Also] Add link to nix:mail article digital maninstall:nix [2024/10/11 22:14] (current) – The installation and re-build make commands are now very different to avoid confusion and mistake that leads to lost files and weeping sysops :-P digital man
Line 1: Line 1:
 ====== UNIX Installation ====== ====== UNIX Installation ======
  
-You will likely need to build Synchronet from [[dev:source]] code for your Unix/Linux distribution, version, and platform architecture.+Build Synchronet from [[dev:source]] code for your Unix/Linux OS distribution, version, and platform architecture.
  
-Before attempting to install/build Synchronet, insure that the [[install:nix:prerequisites]] are installed.+:!: **Before attempting to build Synchronet, insure that the system [[install:nix:prerequisites]] are already installed.**
  
-You will to use a *nix terminal and command shell (e.g. sh/bash) to install and configure Synchronet.+You will need to use a *nix terminal and command shell (e.g. sh/bash) to install and configure Synchronet.
  
 ===== Run-as User ===== ===== Run-as User =====
Line 11: Line 11:
 It is recommended that you install Synchronet while logged-in with the user account that Synchronet will be run-as. If you install Synchronet with one user account and then later run with another (non-root) user account, you could encounter permissions errors. It is recommended that you install Synchronet while logged-in with the user account that Synchronet will be run-as. If you install Synchronet with one user account and then later run with another (non-root) user account, you could encounter permissions errors.
  
-**Running the BBS servers/services (''sbbs'') as the ''root'' user is not recommended**.+:!: **Running the BBS servers/services (''sbbs'') as the system'''root'' user is not recommended**.
  
 Use ''adduser'' (or "''sudo adduser''" if necessary) to create the //run-as// user account (e.g. ''sbbs''). Use ''adduser'' (or "''sudo adduser''" if necessary) to create the //run-as// user account (e.g. ''sbbs'').
Line 20: Line 20:
   $ groups sbbs   $ groups sbbs
   sbbs : sbbs sudo ...   sbbs : sbbs sudo ...
-Belonging to the ''sudo'' group will allow the you to perform system administration functions while logged-in as the BBS //run-as// user through the use of the ''sudo'' command.+Belonging to the ''sudo'' group will allow you to perform system administration functions while logged-in as the BBS //run-as// user through the use of the ''sudo'' command.
  
 Use the ''su'' command to switch the current user to the //run-as// user (the "''-''" specifies to //login// as that user, e.g. setting the cwd to that user's home directory): Use the ''su'' command to switch the current user to the //run-as// user (the "''-''" specifies to //login// as that user, e.g. setting the cwd to that user's home directory):
Line 64: Line 64:
 Choose a build method (using [[dev:Git]] or Tarball)((The Git install method is preferred/recommended)): Choose a build method (using [[dev:Git]] or Tarball)((The Git install method is preferred/recommended)):
  
-==== Using Git ====+==== Git Build Method ====
  
 Quick installation from [[dev:Git]] (requires 100+MB of disk space): Quick installation from [[dev:Git]] (requires 100+MB of disk space):
  
-  * ''$ [[install:nix:fetch makefile|wget]] [[https://gitlab.synchro.net/main/sbbs/-/raw/master/install/GNUmakefile]]''+  * ''$ [[install:nix:fetch makefile|wget]] [[https://gitlab.synchro.net/main/sbbs/-/raw/master/install/install-sbbs.mk]]''
  
 To get and build the latest code: To get and build the latest code:
  
-  * ''$ [[install:nix:make|make]] install SYMLINK=1''+  * ''$ [[install:nix:make|make]] -f install-sbbs.mk SYMLINK=1''
  
 On Linux, it's normal that the user's password may be prompted for near the end of the build process, as required to invoke the ''sudo setcap'' command to enable low-port-binding capability on the Synchronet ''sbbs'' executable. On Linux, it's normal that the user's password may be prompted for near the end of the build process, as required to invoke the ''sudo setcap'' command to enable low-port-binding capability on the Synchronet ''sbbs'' executable.
Line 78: Line 78:
 If building on a Linux system as a user without ''sudo'' access, pass the ''NOCAP=1'' option to disable this function((there are other methods of enabling low-port binding on Linux systems)): If building on a Linux system as a user without ''sudo'' access, pass the ''NOCAP=1'' option to disable this function((there are other methods of enabling low-port binding on Linux systems)):
  
-  * ''$ [[install:nix:make|make]] install SYMLINK=1 NOCAP=1''+  * ''$ [[install:nix:make|make]] -f install-sbbs.mk SYMLINK=1 NOCAP=1''
  
 Or, if you want to build a stable release from Git, specify a valid release [[dev:tags|tag]] on the make command-line (e.g. ''sbbs319b''): Or, if you want to build a stable release from Git, specify a valid release [[dev:tags|tag]] on the make command-line (e.g. ''sbbs319b''):
-  * ''$ [[install:nix:make|make]] install SYMLINK=1 **TAG=sbbs3xxx**''+  * ''$ [[install:nix:make|make]] -f install-sbbs.mk SYMLINK=1 **TAG=sbbs3xxx**''
   * **NOTE**: this does not work with release tags earlier than ''sbbs319b'', use the Tarball install method instead for those.   * **NOTE**: this does not work with release tags earlier than ''sbbs319b'', use the Tarball install method instead for those.
  
Line 87: Line 87:
   * These commands will make and install a //RELEASE// build of the software. To make and install a //DEBUG// build instead, pass ''DEBUG=1'' on the ''make'' command-lines.   * These commands will make and install a //RELEASE// build of the software. To make and install a //DEBUG// build instead, pass ''DEBUG=1'' on the ''make'' command-lines.
   * We don't support parallel builds (e.g. ''make -j'') - so don't do that.   * We don't support parallel builds (e.g. ''make -j'') - so don't do that.
-  * On //Linux// systems, your user password will be prompted for to execute the ''sudo setcap'' command during install. If this is a problem, you can include ''NOCAP=1'' on the ''make'' command-line to bypass that step. +  * Mirrors of the ''install/install-sbbs.mk'' are available at 
-  * Mirrors of the ''install/GNUmakefile'' are available at +      * [[https://github.com/SynchronetBBS/sbbs/raw/master/install/install-sbbs.mk]] 
-      * [[https://github.com/SynchronetBBS/sbbs/raw/master/install/GNUmakefile]] +      * [[https://gitlab.com/SynchronetBBS/sbbs/-/raw/master/install/install-sbbs.mk]]
-      * [[https://gitlab.com/SynchronetBBS/sbbs/-/raw/master/install/GNUmakefile]]+
  
  
Line 99: Line 98:
 lrwxrwxrwx 1 sbbs sbbs    25 Jan 26 21:03 docs -> /home/sbbs/sbbs/repo/docs lrwxrwxrwx 1 sbbs sbbs    25 Jan 26 21:03 docs -> /home/sbbs/sbbs/repo/docs
 lrwxrwxrwx 1 sbbs sbbs    25 Jan 26 21:03 exec -> /home/sbbs/sbbs/repo/exec lrwxrwxrwx 1 sbbs sbbs    25 Jan 26 21:03 exec -> /home/sbbs/sbbs/repo/exec
--rw-r--r-- 1 sbbs sbbs 11001 Jan 26 20:51 GNUmakefile+-rw-r--r-- 1 sbbs sbbs 11001 Jan 26 20:51 install-sbbs.mk
 drwxr-xr-x 1 sbbs sbbs   116 Jan 26 21:07 node1 drwxr-xr-x 1 sbbs sbbs   116 Jan 26 21:07 node1
 drwxr-xr-x 1 sbbs sbbs    48 Jan 26 21:06 node2 drwxr-xr-x 1 sbbs sbbs    48 Jan 26 21:06 node2
Line 114: Line 113:
  
 **Notes**: **Notes**:
-  * You can safely remove the installation ''GNUmakefile'' once successfully installed; it has served its purpose.+  * You can safely remove the installation ''install-sbbs.mk'' once successfully installed; it has served its purpose.
  
-==== Tarball ====+==== Tarball Build Method ====
 Alternatively, if you don't have a working Git client or are low on available disk space, you can use the following steps to install the latest nightly development build: Alternatively, if you don't have a working Git client or are low on available disk space, you can use the following steps to install the latest nightly development build:
  
Line 123: Line 122:
   - ''$ tar -xzf sbbs_src.tgz''   - ''$ tar -xzf sbbs_src.tgz''
   - ''$ tar -xzf sbbs_run.tgz''   - ''$ tar -xzf sbbs_run.tgz''
-  - ''$ echo RELEASE=1 > src/build/localdefs.mk'' 
   - ''$ cd src/sbbs3''   - ''$ cd src/sbbs3''
   - ''$ SBBSEXEC=/sbbs/exec [[install:nix:make|make]] symlinks''((include the 'setcap' target if you intend to use Linux-capabilities to bind low ports))   - ''$ SBBSEXEC=/sbbs/exec [[install:nix:make|make]] symlinks''((include the 'setcap' target if you intend to use Linux-capabilities to bind low ports))
Line 172: Line 170:
     error: unknown type name 'wint_t'     error: unknown type name 'wint_t'
  
-  * The following error indicates the Synchronet libraries (shared objects) are not in your system's library search path or in the directory from which ''sbbs'' was built. Set the ''LD_LIBRARY_PATH'' [[config:env|environment variable]] to point to your Synchronet ''[[dir:exec]]'' directory to resolve:+  * The following error indicates the Synchronet libraries (shared objects) are not in your system's library search path or in the directory from which ''sbbs'' was built. Set the ''LD_LIBRARY_PATH'' [[config:env|environment variable]] to point to your Synchronet ''[[dir:exec]]'' directory or add that directory to your ''/etc/ld.so.conf'' file (and run ''ldconfig''to resolve:
  
     sbbs: error while loading shared libraries: libsbbs.so: cannot open shared object file: No such file or directory     sbbs: error while loading shared libraries: libsbbs.so: cannot open shared object file: No such file or directory