Cree Synchronet a partir del código source para su distribución, versión y arquitectura de plataforma del sistema operativo Unix/Linux.
Antes de intentar compilar Synchronet, asegúrese de que el sistema prerequisites ya esté instalado.
Deberá utilizar un terminal *nix y un shell de comandos (por ejemplo, sh/bash) para instalar y configurar Synchronet.
Se recomienda que instale Synchronet mientras está conectado con la cuenta de usuario con la que se ejecutará Synchronet. Si instala Synchronet con una cuenta de usuario y luego lo ejecuta con otra cuenta de usuario (no raíz), podría encontrar errores de permisos.
No se recomienda ejecutar los servidores/servicios BBS (sbbs
) como usuario raíz
del sistema.
Use adduser
(o “sudo adduser
” si es necesario) para crear la cuenta de usuario run-as (por ejemplo, sbbs
). $ adduser sbbs
En Linux, es muy conveniente para el usuario ejecutar como tener acceso sudo
. Para lograr esto, como usuario sudo/root:
$ sudo adduser sbbs sudo $ groups sbbs sbbs : sbbs sudo ...
Pertenecer al grupo sudo
le permitirá realizar funciones de administración del sistema mientras está conectado como usuario de BBS run-as mediante el uso del comando sudo
.
Use el comando su
para cambiar el usuario actual a ejecutar-como usuario (el “-
” especifica iniciar sesión como ese usuario, por ejemplo, configurando el cwd a ese usuario directorio de inicio):
$ su - sbbs Password (Contraseña): $ whoami sbbs
Si considera necesario iniciar los servidores/servicios de BBS como el usuario raíz
, entonces puede hacer que el demonio de BBS (sbbs
) cambie automáticamente a Ejecutar como usuario después de que haya terminado. vinculó los ports TCP y UDP necesarios, configurando el valor User
de la sección [Unix]
de ctrl/sbbs.ini
.
Debe crear el directorio donde residirá Synchronet. Algunas ubicaciones comunes serían el directorio inicio
del usuario Run-as (por ejemplo, /home/sbbs/sbbs
) o el directorio raíz del sistema (por ejemplo, /sbbs
). La siguiente información supondrá que ha iniciado sesión como el usuario “sbbs”.
De forma predeterminada, los ejecutables de Synchronet buscarán archivos en el directorio /sbbs/ctrl
, por lo que si instala Synchronet en un directorio diferente, deberá crear un enlace simbólico en su directorio raíz (por ejemplo, ln -s /home/sbbs/sbbs /
) o establezca la variable de entorno SBBSCTRL
según corresponda.
Por ejemplo, para crear su directorio Synchronet en /sbbs
, podría hacer lo siguiente:
$ sudo mkdir /sbbs
← (you would likely be prompted for your password to use “sudo”)$ sudo chown sbbs:sbbs /sbbs
← (this will change directory ownership to the “sbbs” user and group)$ cd /sbbs
← (puts you in the /sbbs directory as the “sbbs” user)
Alternativamente, para crear su directorio Synchronet en el directorio de inicio de su Run-as User (e.g. /home/sbbs
), you could do the following:
$ cd ~/sbbs
← (puts you in the /home/sbbs/sbbs
directory as the “sbbs” user)Los pasos restantes asumen que el directorio de trabajo actual es su directorio de instalación de Synchronet:
$ pwd /sbbs
o:
$ pwd /home/sbbs/sbbs
Si un paso específico a continuación causa problemas (por ejemplo, muestra un mensaje de error), haga clic en el texto resaltado para obtener más detalles, incluidas las causas comunes de errores.
Instalación rápida desde Git (requiere más de 100 MB de espacio en disco):
Para obtener y compilar el código más reciente:
$ make instalar SYMLINK=1
En Linux, es normal que se solicite la contraseña del usuario cerca del final del proceso de compilación, según sea necesario para invocar el comando sudo setcap
para habilitar la capacidad de enlace de puerto bajo en el ejecutable sbbs
de Synchronet .
Si construye en un sistema Linux como usuario sin acceso sudo
, pase la opción NOCAP=1
para deshabilitar esta función 2):
$ make instalar SYMLINK=1 NOCAP=1
O bien, si desea crear una versión estable de Git, especifique una versión válida tag en la línea de comando make (por ejemplo, sbbs319b
):
$ make instalar SYMLINK=1 TAG=sbbs3xxx
sbbs319b
, use el método de instalación de Tarball en su lugar.Notas:
DEBUG=1
en las líneas de comando make
.make -j
), así que no lo hagas.install/GNUmakefile
están disponibles en
Si instaló con la opción SYMLINK=1
, el árbol de directorios de instalación resultante debería verse así:
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
Due to the symbolic directory links (represented with ->
arrows above), subsequent git pull
operations (in the sbbs/repo
directory) will automatically update the docs
, exec
, text
, web
, webv4
, and 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 ctrl
directory so they are automatically excluded from any update/merge issues.
Notes:
GNUmakefile
once successfully installed; it has served its purpose.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:
$ tar -xzf sbbs_src.tgz
$ tar -xzf sbbs_run.tgz
$ cd src/sbbs3
$ SBBSCTRL=/sbbs/ctrl /sbbs/exec/jsexec update.js
Si desea crear una versión estable, reemplace los nombres de archivo de archivo anteriores con nombres de archivo de versión válidos:
sbbs_src.tgz
with ssrc319b.tgz
sbbs_run.tgz
with srun319b.tgz
En los sistemas que no cuentan con el soporte adecuado de SpiderMonkey, es posible que necesite utilizar una versión suministrada por un proveedor. Si lo hace, no se recomienda ni se admite bien, pero puede ser la única manera de hacer que Synchronet se ejecute en algunas plataformas. Se ha informado que los siguientes pasos funcionan en Debian Squeeze (6.0) armel (ARMv5te, EABI) en un kit de desarrollo Marvell Sheevaplug.
$ apt-get install libmozjs185-dev
JSINCLUDE=/usr/include/js JSLIB=mozjs185
a su línea de comando.En OpenBSD 5.5-current on 64-bit UltraSPARC:
$ pkg_add -r spidermonkey-1.9
$ ln -s /usr/local/lib/libspidermonkey.so.0.0 /usr/local/lib/libspidermonkey.so
JSINCLUDE=/usr/local/include/js
a su línea de comando.
* El siguiente error indica que no pudo instalar libncurses-dev
(o libncursesw5-dev
) prerequisite:
error fatal: curses.h: No existe tal archivo o directorio
libnspr4-dev
prerequisite:configure: error: no tiene NSPR instalado o su versión es demasiado antigua
/bin/sh: 1: autoconf-2.13: no encontrado GNUmakefile:52: receta para el objetivo '../build/../../src/../3rdp/gcc.linux.x64.debug/mozjs/lib/libmozjs185-1.0.a' falló make[1]: [../build/../../src/../3rdp/gcc.linux.x64.debug/mozjs/lib/libmozjs185-1.0.a] Error 127 (ignorado)
make: *** No hay regla para hacer 'enlaces simbólicos' de destino. Detener.
make: *** No hay regla para hacer que el objetivo sea 'instalar'. Detener.
ncurses
no ha sido installed:error: nombre de tipo desconocido 'wint_t'
sbbs
. Establezca LD_LIBRARY_PATH
variable de entorno para que apunte a su directorio Synchronet exec
para resolver:sbbs: error al cargar bibliotecas compartidas: libsbbs.so: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio==== Notes ====
Dado que los dos métodos de instalación anteriores crean enlaces simbólicos a (en lugar de copiar) su biblioteca de Synchronet y archivos ejecutables de sus directorios de compilación de Synchronet a su directorio de Synchronet exec
, no debe eliminar (o “limpiar ”) sus directorios de compilación o Synchronet (por ejemplo, sbbs
) y sus utilidades no se ejecutarán hasta que los reconstruya.
Los dos métodos de instalación de compilación anteriores crean una versión de “lanzamiento” (o sin depuración) de la biblioteca Synchronet y los archivos ejecutables. Si no va a utilizar un depurador (p. ej., gdb
) para debug Synchronet (p. ej., causa raíz e informar o corregir errores en el código fuente), entonces probablemente debería ejecutar el binarios “liberados”, ya que serán más pequeños y más rápidos.
Si desea crear binarios de depuración, agregue DEBUG=1
a las líneas de comando make
en los pasos anteriores.
Los archivos de compilación de depuración y versión se generan en directorios de salida separados. Si creó enlaces simbólicos a sus ejecutables (es decir, especificó SYMLINK=1
en la primera invocación) y cambió entre compilaciones de lanzamiento y depuración, deberá eliminar o reemplazar los enlaces simbólicos en su Synchronet exec
directorio; esto se puede lograr utilizando el objetivo de compilación enlaces simbólicos
del archivo src/sbbs3/GNUmakefile
.
Ejecute make gtkutils
en el directorio src/sbbs3
para compilar las utilidades de GTK (por ejemplo, gtkmonitor). Agregue el objetivo instalar
o enlaces simbólicos
a la línea de comandos para obtener los enlaces simbólicos o copiar las utilidades de GTK en su directorio exec
de Synchronet.
A partir del 8 de octubre de 2011, incluimos el código fuente completo de la biblioteca SpiderMonkey (JavaScript-C) 1.8.5 en el Repositorio de origen de Synchronet (bajo [ [https://gitlab.synchro.net/main/sbbs/-/tree/master/3rdp/dist|3rdp/dist]]
) y src/sbbs3/GNUmakefile
lo creará automáticamente. Ahora no necesita especificar un valor JSLIB=
en sus líneas de comando make
.
La compilación del paquete de terceros que proporciona el soporte JavaScript de Mozilla parece necesitar que se le pase una marca adicional, al menos para OpenBSD 4.9-5.x ejecutándose en i386. Al hacer el make
inicial, pruébelo con EXTRA_JS_CONFIGURE_ARGS=–disable-tracejit
para avanzar un poco más en el proceso.
El sistema de construcción basado en make es una bestia compleja y mágica. Cambiar su comportamiento a través de variables de entorno como No se admiten CFLAGS o girar las distintas perillas no documentadas. Si juegas con las perillas y algo se rompe, se espera que usted se apoye con respecto a estos cambios... es decir: la respuesta que probablemente obtener de los desarrolladores es “no hagas eso entonces”. La documentación parcial se puede encontrar aquí: options
Algunos terceros ponen a disposición tarballs no admitidos desde sus propios sitios. No se recomienda ni se admite su uso. Siempre que sea posible, debe construir usted mismo.
OS | Platform | Provided By | Date | Archive |
---|---|---|---|---|
Debian (testing) | amd64 | digital_man | Every morning (PT) | sbbs_dev.tgz sbbs_run.tgz |
Ver nix para obtener más detalles sobre la configuración del archivo de inicialización de Synchronet (ctrl/sbbs.ini
) for Unix/Linux.
Elija un modo (Consola o Daemon):
Puede ejecutar manualmente la consola sysop de Synchronet (algo interactiva, pero generalmente no preferida):
La mayor parte de lo que se muestra en la consola no se registra en el disco en este modo.
Tiene algunas opciones de monitoreo y control desde el símbolo del sistema de la consola. Presiona ?
para un menú de comandos disponibles (por ejemplo, Q
para salir, detener Synchronet).
Puede instalar Synchronet para que se ejecute como un demonio (servicio en segundo plano, generalmente se prefiere).
Debe ser 'root' o tener permisos 'sudo' para instalar demonios en Unix/Linux.
Los sistemas Linux modernos basados en Debian (incluido Ubuntu) usan systemd para controlar (por ejemplo, iniciar/detener) y monitorear los servicios del sistema (daemons). Consulte systemd para obtener instrucciones detalladas sobre cómo configurar Synchronet como un demonio que se inicia automáticamente y se controla a través de systemd.
Si usa un Linux basado en Debian más antiguo que todavía usa un sistema de control de servicio/daemon SysV/init.d, debe usar cualquiera de los siguientes métodos para agregar el servicio del sistema Synchronet a su configuración de inicio para el sbbs
daemon para iniciar automáticamente durante el inicio del sistema:
# insserv -v sbbs
o:
# update-rc.d sbbs enable 2 3 4 5
Si usa un Linux basado en Red Hat (por ejemplo, Fedora), es posible que deba agregar el servicio del sistema Synchronet a su configuración de inicio para que el demonio sbbs
se inicie automáticamente durante el inicio del sistema:
# chkconfig --add sbbs
# cd /etc/init.d
# chmod +x sbbs
# /etc/init.d/sbbs start
Ver syslog, umonitor, gtkmonitor y node para obtener detalles sobre las opciones para monitorear el demonio Synchronet mientras se ejecuta en segundo plano:
# /etc/init.d/sbbs status Synchronet BBS services status: [running] PID(s): 25171
1) Obtenga el script de ejecución del servicio Synchronet (archivo init) de áqui.
2) Copie el script de ejecución (sbbs) en su /usr/local/etc/rc.d
directorio
3) Configurar los ajustes de sbbs:
En una de /etc/rc.conf
, /etc/rc.conf.local
, o /etc/rc.conf.d/sbbs
, agregue la línea:
sbbs_enable=YES # Es necesario para ejecutar Synchronet
4) En uno de los archivos del paso tres, agregue las líneas apropiadas de las siguientes (Los valores predeterminados se muestran aquí):
sbbs_flags="" # Indicadores de línea de comandos adicionales sbbs_pidfile="/var/run/sbbs.pid" # Ruta de pid desde tu .ini sbbs_dir="/sbbs/" # Ruta sbbs raíz (Root sbbs path) # El resto de los sbbs_*dir derivan # de esto ser predeterminado sbbs_ctrldir="${sbbs_dir}/ctrl/" sbbs_execdir="${sbbs_dir}/exec/" sbbs_program="${sbbs_execdir}/sbbs" # Synchronet binary sbbs_procname="${sbbs_program}" # Nombre del proceso visto por ps(1) sbbs_shell="/bin/sh" # SHELL variable sbbs_user="root" # Usuario para (START)INICIAR sbbs como. Si esto es # no root, no puede vincular puertos bajos sbbs_group="wheel" # Grupo para iniciar sbbs como
5) Inicie el servicio del sistema Synchronet (FreeBSD 5.x+):
# /usr/local/etc/rc.d/sbbs start
Para la mayoría de los sistemas, el BBS debe tener acceso de escritura a la tarjeta de sonido a través de /dev/dsp, o ejecútelo como root para buscar el SysOp. FreeBSD apoya una alternativa método que requiere uno de los siguientes:
Uno de:
device speaker
kldload speaker
speaker_load=“YES”
en /boot/loader.conf
archivo
/dev/speaker
should be debe ser (read/writeable) leído/grabado por el usuario con el que se ejecuta el BBS.
Actualización/sincronización de los archivos fuente:
1. Si ya tienes el Synchronet Git repositorio clonado en su sistema local, busque y fusione cualquier cambio anterior:
$ git -C /sbbs/repo pull
O Si no ya tiene el repositorio de Git clonado, clone a tu sbbs/repo
directorio:
$ git clone https://gitlab.synchro.net/main/sbbs.git /sbbs/repo
O descargue el código fuente más reciente y los archivos de biblioteca de terceros y extráigalos en su sbbs/repo
árbol de directorios:
$ mkdir /sbbs/repo; cd /sbbs/repo $ wget ftp://vert.synchro.net/Synchronet/sbbs_src.tgz $ tar -xzf sbbs_src.tgz
2. Recontrulle Synchronet (replace symlinks
with install
si prefiere copiar archivos ejecutables y biblioteca a su exec
directorio):
$ cd /sbbs/repo/src/sbbs3; make RELEASE=1 symlinks
O si estás usando setcap
para iniciar sbbs como un Linux non-root usuario:
$ cd /sbbs/repo/src/sbbs3; make RELEASE=1 setcap symlinks
Si obtiene el error no hay regla para hacer objetivo 'symlinks
' or 'install
', esto es una indicación de que no tienes el SBBSCTRL
o SBBSEXEC
conjunto de variables
3. Realice los pasos enumerados aquí para actualizar los archivos de tiempo de ejecución (e.g. text.dat
).
4. Apague y vuelva a ejecutar sbbs(cuando se daemonized):
$ systemctl restart sbbs
o:
$ service sbbs restart
o:
$ /etc/init.d/sbbs restart
Ocasionalmente, es posible que deba realizar una limpiezareconstrucción. Por lo general, se puede lograr una compilación limpia yendo al directorio src/
y ejecutando:
./cleanall.sh RELEASE=1
Note:
Si elige compilar depuración binarios (en lugar de liberar binarios), entonces deberá excluir la parte RELEASE=1
de cleanall.sh' ' dominio. De lo contrario, limpiará los directorios de salida
*.release cuando realmente necesite limpiar los directorios de salida
*.debug. Del mismo modo, si está compilando y ejecutando binarios release, entonces necesita incluir la parte
RELEASE=1 en los comandos
cleanall.sh también. Alternativamente, puede configurar su tipo de compilación predeterminado en el archivo
localdefs.mk. El archivo
localdefs.mk debe ser creado por usted en el directorio
src/build (para aplicarlo a todas las compilaciones), o dentro de cada directorio que ejecute
make'':
RELEASE=1
Ahora que ha completado la instalación, continúe con las instrucciones de initial setup .