
Dmitry
11.05.2016
14:54:21

[Anonymous]
11.05.2016
14:57:58
> @dkostenko
примерно так?)
env GOOS=linux GOARCH=arm go build hello.go
не всё сбилдит, например go-ole для винды, если билдить на лине/маке
и env необязательно там указывать

Dmitry
11.05.2016
15:01:33

Google

[Anonymous]
11.05.2016
15:04:48
Ребят, почему не работает со строками?
func swap(x, y string) (y, x string) {
return
}
package main
import "fmt"
func swap(x, y string) (y, x string) {
return
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}

[Anonymous]
11.05.2016
15:07:06
prog.go:5: duplicate argument x
prog.go:5: duplicate argument y
package main
import "fmt"
func swap(x, y string) (a, b string) {
b = x
a = y
return
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}

[Anonymous]
11.05.2016
15:07:58
Все дошло, спасибо)
Затупил

Aleksandr
11.05.2016
15:08:17
https://go.libhunt.com/

Kirill
11.05.2016
15:11:19
спасибо за gox, не слышал!)
По запросу "кросскомпиляция golang" яшка часто мою статью сует вверху, где я рассказал насчёт этого. Но это просто запускатор компилятора, это не серебряная пуля

[Anonymous]
11.05.2016
15:11:39
А интересно, почему нельзя вывести те же переменные?
func swap(x, y string) (x, y string) {
y, x = x, y
return
}
обязательно на вывод надо изменять имена

Dmitry
11.05.2016
15:16:43

[Anonymous]
11.05.2016
15:18:41
кстати насколько я помню, собранная GO прога не будет работать на чистом образе Alpine Linux в Docker
раньше по крайней мере так было, натыкался когда gogs поднимал
там libc помоему просил

Google

[Anonymous]
11.05.2016
15:19:43
или не libc, впринципе можно проверить и сейчас

Kirill
11.05.2016
15:34:58

[Anonymous]
11.05.2016
15:36:21
ну щя проверю, пока чай пью
запустилась, а раньше не работало
может в самом alpine косяк был какой-нибудь хз
хех, или я туплю, но gogs и сейчас не запускается
только что скачал под линь его
он его как бы не видет, но он есть
а в убунте робит
как смотреть зависимости у ELF файла? кто помнит, Сишники тут всяко есть
команду не помню
библиотеки

Aleksandr
11.05.2016
15:53:07
ldd

[Anonymous]
11.05.2016
15:55:51
внизу alpine а вверху убунта
либо собрано так китайцем, либо go всё равно упирается в динамические либы
ну это как я думаю

Sergey
11.05.2016
15:58:30
ему надо явно указывать чтобы не использовал внешние зависимости

[Anonymous]
11.05.2016
16:00:08
дошло, пока курил, просто пакет который юзается в зависомтях наверно ображается к либе libpam
наверно так, хз, надо сорцы gogs смотреть

Google

[Anonymous]
11.05.2016
16:01:02
но это уже не 100% что GO-прога будет везде работать, если юзаешь vendor который не знаешь как работает

Sergey
11.05.2016
16:06:42
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-s' -o myapp .
примерно так
ну и для сетевых аппов под alpine скорее всего потребуется apk add ca-certificates

[Anonymous]
11.05.2016
16:07:30
воткнул linux-pam ca-certificates, ошибок нету в ldd, но также пишет что типо файла нету

Sergey
11.05.2016
16:08:40
ldd должен отвечать примерно так: не является динамическим исполняемым файлом
вообще в сети должно быть уже куча инструкций по этой теме, гуглить можно по словам build minimal image docker for go app

[Anonymous]
11.05.2016
16:09:54
не ну это понятно, просто если файл статический он должен работать на любом урезанном линуксе, и не ссылаться на либы

Sergey
11.05.2016
16:10:34
по дефолту гоу не компилит статический, ему надо явно это указать

