====== Instalar Synchronet en una Raspberry Pi ======

Aquí hay instrucciones paso a paso sobre cómo construir e instalar Synchronet en un  [[http://www.raspberrypi.org|Raspberry Pi]] corriendo cualquiera [[http://www.raspbian.org/|Raspbian]] o [[https://www.raspberrypi.com/software/|Raspberry Pi OS 32-bit]].

**Nota:** Si bien Raspbian y la versión de 32 bits del sistema operativo Raspberry Pi son prácticamente idénticas, la versión de 64 bits del sistema operativo Raspberry Pi es una desviación significativa de Raspbian. Estas instrucciones no se han probado en la versión de 64 bits.

{{:howto:rpi.png?100|}}
===== Requerimientos previos =====

Estas instrucciones fueron creadas usando un Raspberry Pi 3 Model B corriendo //Raspbian Stretch//, kernel versión 4.4:

  $ uname -a
  Linux raspberrypi 4.4.21-v7+ #911 SMP Thu Sep 15 14:22:38 BST 2016 armv7l GNU/Linux
  
Estas instrucciones se confirmaron recientemente con una Raspberry Pi 3 Modelo B en ejecución //Raspbian Stretch Light//, kernel versión 4.14:

  $ uname -a
  Linux raspberrypi 4.14.71-v7+ #1145 SMP Viernes 21 Sep 15:38:35 BST 2018 armv7l GNU/Linux
  
===== Instrucciones =====

Vaya a una Terminal/símbolo del sistema (por ejemplo, inicie sesión a través de SSH o ejecute la aplicación Terminal desde el escritorio de PIXEL o "Linea de Commandos").

Inicie sesión como su cuenta de usuario preferida para ejecutar el software BBS (por ejemplo, el usuario predeterminado ''pi'', o cree el usuario ''sbbs'' usando la utilidad ''adduser'' de Linux y luego ejecute ''su sbbs'' para iniciar sesión como usuario ''sbbs'').

Estas instrucciones instalan Synchronet (código fuente, ejecutables, configuración y archivos de datos) en un subdirectorio llamado ''sbbs'' fuera del directorio de inicio del usuario actual (por ejemplo, ''~/sbbs''). Entonces, si el usuario actual es "pi", eso se expandiría a ''/home/pi/sbbs''. Si desea instalar en un directorio diferente (por ejemplo, ''/sbbs'' en lugar de ''~/sbbs''), cambie los siguientes comandos como mejor le parezca, pero no se recomienda.

Escriba cada uno de estos comandos (consulte [[install:nix:prerequisites]] para obtener una lista completa de dependencias):

^ # ^ Commandos                                  ^ Descripción ^
| 1 |''sudo apt-get update''                   | Vuelva a sincronizar su índice de paquetes de Debian |
| 2 | ''sudo apt-get install git''             | Instala las herramientas [[dev:Git]] |
| 3 | ''​sudo apt-get install zip'' ​            | Instale las herramientas Info-zip (comprimir/descomprimir) | 
| 4 | ''sudo apt-get install libnspr4-dev''    | Instale la biblioteca Netscape Portable Runtime (utilizada por las cosas de Mozilla) |
| 5 | ''sudo apt-get install libncursesw5-dev'' | Instale el paquete de desarrollo curses (variante de caracteres anchos) |
| 6 | ''sudo apt-get install libarchive-dev''  | Instale el paquete de desarrollo libarchive |
| 7 | ''mkdir ~/deb_packages''                 | Cree un directorio para almacenar algunos paquetes para la instalación manual |
| 8 | ''cd ~/deb_packages''                    | Cambie el directorio de trabajo actual al directorio recién creado |
| 9 | ''wget http://ftp.br.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-6_armhf.deb'' | Descargar  libffi6 |
|10 | ''wget http://ftp.ro.debian.org/debian/pool/main/m/mozjs/libmozjs185-1.0_1.8.5-1.0.0+dfsg-6_armhf.deb'' | Descargar  libmozjs185-1.0 |
|11 | ''wget http://ftp.br.debian.org/debian/pool/main/m/mozjs/libmozjs185-dev_1.8.5-1.0.0+dfsg-6_armhf.deb'' | Descargar  libmozjs185-dev |
|12 | ''sudo dpkg -i libffi6_3.2.1-6_armhf.deb'' | Instale libffi6 |
|13 | ''sudo dpkg -i libmozjs185-1.0_1.8.5-1.0.0+dfsg-6_armhf.deb'' | Instale libmozjs185-1.0 |
|14 | ''sudo dpkg -i libmozjs185-dev_1.8.5-1.0.0+dfsg-6_armhf.deb'' | Instale libmozjs185-dev |
|15 | ''sudo apt %%--%%fix-broken install''        | Reparar eventuales dependencias faltantes |
|16 | ''mkdir ~/sbbs''                         | Cree el directorio donde se construirá y ejecutará Synchronet |
|17 | ''cd ~/sbbs''                            | Cambie el directorio de trabajo actual al directorio recién creado |
|18 | ''wget [[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/install/GNUmakefile]]'' | [[install:nix:Fetch makefile]] |
|19 | ''make install SYMLINK=1 JSINCLUDE=/usr/include/js JSLIB=mozjs185'' | Construirlo (probablemente llevará bastante tiempo) |
|20 | ''export SBBSCTRL=~/sbbs/ctrl''          | Consulte [[config:env]] los detalles sobre cómo configurar esta variable de entorno de forma persistente |
|21 | ''~/sbbs/exec/[[util:scfg]]''            | Configura tu BBS, consulta ''[[config:sbbs.ini]]'' para obtener más configuraciones del servidor Synchronet |

Ahora está listo para ejecutar ''sbbs'' con la consola interactiva del sistema:

  $ ~/sbbs/exec/sbbs
  
o ver [[systemd|this how-to]] para obtener instrucciones sobre cómo ejecutar ''sbbs'' como un demonio usando systemd.

**Nota**:\\
Esto creará binarios ARM de 32 bits (ejecutables):
  $ file -L sbbs
  sbbs: ejecutable ELF LSB de 32 bits, ARM, EABI5 versión 1 (SYSV), vinculado dinámicamente, intérprete /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0
  
A pesar de esto [[https://www.tal.org/tutorials/raspberry-pi3-build-64-bit-kernel ]] es posible para crear binarios ARM de 64 bits para Raspberry Pi 3/3+ a través de la compilación cruzada, esto no es compatible con la base Raspberry Pi y, por lo tanto, no se trata aquí.

===== Ver también =====
  * [[:howto:|How-To index]]
  * [[:install:nix|UNIX Installation]]
  * [[:config:nix|Configuring Synchronet for Unix/Linux]]
  * [[:monitor:syslog|Synchronet Daemon (UNIX)]]
  * [[:howto:systemd|Start Synchronet BBS (daemonized) from Systemd]]

{{tag>linux raspberry-pi}}
