Raspberry Pi 2 - GoLang

встраиваемые модели

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 04 май 2022, 11:06

Olej писал(а):
04 май 2022, 11:02
Теперь туда добавить 1.19

Код: Выделить всё

olej@localhost:~ $ sudo update-alternatives --install /usr/bin/go go /home/olej/goroot/bin/go 80
[sudo] пароль для olej: 
update-alternatives: используется /home/olej/goroot/bin/go для предоставления /usr/bin/go (go) в автоматическом режиме

Код: Выделить всё

olej@localhost:~ $ update-alternatives --display go
go - автоматический режим
  link best version is /home/olej/goroot/bin/go
  ссылка сейчас указывает на /home/olej/goroot/bin/go
  link go is /usr/bin/go
/home/olej/goroot/bin/go — приоритет 80
/lib/go-1.15/bin/go — приоритет 70

Код: Выделить всё

olej@localhost:~ $ go version
go version devel go1.19-8375b54d44 Mon May 2 20:18:15 2022 +0000 linux/arm

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 04 май 2022, 11:12

Olej писал(а):
04 май 2022, 11:06
Теперь туда добавить 1.19
Лёгкая проверка (в совершенно другом каталоге):

Код: Выделить всё

olej@localhost:~/go $ time go build hello.go 

real	0m20,214s
user	0m3,887s
sys	0m1,521s
Не "летает" конечно ... но всё работает.

Код: Выделить всё

olej@localhost:~/go $ ls -l hello 
-rwxr-xr-x 1 olej olej 1851942 мая  4 11:07 hello

olej@localhost:~/go $ file hello 
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, Go BuildID=VahxZLQMcgMRBKypthwu/ufAZE6tRloDkS0nvWp0d/xm1uc0dYCPFFVtKLVyv1/K7CLl1pxSNnvwuc-RpVC, with debug_info, not stripped

Код: Выделить всё

olej@localhost:~/go $ strip hello 

olej@localhost:~/go $ ls -l hello 
-
rwxr-xr-x 1 olej olej 1258828 мая  4 11:08 hello

olej@localhost:~/go $ file hello 
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, Go BuildID=VahxZLQMcgMRBKypthwu/ufAZE6tRloDkS0nvWp0d/xm1uc0dYCPFFVtKLVyv1/K7CLl1pxSNnvwuc-RpVC, stripped
Выполнение:

Код: Выделить всё

olej@localhost:~/go $ ./hello
ты кто будешь?
> raspberry
какое длинное имя ... целых 10 байт
привет, raspberry

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 30 май 2022, 00:35

Новый имидж, с достаточным местом (32Gb) для установки Golang & Rust.
См. здесь: Raspberry Pi 2 ... снова

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 30 май 2022, 00:41

Olej писал(а):
30 май 2022, 00:35
Новый имидж, с достаточным местом (32Gb) для установки Golang & Rust.
Первейшим делом (прежде чем собирать из исходников самую свежую версию Golang) нужно устанавливать самую свежую версию Go из стандартного репозитория своего дистрибутива.
P.S. Исходники Golang, при необходимости, компилируются с исходников Go текущей установленной версией - метод раскрутки.

Смотри что мы имеем:

Код: Выделить всё

