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 [2018/01/18 21:35] – [Updating] Refer to the install:dev page rather than have duplicate instructions digital maninstall:nix [2023/04/08 16:25] (current) – [Tarball Build Method] The new sbbs-src.tgz will include the appropriate local_defs.mk already 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 need to be 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.
  
-It is recommended that you install Synchronet while logged-in with the user account that Synchronet will be run-as. If you install with one user account and then later run with another (non-root) user account, you could encounter permissions errors.+===== Run-as User ===== 
 + 
 +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 system's ''root'' user is not recommended**. 
 + 
 +Use ''adduser'' (or "''sudo adduser''" if necessary) to create the //run-as// user account (e.g. ''sbbs''). 
 +  $ adduser sbbs 
 + 
 +On Linux, it's very convenient for the run-as user to have ''sudo'' access. To achieve this, as a sudo/root user: 
 +  $ sudo adduser sbbs sudo 
 +  $ groups sbbs 
 +  sbbs : sbbs sudo ... 
 +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): 
 + 
 +  $ su - sbbs 
 +  Password: 
 +  $ whoami 
 +  sbbs 
 +   
 +If you find it necessary to start the BBS servers/services as the ''root'' user, then you can have the BBS daemon (''sbbs'') automatically change to the //Run-as User// after it has bound the necessary TCP and UDP [[faq:tcpip#ports]], by setting the ''User'' value of the ''[[config:nix|[Unix]]]'' section of the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file.
  
 ===== Creating the Synchronet Directory ===== ===== Creating the Synchronet Directory =====
-You must create the directory where Synchronet will live. Some common locations would be your ''home'' directory (e.g. ''/home/you/sbbs'') or the system root directory (e.g. ''/sbbs'').+You must create the directory where Synchronet will live. Some common locations would be the ''home'' directory of the Run-as User (e.g. ''/home/sbbs/sbbs'') or the system root directory (e.g. ''/sbbs'').  The information below will assume you are logged in as the user "sbbs".
  