Aleksandr
11.05.2016
16:10:42
а зачем тебе урезанный образ в докере? чем какой-нибудь дефолтный дебиан не устраивает?

Sergey
11.05.2016
16:10:46
тогда будет работать на любом урезаном недолинуксе
мы собирали даже на базе scratch

[Anonymous]
11.05.2016
16:11:20

Aleksandr
11.05.2016
16:11:27
аа

Sergey
11.05.2016
16:11:41
урезаный нужен хотя бы затем что from scratch у нас 5-7 мб, а какой нибудь дебиан 200+мб

[Anonymous]
11.05.2016
16:12:28
+ для сервера лишние утилы не нужны, типо apt-get
если в докере
или bash и zsh всякие

Aleksandr
11.05.2016
16:12:54

[Anonymous]
11.05.2016
16:14:42

Aleksandr
11.05.2016
16:14:56
зачем?

Google

[Anonymous]
11.05.2016
16:15:36
зачем?
а зачем оно нужно там, когда на сервере должен быть только твой сервис и ничего постороннего, ну и iptables еще можно оставить

Aleksandr
11.05.2016
16:16:04
ну я думал, ты из каких-то практических соображений :)

[Anonymous]
11.05.2016
16:16:50
монолитное пересобранное ядро + ash + твой сервис и всё :)
ну это если на виртуалке

Aleksandr
11.05.2016
16:17:43
ясно. нечем заняться :)

Admin
ERROR: S client not available

[Anonymous]
11.05.2016
16:17:55
и еще завернутое в squashfs для полной уверености :D

Sergey
11.05.2016
16:18:06
от задач и условий зависит, дял нас размер и скорость доставки критичны

[Anonymous]
11.05.2016
16:24:33
я вот дрона хочу попробывать сделать на базе arduino + rasp pi2/3, само собой я туда не потащу готовые образа линухи на малину, зачем мне лишний мусор там, только ядро и Go-проги, и места немного освободится и больше видео например запишу и тд

batyamedic
11.05.2016
16:25:28
Место дрона получится метеостанция
стопудово

[Anonymous]
11.05.2016
16:25:38
кстати надо будет попробывать на виртуалке в grub прописать не /bin/sh и go-прогу, интересно схавает её или нет
:D

batyamedic
11.05.2016
16:26:02
вставляешь последний винт
и
ОПА

[Anonymous]
11.05.2016
16:26:05
ну я и машинное зрение туда хочу туда втихнуть, как раз opencv поковыряю

batyamedic
11.05.2016
16:26:07
метеостанция

[Anonymous]
11.05.2016
16:26:54
если получится то автопилот еще по gps, и много чего впихнуть можно.. главное начать только

Aleksandr
11.05.2016
16:26:55

Google

[Anonymous]
11.05.2016
16:28:07

Phil
11.05.2016
16:51:58
Мы тут кстати говорили про var s и s:=. Так вот что-то при := он не дает старую перебить

Aleksandr
11.05.2016
16:57:05

Daniel
11.05.2016
16:58:50

Aleksandr
11.05.2016
16:59:33

Daniel
11.05.2016
17:02:13
потому, что поведение := существенно другое

Phil
11.05.2016
17:08:31
так. надо видимо откатить наше обсуждение и перечитать
ААААААААААААААААААААААААААААААААААААААААААААААААААААА!!!!!!!!!!!!!!!!!
вот теперь я понял. что-то в этом есть, но это же костыль какой-то
прчием если ты просто сдуру несколько раз сделаешь err:=, то не даст. а если ok, err:=, то даст

[Anonymous]
11.05.2016
17:12:48

Aleksandr
11.05.2016
17:17:32

[Anonymous]
11.05.2016
17:18:13
немного дружит
но например из примеров player.go не работает у меня, не разбирался почему еще
пробывал avi и mp4 контейнеры там в примере и все висят
а так камера + определение морды работаеи