olej@raspberrypi:~ $ aptitude search golang-1.
p   golang-1.10                                              - Go programming language compiler - metapackage                     
p   golang-1.10-doc                                          - Go programming language - documentation                            
p   golang-1.10-go                                           - Go programming language compiler, linker, compiled stdlib          
p   golang-1.10-src                                          - Go programming language - source files                             
p   golang-1.12                                              - Go programming language compiler - metapackage                     
p   golang-1.12-doc                                          - Go programming language - documentation                            
p   golang-1.12-go                                           - Go programming language compiler, linker, compiled stdlib          
p   golang-1.12-src                                          - Go programming language - source files                             
p   golang-1.13                                              - Go programming language compiler - metapackage                     
p   golang-1.13-doc                                          - Go programming language - documentation                            
p   golang-1.13-go                                           - Go programming language compiler, linker, compiled stdlib          
p   golang-1.13-src                                          - Go programming language - source files                             
p   golang-1.14                                              - Go programming language compiler - metapackage                     
p   golang-1.14-doc                                          - Go programming language - documentation                            
p   golang-1.14-go                                           - Go programming language compiler, linker, compiled stdlib          
p   golang-1.14-src                                          - Go programming language - source files                             
p   golang-1.15                                              - Go programming language compiler - metapackage                     
p   golang-1.15-doc                                          - Go programming language - documentation                            
p   golang-1.15-go                                           - Go programming language compiler, linker, compiled stdlib          
p   golang-1.15-src                                          - Go programming language - source files                             
p   golang-1.6                                               - Go programming language compiler - metapackage                     
p   golang-1.6-doc                                           - Go programming language - documentation                            
p   golang-1.6-go                                            - Go programming language compiler, linker, compiled stdlib          
p   golang-1.6-src                                           - Go programming language - source files                             
p   golang-1.7                                               - Go programming language compiler - metapackage                     
p   golang-1.7-doc                                           - Go programming language - documentation                            
p   golang-1.7-go                                            - Go programming language compiler, linker, compiled stdlib          
p   golang-1.7-src                                           - Go programming language - source files                             
p   golang-1.8                                               - Go programming language compiler - metapackage                     
p   golang-1.8-doc                                           - Go programming language - documentation                            
p   golang-1.8-go                                            - Go programming language compiler, linker, compiled stdlib          
p   golang-1.8-src                                           - Go programming language - source files                             
p   golang-1.9                                               - Go programming language compiler - metapackage                     
p   golang-1.9-doc                                           - Go programming language - documentation                            
p   golang-1.9-go                                            - Go programming language compiler, linker, compiled stdlib          
p   golang-1.9-src                                           - Go programming language - source files                             

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 30 май 2022, 00:50

Olej писал(а):
30 май 2022, 00:41
Смотри что мы имеем:
Раз такое дело... - установлю 1.9 (последняя стабильная версия Golang на сегодня - 1.19):

Код: Выделить всё

olej@raspberrypi:~ $ sudo apt install golang-1.9 
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Будут установлены следующие дополнительные пакеты:
  golang-1.9-doc golang-1.9-go golang-1.9-src
Предлагаемые пакеты:
  bzr mercurial subversion
Следующие НОВЫЕ пакеты будут установлены:
  golang-1.9 golang-1.9-doc golang-1.9-go golang-1.9-src
Обновлено 0 пакетов, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 33,8 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 169 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf golang-1.9-src armhf 1.9.4-1+rpi1 [9.165 kB]
Пол:2 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf golang-1.9-go armhf 1.9.4-1+rpi1 [22,2 MB]
Пол:3 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf golang-1.9-doc all 1.9.4-1+rpi1 [2.453 kB]                    
Пол:4 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf golang-1.9 all 1.9.4-1+rpi1 [28,3 kB]                         
Получено 33,8 MB за 7с (4.653 kB/s)                                                                                              
Выбор ранее не выбранного пакета golang-1.9-src.
(Чтение базы данных … на данный момент установлено 180829 файлов и каталогов.)
Подготовка к распаковке …/golang-1.9-src_1.9.4-1+rpi1_armhf.deb …
Распаковывается golang-1.9-src (1.9.4-1+rpi1) …
Выбор ранее не выбранного пакета golang-1.9-go.
Подготовка к распаковке …/golang-1.9-go_1.9.4-1+rpi1_armhf.deb …
Распаковывается golang-1.9-go (1.9.4-1+rpi1) …
Выбор ранее не выбранного пакета golang-1.9-doc.
Подготовка к распаковке …/golang-1.9-doc_1.9.4-1+rpi1_all.deb …
Распаковывается golang-1.9-doc (1.9.4-1+rpi1) …
Выбор ранее не выбранного пакета golang-1.9.
Подготовка к распаковке …/golang-1.9_1.9.4-1+rpi1_all.deb …
Распаковывается golang-1.9 (1.9.4-1+rpi1) …
Настраивается пакет golang-1.9-src (1.9.4-1+rpi1) …
Настраивается пакет golang-1.9-go (1.9.4-1+rpi1) …
Настраивается пакет golang-1.9-doc (1.9.4-1+rpi1) …
Настраивается пакет golang-1.9 (1.9.4-1+rpi1) …

Код: Выделить всё

olej@raspberrypi:~ $ go version
-bash: go: команда не найдена

Код: Выделить всё

olej@raspberrypi:~ $ which go
olej@raspberrypi:~ $ 
Вот так!
Но это история мне известная, хоть и не до конца понятная: установленная версия go находится на $PATH...
Установленную версию нужно ввести в альтернативы!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 30 май 2022, 00:55