-By default, Synchronet executables will look for files in the ''/sbbs/ctrl'' directory, so if you install Synchronet into a different directory you will need to either create a symbolic link in your root directory (e.g. ''ln -s /home/you/sbbs /'') or set the ''[[config:env#SBBSCTRL]]'' environment variable accordingly.+By default, Synchronet executables will look for files in the ''/sbbs/ctrl'' directory, so if you install Synchronet into a different directory you will need to either create a symbolic link in your root directory (e.g. ''ln -s /home/sbbs/sbbs /'') or set the ''[[config:env#SBBSCTRL]]'' environment variable accordingly.
  
-  - ''[[install:nix:createdir|mkdir /sbbs]]'' +For example, to create your Synchronet directory in ''/sbbs'', you could do the following: 
-  - ''[[install:nix:chdir|cd /sbbs]]''+ 
 +  - ''[[install:nix:createdir|sudo mkdir /sbbs]]''    <- (you would likely be prompted for your password to use "sudo") 
 +  - ''$ [[install:nix:createdir|sudo chown sbbs:sbbs /sbbs]]''    <- (this will change directory ownership to the "sbbs" user and group) 
 +  - ''[[install:nix:chdir|cd /sbbs]]''    <- (puts you in the /sbbs directory as the "sbbs" user) 
 + 
 +Alternatively, to create your Synchronet directory in your Run-as User's home directory (e.g. ''/home/sbbs''), you could do the following: 
 +  - ''$ [[install:nix:createdir|mkdir ~/sbbs]]'' 
 +  - ''$ [[install:nix:chdir|cd ~/sbbs]]'' <- (puts you in the ''/home/sbbs/sbbs'' directory as the "sbbs" user)
  
 The remaining steps assume that the current working directory is your Synchronet installation directory: The remaining steps assume that the current working directory is your Synchronet installation directory:
  
-  pwd+  pwd
   /sbbs   /sbbs
  
-===== Getting/Building =====+or:
  
-If a specific step belows causes problems (e.g. displays an error message), click the highlighted text for more details including common causes of errors.+  $ pwd 
 +  /home/sbbs/sbbs
  
-Note: If you intend on using [[howto:dosemu]] on Linux (for running 16-bit DOS doors), add ''USE_DOSEMU=1'' to the below ''make'' command-lines or put the following in the ''src/sbbs3/localdefs.mk'' file: +===== Getting/Building ===== 
-  UES_DOSEMU=1+ 
 +If a specific step below causes problems (e.g. displays an error message), click the highlighted text for more details including common causes of errors.
  
 === Build === === Build ===
  
-Choose a build method (using [[dev:CVS]] or not):+Choose a build method (using [[dev:Git]] or Tarball)((The Git install method is preferred/recommended)): 
 + 
 +==== Git Build Method ==== 
 + 
 +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]]'' 
 + 
 +To get and build the latest code: 
 + 
 +  * ''$ [[install:nix:make|make]] install 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. 
 + 
 +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'' 
 + 
 +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**'' 
 +  * **NOTE**: this does not work with release tags earlier than ''sbbs319b'', use the Tarball install method instead for those. 
 + 
 +**Notes**: 
 +  * 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. 
 +  * Mirrors of the ''install/GNUmakefile'' are available at 
 +      * [[https://github.com/SynchronetBBS/sbbs/raw/master/install/GNUmakefile]] 
 +      * [[https://gitlab.com/SynchronetBBS/sbbs/-/raw/master/install/GNUmakefile]]
  
-==== Using CVS ==== 
  
-Quick installation from [[dev:CVS]]:  +=== Result === 
 +If you installed with the ''SYMLINK=1'' option, the resulting installation directory tree should look like this: 
 +<code> 
 +drwxr-xr-x 1 sbbs sbbs  2418 Jan 26 23:24 ctrl 
 +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 
 +-rw-r--r-- 1 sbbs sbbs 11001 Jan 26 20:51 GNUmakefile 
 +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 node3 
 +drwxr-xr-x 1 sbbs sbbs    48 Jan 26 21:06 node4 
 +drwxr-xr-x 1 sbbs sbbs   240 Jan 26 20:58 repo 
 +lrwxrwxrwx 1 sbbs sbbs    25 Jan 26 21:03 text -> /home/sbbs/sbbs/repo/text 
 +lrwxrwxrwx 1 sbbs sbbs    24 Jan 26 21:03 web -> /home/sbbs/sbbs/repo/web 
 +lrwxrwxrwx 1 sbbs sbbs    26 Jan 26 21:03 webv4 -> /home/sbbs/sbbs/repo/webv4 
 +lrwxrwxrwx 1 sbbs sbbs    25 Jan 26 21:03 xtrn -> /home/sbbs/sbbs/repo/xtrn 
 +</code>
  
-  - ''[[install:nix:fetch makefile|wget 'http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/GNUmakefile]]' '' +Due to the symbolic directory links (represented with ''->'' arrows above), subsequent ''[[howto:git]] pull'' operations (in the ''sbbs/repo'' directory) will automatically update the ''docs'', ''[[dir:exec]]'', ''[[dir:text]]''''[[dir:web]]'', ''[[dir:webv4]]'', and ''[[dir:xtrn]]'' directories. This means that any //local changes// (configurations or customizations) of files in **those** directories may need to be merged with any upstream changes later. Most configuration files are located in the ''[[dir:ctrl]]'' directory so they are automatically excluded from any update/merge issues.
-  - ''[[install:nix:make|make]] install SYMLINK=1''+
  
-If you want to build a stable release from CVS, specify a valid release [[dev:tags|tag]] on the make command-line (e.g. ''sbbs316c'')+**Notes**
-  ''# [[install:nix:make|make]] install SYMLINK=1 **CVSTAG=sbbs316c**''+  * You can safely remove the installation ''GNUmakefile'' once successfully installed; it has served its purpose.
  
-  * Note: 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. +==== Tarball Build Method ==== 
-  * Note: if you installed with a specified ''CVSTAG'' value and wish to reset this "sticky tag" later (i.e. to get the latest and greatest files from CVS), execute ''cvs update -A -d'' from the installation directory and rebuild. +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:
-==== Non-CVS ==== +
-Alternatively, if you don't have a working CVS client, you can use the following steps to install the latest nightly development build:+
  
-  - ''wget ftp://vert.synchro.net/Synchronet/sbbs_src.tgz'' +  - ''wget ftp://vert.synchro.net/Synchronet/sbbs_src.tgz'' 
-  - ''wget ftp://vert.synchro.net/Synchronet/sbbs_run.tgz'' +  - ''wget ftp://vert.synchro.net/Synchronet/sbbs_run.tgz'' 
-  - ''tar -xzf sbbs_src.tgz'' +  - ''tar -xzf sbbs_src.tgz'' 
-  - ''tar -xzf sbbs_run.tgz'' +  - ''tar -xzf sbbs_run.tgz'' 
-  - ''cd /sbbs/src/sbbs3; [[install:nix:make|make]] RELEASE=1'' +  - ''cd src/sbbs3'' 
-  - ''# cd /sbbs/src/sbbs3/scfg; [[install:nix:make|make]] RELEASE=1'' +  - ''$ SBBSEXEC=/sbbs/exec [[install:nix:make|make]] symlinks''((include the 'setcaptarget if you intend to use Linux-capabilities to bind low ports)) 
-  - ''# cd /sbbs/xtrn/sbj; [[install:nix:make|make]]'' +  - ''$ SBBSCTRL=/sbbs/ctrl /sbbs/exec/jsexec update.js''
-  - ''# cd /sbbs/xtrn/sbl; [[install:nix:make|make]]'' +
-  - ''# cd /sbbs/exec'' +
-  - ''# ln -s ../src/sbbs3/gcc.*.exe.release/* .'' +
-  - ''# ln -s ../src/sbbs3/scfg/gcc.*.exe.release/scfg* .'' +
-  - ''# [[install:nix:make|make]]''+
  
 If you want to build a stable release, replace the archive filenames above with valid release filenames: If you want to build a stable release, replace the archive filenames above with valid release filenames:
-  - replace ''sbbs_dev.tgz'' with ''ssrc**316c**.tgz'' +  - replace ''sbbs_src.tgz'' with ''ssrc**319b**.tgz'' 
-  - replace ''sbbs_run.tgz'' with ''srun**316c**.tgz''+  - replace ''sbbs_run.tgz'' with ''srun**319b**.tgz''
  
 ==Using System Libraries== ==Using System Libraries==
 On systems that are not properly supported by SpiderMonkey, you may be need to make use of a vendor supplied version.  Doing so is not recommended or well supported, but it may be the only way to get Synchronet running on some platforms.  The following steps have been reported to work on Debian Squeeze (6.0) armel (ARMv5te, EABI) on a Marvell Sheevaplug dev kit. On systems that are not properly supported by SpiderMonkey, you may be need to make use of a vendor supplied version.  Doing so is not recommended or well supported, but it may be the only way to get Synchronet running on some platforms.  The following steps have been reported to work on Debian Squeeze (6.0) armel (ARMv5te, EABI) on a Marvell Sheevaplug dev kit.
-   - ''apt-get install libmozjs185-dev''+   - ''apt-get install libmozjs185-dev''
    - Add ''JSINCLUDE=/usr/include/js JSLIB=mozjs185'' to your make command line    - Add ''JSINCLUDE=/usr/include/js JSLIB=mozjs185'' to your make command line
  
 On OpenBSD 5.5-current on 64-bit UltraSPARC: On OpenBSD 5.5-current on 64-bit UltraSPARC:
-   - ''pkg_add -r spidermonkey-1.9'' +   - ''pkg_add -r spidermonkey-1.9'' 
-   - ''ln -s /usr/local/lib/libspidermonkey.so.0.0 /usr/local/lib/libspidermonkey.so''+   - ''ln -s /usr/local/lib/libspidermonkey.so.0.0 /usr/local/lib/libspidermonkey.so''
    - Add ''JSINCLUDE=/usr/local/include/js'' to your make command line.    - Add ''JSINCLUDE=/usr/local/include/js'' to your make command line.
  
 ==== Errors ==== ==== Errors ====
  
-  * The following error indicates that you failed to either build ''baja'' or symlink or copy it into your ''[[dir:exec]]'' directory:+  * The following error indicates that you failed to install the ''libncurses-dev'' (or ''libncursesw5-dev''[[install:nix:prerequisites|prerequisite]]:
  
-    make*** No rule to make target `bullseye.bin', needed by `all' Stop.+    fatal error: curses.h: No such file or directory
    
   * The following error indicates that you failed to install the ''libnspr4-dev'' [[install:nix:prerequisites|prerequisite]]:   * The following error indicates that you failed to install the ''libnspr4-dev'' [[install:nix:prerequisites|prerequisite]]:
Line 86: Line 151:
  
   * Errors such as "C++ cannot create executables" and many others are generally caused by missing [[install:nix:prerequisites]].   * Errors such as "C++ cannot create executables" and many others are generally caused by missing [[install:nix:prerequisites]].
 +
 +  * The following errors occur when building the Mozilla JavaScript library (libmozjs), are normal and can be safely ignored:
 +<code>
 +  /bin/sh: 1: autoconf-2.13: not found
 +  GNUmakefile:52: recipe for target '../build/../../src/../3rdp/gcc.linux.x64.debug/mozjs/lib/libmozjs185-1.0.a' failed
 +  make[1]: [../build/../../src/../3rdp/gcc.linux.x64.debug/mozjs/lib/libmozjs185-1.0.a] Error 127 (ignored)
 +</code>
 +  * The following error indicates you specified a ''symlinks'' make target without the ''[[config:env#SBBSCTRL]]'' or ''[[config:env#SBBSEXEC]]'' environment variable set.
 +
 +    make: *** No rule to make target 'symlinks' Stop.
 +
 +  * The following error indicates you specified an ''install'' make target without the ''[[config:env#SBBSCTRL]]'' or ''[[config:env#SBBSEXEC]]'' environment variable set.
 +
 +    make: *** No rule to make target 'install' Stop.
 +
 +  * The following compilation error indicates that the //wide character// variant of the ''ncurses'' library has not been [[install:nix:prerequisites|installed]]:
 +
 +    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:
 +
 +    sbbs: error while loading shared libraries: libsbbs.so: cannot open shared object file: No such file or directory
 +
 ==== Notes ==== ==== Notes ====
  
Line 98: Line 186:
 If you wish to build debug binaries, add ''DEBUG=1'' to the ''make'' command-lines in the above steps. If you wish to build debug binaries, add ''DEBUG=1'' to the ''make'' command-lines in the above steps.
  
-Debug and release builds files are generated in separate output directories. If you created symlinks to your executables (i.e. specified ''SYMLINK=1'' on the first make invocation) and switched between release and debug builds, you will need to remove or replace the symlinks in your Synchronet ''[[dir:exec]]'' directory.+Debug and release builds files are generated in separate output directories. If you created symlinks to your executables (i.e. specified ''SYMLINK=1'' on the first make invocation) and switched between release and debug builds, you will need to remove or replace the symlinks in your Synchronet ''[[dir:exec]]'' directory; this can be achieved using the ''symlinks'' build target of the ''src/sbbs3/GNUmakefile''
 + 
 +=== Graphical Utilities === 
 + 
 +Run ''make gtkutils'' in the ''src/sbbs3'' directory to build the GTK utilities (e.g. [[monitor:gtkmonitor]]). Add the ''install'' or ''symlinks'' target to the command-line to get the GTK utilities symlinked or copied into your Synchronet ''exec'' directory.
  
 === JavaScript Library === === JavaScript Library ===
  
-As of October 8th, 2011, we are including the complete [[http://mozilla.org/js/spidermonkey|SpiderMonkey]] (JavaScript-C) library 1.8.5 source code in the Synchronet [[dev:CVS]] Repository (under ''[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/3rdp/dist/|3rdp/dist]]'') and the ''src/sbbs3/GNUmakefile'' will build it automatically. You should now **not** need to specify a ''JSLIB='' value on your ''make'' command-lines.+As of October 8th, 2011, we are including the complete [[http://mozilla.org/js/spidermonkey|SpiderMonkey]] (JavaScript-C) library 1.8.5 source code in the Synchronet Source Repository (under ''[[https://gitlab.synchro.net/main/sbbs/-/tree/master/3rdp/dist|3rdp/dist]]'') and the ''src/sbbs3/GNUmakefile'' will build it automatically. You should now **not** need to specify a ''JSLIB='' value on your ''make'' command-lines.
  
 == JavaScript Issues for OpenBSD Users == == JavaScript Issues for OpenBSD Users ==
Line 119: Line 211:
 Some third parties make unsupported tarballs available from their own sites.  Using them is not recommended or supported.  Whenever possible you should build yourself. Some third parties make unsupported tarballs available from their own sites.  Using them is not recommended or supported.  Whenever possible you should build yourself.
  
-^ OS              ^ Platform     ^ Provided By ^ Date      ^ Archive                                          ^ +^ OS               ^ Platform     ^ Provided By ^ Date      ^ Archive                                          ^ 
-| Debian 9.1 (stretch | amd64        | [[person:digital_man]]  | Every morning (PT) | [[ftp://ftp.synchro.net/sbbs_dev.tgz|sbbs_dev.tgz]] [[ftp://ftp.synchro.net/sbbs_run.tgz|sbbs_run.tgz]] |+| Debian (testing) | amd64        | [[person:digital_man]]  | Every morning (PT) | [[ftp://ftp.synchro.net/sbbs_dev.tgz|sbbs_dev.tgz]] [[ftp://ftp.synchro.net/sbbs_run.tgz|sbbs_run.tgz]] |
  
 ===== Configuring ===== ===== Configuring =====
  
   - ''# [[install:nix:setenv|export SBBSCTRL=/sbbs/ctrl]]''   - ''# [[install:nix:setenv|export SBBSCTRL=/sbbs/ctrl]]''
-  - ''# [[install:nix:initial configuration|/sbbs/exec/scfg]]''+  - ''# [[install:setup|/sbbs/exec/scfg]]''
  
 See [[config:nix]] for more details on configuring the Synchronet initialization file (''[[dir:ctrl]]/[[config:sbbs.ini]]'') for Unix/Linux. See [[config:nix]] for more details on configuring the Synchronet initialization file (''[[dir:ctrl]]/[[config:sbbs.ini]]'') for Unix/Linux.
Line 144: Line 236:
 ==== Daemon Mode ==== ==== Daemon Mode ====
  
-You can install Synchronet to run as a daemon (background service, usually preferred).+You can install Synchronet to run as a daemon (background service, this is usually preferred).
  
-You must be 'root' to install daemons on Unix/Linux.+You must be 'root' or have ''sudo'' permissions to install daemons on Unix/Linux.
  
 === Linux === === Linux ===
  
-  - ''# cd /etc/init.d'' +== Debian (systemd) ==
-  - ''# [[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/init.d/sbbs|wget http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/init.d/sbbs]]'' or ''[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/init.d/sbbs.debian|sbbs.debian]]'' or ''[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/init.d/sbbs.gentoo|sbbs.gentoo]]'' +
-  - ''# chmod +x sbbs'' +
-  - ''# /etc/init.d/sbbs start'' +
  
-See [[monitor:syslog]], [[monitor:umonitor]], [[monitor:gtkmonitor]] and [[util:node]] for details on options for monitoring the Synchronet daemon while it's running in the background:+Modern Debian-based Linux systems (including **Ubuntu**) use [[https://wiki.debian.org/systemd|systemd]] to control (e.g. start/stop) and monitor system services (daemons). See [[howto:systemd]] for detailed instructions on configuring Synchronet as a daemon that is started automatically and controlled via systemd.
  
-  # /etc/init.d/sbbs status +== Debian (SysVinit) == 
-  Synchronet BBS services status[running] + 
-  PID(s): 25171+If using an **older** Debian-based Linux which still uses a SysV/init.d daemon/service control system, you should use either of the following methods to add the Synchronet system service to your startup configuration for the ''sbbs'' daemon to start automatically during system startup: 
 + 
 +  # insserv -v sbbs
      
-== Red Hat ==+or: 
 + 
 +  # update-rc.d sbbs enable 2 3 4 5 
 + 
 +  
 +== Red Hat==
  
 If using a Red Hat based Linux (e.g. Fedora), you may need to add the Synchronet system service to your startup configuration for the ''sbbs'' daemon to start automatically during system startup: If using a Red Hat based Linux (e.g. Fedora), you may need to add the Synchronet system service to your startup configuration for the ''sbbs'' daemon to start automatically during system startup:
Line 167: Line 263:
   # chkconfig --add sbbs   # chkconfig --add sbbs
      
-== Debian ==+== System V Init ==
  
-If using a Debian based Linux, you should use either of the following methods to add the Synchronet system service to your startup configuration for the ''sbbs'' daemon to start automatically during system startup:+  - ''# cd /etc/init.d'' 
 +  - ''# [[https://gitlab.synchro.net/main/sbbs/-/raw/master/install/init.d/sbbs|wget https://gitlab.synchro.net/main/sbbs/-/raw/master/install/init.d/sbbs]]'' or ''[[https://gitlab.synchro.net/main/sbbs/-/raw/master/install/init.d/sbbs.debian|sbbs.debian]]'' or ''[[https://gitlab.synchro.net/main/sbbs/-/raw/master/install/init.d/sbbs.gentoo|sbbs.gentoo]]'' 
 +  - ''# chmod +x sbbs'' 
 +  - ''# /etc/init.d/sbbs start'' 
  
-  # insserv -v sbbs +See [[monitor:syslog]], [[monitor:umonitor]], [[monitor:gtkmonitor]] and [[util:node]] for details on options for monitoring the Synchronet daemon while it's running in the background:
-   +
-or: +
- +
-  # update-rc.d sbbs enable 2 3 4 5+
  
 +  # /etc/init.d/sbbs status
 +  Synchronet BBS services status: [running]
 +  PID(s): 25171
 + 
 +  
 === FreeBSD === === FreeBSD ===
  
-1) Get the Synchronet service run script (init file) from [[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/rc.d/sbbs|here]].+1) Get the Synchronet service run script (init file) from [[https://gitlab.synchro.net/main/sbbs/-/raw/master/install/rc.d/sbbs|here]].
  
 2) Copy the run script (sbbs) into your ''/usr/local/etc/rc.d'' directory 2) Copy the run script (sbbs) into your ''/usr/local/etc/rc.d'' directory
Line 208: Line 308:
      
      
-===== Terminal Capabilities ===== 
- 
-As you may have noticed by now, most telnet clients designed for use with 
-ANSI BBSes do not display full-screen Unix programs correctly. Included with 
-Synchronet is a pair of terminal capability definition files that enable you 
-to run native full-screen Unix programs and have the output displayed correctly 
-in a standard ANSI-BBS terminal.  These files are ''termcap'' and ''terminfo'', 
-located in your Synchronet install directory.  Your system will use one or the 
-other, and it won't hurt to install both.  You will need to be logged in as 
-root to install the files. 
- 
-==== Installing the terminfo file ==== 
- 
-1) Get the Synchronet ANSI-BBS terminfo file from 
-[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/terminfo|here]]. 
- 
-2) Enter the command: 
-  # tic terminfo 
- 
-==== Installing the termcap file ==== 
- 
-1) Get the Synchronet ANSI-BBS termcap file from 
-[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/termcap|here]]. 
- 
-2) Enter the command: 
-  # cat termcap >> /etc/termcap 
- 
-3) **FreeBSD Only** run the command: 
-  # cap_mkdb -f /usr/share/misc/termcap /etc/termcap 
- 
-Once the terminal capability files are installed, edit the ''ExternalTermANSI'' 
-value in the ''[BBS]'' section of your ''[[:config:sbbs.ini]]'' file to read: 
-    ExternalTermANSI=ansi-bbs 
- 
-Note: The default value of the ''ExternalTermANSI'' ''[[:config:sbbs.ini]]'' key is ''pc3''. If you get an error ''Unknown terminal: pc3'' from external programs, it means that this key value has not been set to a valid terminal type. 
- 
-Note: Once again, many Linux distros do not have a termcap.  This is fine. 
-You do NOT need to install the termcap-compat package.  If termcap 
-isn't installed, it means nothing uses it.  Only if there is a 
-termcap do you need to add the ''ansi-bbs'' termcap definition. 
- 
 ===== A note on SysOp paging ===== ===== A note on SysOp paging =====
  
Line 269: Line 328:
 ===== Updating ===== ===== Updating =====
  
-Updating/synchronizing the source code with the [[dev:CVS]] repository:+Updating/synchronizing the source files:
  
-1. Change to your Synchronet installation directory+1. If you already have the Synchronet [[dev:Git]] repository cloned to your local system, fetch and merge any upstream changes
-  # cd /sbbs+  $ git -C /sbbs/repo pull 
 +   
 +**Or** If you do **not** already have the Git repository cloned, [[howto:git#clone]] it to your ''sbbs/repo'' directory: 
 +  $ git clone https://gitlab.synchro.net/main/sbbs.git /sbbs/repo 
 +  
 +**Or** download the latest source code and 3rd party library files and extract into your ''sbbs/repo'' directory tree: 
 +  $ mkdir /sbbs/repo; cd /sbbs/repo 
 +  $ wget ftp://vert.synchro.net/Synchronet/sbbs_src.tgz 
 +  $ tar -xzf sbbs_src.tgz
  
-2. Back-up your working exec directory:  +2. Rebuild Synchronet (replace ''symlinks'' with ''install'' if you prefer to copy executable and library files to your ''[[dir:exec]]'' directory):
-  # tar -czf exec.tgz exec+
  
-3. Get the latest changes from [[dev:CVS]]: +  $ cd /sbbs/repo/src/sbbs3; make RELEASE=1 symlinks
-  # export CVSROOT=:pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs  +
-  # cvs update -d src 3rdp+
  
-4. Rebuild Synchronet and Baja modules (replace ''symlinks'' with ''install'' if you prefer to copy executable and library files to your ''[[dir:exec]]'' directory):+Or if you're using ''setcap'' to start sbbs as a [[howto:Linux non-root]] user:
  
-  - ''# cd /sbbs/src/sbbs3; [[install:nix:make|make]] RELEASE=1 symlinks'' +  cd /sbbs/repo/src/sbbs3; make RELEASE=1 setcap symlinks
-  - ''# cd /sbbs/src/sbbs3/scfg[[install:nix:make|make]] RELEASE=1 symlinks''+
  
-:!: If you get the error''no rule to make target 'symlinks' or 'install'', this is an indication that you do not have either the ''[[config:env#SBBSCTRL]]'' or ''[[config:env#SBBSEXEC]]'' environment variable set+:!: If you get the error ''no rule to make target 'symlinks''' or '''install''', this is an indication that you do not have either the ''[[config:env#SBBSCTRL]]'' or ''[[config:env#SBBSEXEC]]'' environment variable set
  
-5. Perform the steps listed [[dev#run-time_files|here]]+3. Perform the steps listed [[dev#run-time_files|here]] to update the run-time files (e.g. ''[[custom:text.dat]]'').
  
-6. Shutdown and re-run sbbs:+4. Shutdown and re-run sbbs (when daemonized):
  
-  - ''# /etc/init.d/sbbs restart'' +  $ systemctl restart sbbs
  
-====== Clean Rebuild ======+or:
  
-Occasionally, you may need to perform a //clean// rebuild. A clean build can generally be achieved by first executing "''[[install:nix:make|make]] RELEASE=1 clean''" in the ''src/sbbs3''  and ''src/sbbs3/scfg'' directories before performing your normal ''make'' command-lines (step 4 above), but sometimes (rarely) the clean command will need to be executed in one or all of the following directories first (e.g. when dependent files are deprecated and removed from CVS):  +  $ service sbbs restart
-   * src/comio +
-   * src/conio +
-   * src/smblib +
-   * src/uifc +
-   * src/xpdev+
  
-**Note**: +or: 
-If you elect to build //debug// binaries (instead of //release// binaries), then you'll need to exclude the ''RELEASE=1'' portion from your ''make clean'' commands. Otherwise, you'll be cleaning the ''*.release'' output directories when you really need to be cleaning the ''*.debug'' output directories. Likewise, if you're building and running //release// binaries, then you need to include the ''RELEASE=1'' portion on the ''make clean'' commands as well. Alternatively, you can set your default build type in the file ''localdefs.mk''. The ''localdefs.mk'' file should be created by you in either in the ''src/build'' directory (to apply to //all// bulids), or within each directory you run ''make'': + 
-  RELEASE=1+  $ /etc/init.d/sbbs restart  
 + 
 + 
 +==== Clean Rebuild ==== 
 + 
 +Occasionally, you may need to perform a //clean// rebuild. A clean build can generally be achieved by going to the ''src/'' directory and executing: 
 +  ./cleanall.sh RELEASE=1 
 + 
 +**Note**:\\ 
 +If you elect to build //debug// binaries (instead of //release// binaries), then you'll need to //exclude// the ''RELEASE=1'' portion from the ''cleanall.sh'' command. Otherwise, you'll be cleaning the ''*.release'' output directories when you really need to be cleaning the ''*.debug'' output directories. Likewise, if you're building and running //release// binaries, then you need to //include// the ''RELEASE=1'' portion on the ''cleanall.sh'' commands as well. Alternatively, you can set your default build type in the file ''localdefs.mk''. The ''localdefs.mk'' file should be created by you in either in the ''src/build'' directory (to apply to //all// builds), or within each directory you run ''make'': 
 +<file make localdefs.mk> 
 +RELEASE=1 
 +</file> 
 +   
 +===== Setup =====  
 +Now that you've completed the installation, move on to the [[setup|initial setup]] instructions.
 ===== See Also ===== ===== See Also =====
   * [[:config:nix|Configuring Synchronet for Unix/Linux]]   * [[:config:nix|Configuring Synchronet for Unix/Linux]]
Line 312: Line 385:
   * [[:monitor:gtkmonitor]]   * [[:monitor:gtkmonitor]]
   * [[:install:nix:Prerequisites]]   * [[:install:nix:Prerequisites]]
 +  * [[:install:nix:mail|Installing Synchronet as your UNIX mail system]]
 +  * [[:install:nix:termcaps|Installing ANSI-BBS Terminal Capabilities]]
   * [[:howto:freebsd_non-root|How to run sbbs for FreeBSD as a non-root user]]   * [[:howto:freebsd_non-root|How to run sbbs for FreeBSD as a non-root user]]
   * [[:howto:linux_non-root|How to run sbbs for Linux as a non-root user]]   * [[:howto:linux_non-root|How to run sbbs for Linux as a non-root user]]
Line 320: Line 395:
   * [[:dev:tags|Development Tags]]   * [[:dev:tags|Development Tags]]
  
-{{tag>unix linux freebsd}}+{{tag>install unix linux freebsd}}
  
install/nix.1516340100.txt · Last modified: 2018/01/18 21:35 by digital man
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0