Primeros pasos para el programador de software:
Golang para sistemas Linux ARM
Este tutorial sirve para la iniciación en la programación de soluciones individuales de comunicación y automatización sobre la base de sistemas Linux ARM en Go.
El lenguaje desarrollado por Google es fácil y rápido de aprender, en contraposición con los lenguajes de script, pero también muy potente y eficaz. Trae consigo un Cross-Compiler para los sistemas Linux ARM, facilitando así el flujo de trabajo en la programación de pure.box, el polifacético servidor de comunicación y automatización de Wiesemann & Theis.
Tras la instalación y configuración de un entorno de trabajo, en este tutorial se muestra el manejo básico con Gotool a través de la barra de comandos en base a un sencillo programa Hello-World para la pure.box.
Paso 1: instalar Go
Go es un software libre y puede ser descargado desde la página del proyecto. Otra opción es instalar Go desde las fuentes de paquetes. Tras la instalación hay que aplicar o ajustar algunas variables del entorno:
-
PATH
Es necesario ampliar la variable PATH con el directorio bin en el directorio de GO, para poder ejecutar Go en todo el sistema.
-
GOROOT
La variable GOROOT del entorno contiene la ruta para el directorio de instalación de Go. Esta variable solo se aplica cuando se haya instalado Go en un directorio diferente al estándar /usr/local/go.
-
GOPATH
La variable GOPATH contiene la ruta para el directorio de trabajo del usuario. Este directorio contendrá luego los subdirectorios src para fuentes, lib para bibliotecas precompatibles y bin para los archivos ejecutables.
En primer lugar, establezca la variable GOPATH en su directorio de trabajo personal. Para ello tiene que editar el archivo .bashrc en su directorio Home y agregar allí por ejemplo la línea siguiente.
export GPOATH=~/go
Si no ha instalado Go desde las fuentes del paquete, tendrá que establecer ahora la variable GOROOT y ampliar la variable PATH. Estos cambios deben ser realizados como es lógico para todo el sistema. Por tanto, edite el archivo etc/profile con derechos root y añada aquí las dos líneas siguientes:
#Pfad zum Installationsverzeichnis von Go
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
Instalar Git
Para instalar ampliaciones de idiomas y paquetes de terceros sin demasiado esfuerzo, Go emplea Git, el software desarrollado por Linus Torvalds para la gestión repartida de versiones. Este puede ser descargado de www.git-scm.com o instalado a través de la administración de paquetes.
Verificar la instalaciónLa herramienta de Go es la navaja suiza para la programación en Go. Para verificar si la instalación ha sido correcta puede se puede visualizar con ella el entorno de Go.
Introduzca en el terminal el comando siguiente:
go env
Se obtiene ahora una relación de todas las variables del entorno relevantes para Go:
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/martin/go"
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build863343041=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
Si aparece un mensaje de error, seguramente el directorio bin no se encuentra en la ruta de búsqueda de GOROOT. Analice la variable del entorno PATH con el comando echo %PATH%. Compruebe ahora si GOPATH se corresponde con su directorio de trabajo.
Paso 2: Hello World
El desarrollo de programas en Go se realiza dentro del GOPATH en el directorio src
. Cree aquí el directorio hello
y dentro de ese el archivo hello.go
.
package main
import "fmt"
func main() {
fmt.Println("Hello, world!")
}
Línea 1:
Si desea crear un archivo ejecutable en Go, usted trabaja en el paquete main.Línea 3:
El paquete fmt pone a disposición funciones para la entrada y salida.Línea 5:
La función main() es el punto de iniciación en el programa.Línea 6:
fmt.Println() ofrece un string, seguido de un carácter Newline.
Para compilar el programa, introduzca ahora el comando siguiente:
go install github.com/wut/tutorial/hello
Si no se emite ningún mensaje de error, el proceso de traducción se ha ejecutado correctamente. El archivo ejecutable hello.exe se encuentra ahora en el directorio bin de su Go-Path.
./hello
Hello World!
Paso 3: Hello pure.box - Cross-Compilation para ARM-Linux
Go facilita especialmente la compilación de aplicaciones para otras plataformas destino. Para traducir el ejemplo Hello World para pure.box solo tiene que aplicar temporalmente un par de variables del entorno:
GOARCH
Con la variable GOARCH se establece la arquitectura destino. Para pure.box es arm.GOOS
Es el sistema operativo de la plataforma destino. Para pure.box hay que fijar esta variable en linux.GOARM
Con GOARM se comunica al compilador el modo de proceder con las operaciones de coma flotante (Floatingpoint). El valor para pure.box es 5.
Introduzca lo siguiente en el indicador de comandos:
export GOOS=linux
export GOARCH=arm
export GOARM=5
Para iniciar la traducción para todas las plataformas, cambie al directorio del código fuente y ejecute allí go build:
go build
ls -al
total 1476
drwxr-xr-x 2 gopher users 4096 Dec 25 11:31 .
drwxr-xr-x 3 gopher users 4096 Dec 25 12:08 ..
-rwxr-xr-x 1 gopher users 1496747 Dec 25 11:31 hello
-rw-r--r-- 1 gopher users 88 Dec 25 12:09 hello.go
Como puede ver, en su directorio de trabajo existe ahora el archivo ejecutable hello. ¡La compilación cruzada con Go es realmente así de fácil!
Paso 4: Ejecutar en pure.box
Para transferir Binary a la Box existen varias opciones: Además del acceso por FTP, también se puede integrar la Box directamente en su red de Windows a través de SMB.
El modo más sencillo de probar una aplicación es ejecutarla manualmente en una sesión del terminal, para ello debería estar activado SSH en la Box. Por lo tanto, la transferencia de archivos por SCP es evidente.
Si aún no tiene instalado ningún cliente SSH, instale el paquete open-ssh. Para SCP necesita los parámetros siguientes: El nombre de usuario es "admin", la contraseña es que haya configurado como tal en la administración. Introduzca como nombre del host los nombres o la dirección IP de su pure.box.
Copiar archivo:
scp hello admin@hostname:/data/userfiles
Ejecutar programa:
Conéctese con la pure.box mediante Putty o con el comando ssh.
ssh admin@hostname
Ejecute a continuación el archivo hello en el directorio /data/userfiles.
./hello
Hello pure.box
¿Alguna pregunta? ¡Llámenos!
¿Tiene alguna pregunta sobre estas instrucciones? Nuestro servicio técnico le atenderá con mucho gusto.