Olej писал(а):
30 май 2022, 00:50
установленная версия go находится на $PATH...
Установленную версию нужно ввести в альтернативы!

Код: Выделить всё

olej@raspberrypi:~ $ ls -l /lib/go-1.9/bin/go
-rwxr-xr-x 1 root root 5922492 фев 16  2018 /lib/go-1.9/bin/go

Код: Выделить всё

olej@raspberrypi:~ $ /lib/go-1.9/bin/go version
go version go1.9.4 linux/arm
Добавляю альтернативу:

Код: Выделить всё

olej@raspberrypi:~ $ sudo update-alternatives --install /usr/bin/go go  /lib/go-1.9/bin/go 50
update-alternatives: используется /lib/go-1.9/bin/go для предоставления /usr/bin/go (go) в автоматическом режиме

Код: Выделить всё

olej@raspberrypi:~ $ which go
/usr/bin/go

Код: Выделить всё

olej@raspberrypi:~ $ update-alternatives --display go
go - автоматический режим
  link best version is /lib/go-1.9/bin/go
  ссылка сейчас указывает на /lib/go-1.9/bin/go
  link go is /usr/bin/go
/lib/go-1.9/bin/go — приоритет 50

Код: Выделить всё

olej@raspberrypi:~ $ go version
go version go1.9.4 linux/arm

Код: Выделить всё

olej@raspberrypi:~ $ go env
GOARCH="arm"
GOBIN=""
GOEXE=""
GOHOSTARCH="arm"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/olej/go"
GORACE=""
GOROOT="/usr/lib/go-1.9"
GOTOOLDIR="/usr/lib/go-1.9/pkg/tool/linux_arm"
GCCGO="gccgo"
GOARM="6"
CC="gcc"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build911697626=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
Версия 1.9 состоялась.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 30 май 2022, 01:12

Olej писал(а):
30 май 2022, 00:41
Версия 1.9 состоялась.
Теперь последняя версия из наличествующих в репозитории пакетов:

Код: Выделить всё

olej@raspberrypi:~ $ sudo apt install golang-1.15
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Будут установлены следующие дополнительные пакеты:
  golang-1.15-doc golang-1.15-go golang-1.15-src
Предлагаемые пакеты:
  bzr | brz mercurial subversion
Следующие НОВЫЕ пакеты будут установлены:
  golang-1.15 golang-1.15-doc golang-1.15-go golang-1.15-src
Обновлено 0 пакетов, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 59,5 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 336 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf golang-1.15-src armhf 1.15.15-1~deb11u4+rpi1 [13,9 MB]
Пол:2 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf golang-1.15-go armhf 1.15.15-1~deb11u4+rpi1 [43,2 MB]
Пол:3 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf golang-1.15-doc all 1.15.15-1~deb11u4+rpi1 [2.455 kB]         
Пол:4 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf golang-1.15 all 1.15.15-1~deb11u4+rpi1 [28,1 kB]              
Получено 59,5 MB за 12с (5.047 kB/s)                                                                                             
Выбор ранее не выбранного пакета golang-1.15-src.
(Чтение базы данных … на данный момент установлено 188277 файлов и каталогов.)
Подготовка к распаковке …/golang-1.15-src_1.15.15-1~deb11u4+rpi1_armhf.deb …
Распаковывается golang-1.15-src (1.15.15-1~deb11u4+rpi1) …
Выбор ранее не выбранного пакета golang-1.15-go.
Подготовка к распаковке …/golang-1.15-go_1.15.15-1~deb11u4+rpi1_armhf.deb …
Распаковывается golang-1.15-go (1.15.15-1~deb11u4+rpi1) …
Выбор ранее не выбранного пакета golang-1.15-doc.
Подготовка к распаковке …/golang-1.15-doc_1.15.15-1~deb11u4+rpi1_all.deb …
Распаковывается golang-1.15-doc (1.15.15-1~deb11u4+rpi1) …
Выбор ранее не выбранного пакета golang-1.15.
Подготовка к распаковке …/golang-1.15_1.15.15-1~deb11u4+rpi1_all.deb …
Распаковывается golang-1.15 (1.15.15-1~deb11u4+rpi1) …
Настраивается пакет golang-1.15-src (1.15.15-1~deb11u4+rpi1) …
Настраивается пакет golang-1.15-go (1.15.15-1~deb11u4+rpi1) …
Настраивается пакет golang-1.15-doc (1.15.15-1~deb11u4+rpi1) …
Настраивается пакет golang-1.15 (1.15.15-1~deb11u4+rpi1) …

Код: Выделить всё

olej@raspberrypi:~ $ sudo update-alternatives --install /usr/bin/go go  /lib/go-1.15/bin/go 60
update-alternatives: используется /lib/go-1.15/bin/go для предоставления /usr/bin/go (go) в автоматическом режиме

Код: Выделить всё

olej@raspberrypi:~ $ update-alternatives --display go
go - автоматический режим
  link best version is /lib/go-1.15/bin/go
  ссылка сейчас указывает на /lib/go-1.15/bin/go
  link go is /usr/bin/go
/lib/go-1.15/bin/go — приоритет 60
/lib/go-1.9/bin/go — приоритет 50

Код: Выделить всё

olej@raspberrypi:~ $ go version
go version go1.15.15 linux/arm
Теперь у меня 2 (переключающиеся) версии 1.9 и 1.15

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 30 май 2022, 01:22

Olej писал(а):
30 май 2022, 01:12
Теперь у меня 2 (переключающиеся) версии 1.9 и 1.15
И наконец, сборка из исходников последней девелоперской версии:

Код: Выделить всё

olej@raspberrypi:~ $ cd $HOME

Код: Выделить всё

olej@raspberrypi:~ $ git clone https://go.googlesource.com/go goroot
Клонирование в «goroot»…
remote: Total 530151 (delta 429551), reused 530151 (delta 429551)
Получение объектов: 100% (530151/530151), 280.14 MiB | 2.88 MiB/s, готово.
Определение изменений: 100% (429551/429551), готово.
Updating files: 100% (11681/11681), готово.

Код: Выделить всё

olej@raspberrypi:~ $ du -hs goroot/
442M	goroot/

olej@raspberrypi:~ $ cd goroot/

olej@raspberrypi:~/goroot $ cd src

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 30 май 2022, 14:09

Olej писал(а):
30 май 2022, 01:22
сборка

Код: Выделить всё

olej@raspberrypi:~/goroot/src $ time ./all.bash
Building Go cmd/dist using /usr/lib/go-1.15. (go1.15.15 linux/arm)
Building Go toolchain1 using /usr/lib/go-1.15.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
...

И ничем хорошим это за больше чем 8 часов непрерывной работы не кончается! :lol:
Это при том, что 20 дней назад эта же сборка, на более компактном имдже той же системы, завершилась ... хоть и за >3 часов работы:
Olej писал(а):
03 май 2022, 15:42

Код: Выделить всё

...
Installed Go for linux/arm in /home/olej/goroot
Installed commands in /home/olej/goroot/bin
*** You need to add /home/olej/goroot/bin to your PATH.

real	205m22,817s
user	427m38,300s
sys	51m56,254s

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi 2 - GoLang

Непрочитанное сообщение Olej » 30 май 2022, 17:46

Olej писал(а):
30 май 2022, 14:09
И ничем хорошим это за больше чем 8 часов непрерывной работы не кончается!
Что интересно - это в другом терминале наблюдать и контролировать загрузку и ресурсы такой сборки:

Код: Выделить всё

olej@raspberrypi:~ $ uptime
 01:36:05 up 12:22,  8 users,  load average: 16,00, 9,28, 5,06

Код: Выделить всё

olej@raspberrypi:~ $ uptime
 01:43:40 up 12:29,  8 users,  load average: 21,48, 19,99, 12,22

Код: Выделить всё

olej@raspberrypi:~ $ uptime
 02:07:47 up 12:53,  8 users,  load average: 11,90, 12,17, 13,00

Код: Выделить всё

olej@raspberrypi:~ $ uptime
 09:45:33 up 20:32,  8 users,  load average: 54,72, 52,57, 52,20
Это чудовищная перегрузка для 4-х ядер/процессоров!

Код: Выделить всё

olej@raspberrypi:~ $ free
               total        used        free      shared  buff/cache   available
Mem:          945300      559560       26008       23896      359732      299812
Swap:         102396      102396           0

Код: Выделить всё

olej@raspberrypi:~ $ free
               total        used        free      shared  buff/cache   available
Mem:          945300      854668       21868       23900       68764       19636
Swap:         102396      102396           0
А свободной памяти временами остаётся 20-25Mb при 100% использовании swap!

Ответить

Вернуться в «Одноплатные компьютеры»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость