Инструменты Go

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

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

Re: Инструменты Go

Непрочитанное сообщение Olej » 04 апр 2017, 14:40

Книги по Go, и их русскоязычные переводы ... получилось там, что они названы и показаны в другой теме, в другом месте: Go.
Там по практически всем книгам показаны варёзные URL :lol: , так что всё можете свободно скачать.

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

Re: Инструменты Go

Непрочитанное сообщение Olej » 12 май 2017, 17:38

Теперь самое время посмотреть что там происходит с составом и установкой Go в свежих дистрибутивах Linux....

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

Re: Инструменты Go

Непрочитанное сообщение Olej » 12 май 2017, 17:44

Olej писал(а):Теперь самое время посмотреть что там происходит с составом и установкой Go в свежих дистрибутивах Linux....
Fedora 25

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

[olej@xenix etc]$ cat /etc/system-release.
Fedora release 25 (Twenty Five)
GCC Go ...

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

[olej@xenix ~]$ which gccgo
/usr/bin/which: no gccgo in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/olej/.local/bin:/home/olej/bin)

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

[olej@xenix ~]$ dnf info gcc-go
Последняя проверка окончания срока действия метаданных: 6 days, 21:50:01 назад, Fri May  5 19:28:58 2017.
Доступные пакеты
Имя         : gcc-go
Архитектура : x86_64
Эпоха       : 0
Версия      : 6.3.1
Релиз       : 1.fc25
Размер      : 9.6 M
Репозиторий : updates
Краткое опи : Go support
URL         : http://gcc.gnu.org
Лицензия    : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
Описание    : The gcc-go package provides support for compiling Go programs
            : with the GNU Compiler Collection.

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

[olej@xenix etc]$ sudo dnf install gccgo
Последняя проверка окончания срока действия метаданных: 2:26:03 назад, Fri May 12 15:15:19 2017.
Пакета с названием gccgo не найдено.
Ошибка: Совпадений не найдено.
[olej@xenix etc]$ sudo dnf install gcc-go
Последняя проверка окончания срока действия метаданных: 2:26:21 назад, Fri May 12 15:15:19 2017.
Зависимости разрешены.
============================================================================================================================================================
 Package                                Архитектура                       Версия                                   Репозиторий                        Размер
============================================================================================================================================================
Установка:
 gcc-go                                 x86_64                            6.3.1-1.fc25                             updates                            9.6 M
 libgo                                  x86_64                            6.3.1-1.fc25                             updates                            8.1 M
 libgo-devel                            x86_64                            6.3.1-1.fc25                             updates                            498 k

Результат операции
============================================================================================================================================================
Установка  3 Пакеты

Объем загрузки: 18 M
Объем изменений: 68 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/3): libgo-devel-6.3.1-1.fc25.x86_64.rpm                                                                                   78 kB/s | 498 kB     00:06    
(2/3): libgo-6.3.1-1.fc25.x86_64.rpm                                                                                        281 kB/s | 8.1 MB     00:29    
(3/3): gcc-go-6.3.1-1.fc25.x86_64.rpm                                                                                       309 kB/s | 9.6 MB     00:32    
------------------------------------------------------------------------------------------------------------------------------------------------------------
Общий размер                                                                                                                560 kB/s |  18 MB     00:33     
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
  Установка    : libgo-6.3.1-1.fc25.x86_64                                                                                                              1/3 
  Установка    : libgo-devel-6.3.1-1.fc25.x86_64                                                                                                        2/3 
  Установка    : gcc-go-6.3.1-1.fc25.x86_64                                                                                                             3/3 
  Проверка     : gcc-go-6.3.1-1.fc25.x86_64                                                                                                             1/3 
  Проверка     : libgo-6.3.1-1.fc25.x86_64                                                                                                              2/3 
  Проверка     : libgo-devel-6.3.1-1.fc25.x86_64                                                                                                        3/3 

Установлено:
  gcc-go.x86_64 6.3.1-1.fc25                        libgo.x86_64 6.3.1-1.fc25                        libgo-devel.x86_64 6.3.1-1.fc25                       

Выполнено!

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

[olej@xenix HISTORY]$ gccgo --version
gccgo (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
Copyright (C) 2016 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая 
коммерческую ценность и применимость для каких-либо целей.

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

Re: Инструменты Go

Непрочитанное сообщение Olej » 12 май 2017, 17:53

Olej писал(а): Fedora 25

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

[olej@xenix ~]$ dnf list golang*
Доступные пакеты
golang.x86_64                                                                                 1.7.5-2.fc25                                           updates
golang-bin.x86_64                                                                             1.7.5-2.fc25                                           updates
...
[olej@xenix ~]$ dnf list golang* | wc -l
1089
Версия чрезвычайно свежая!

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

[olej@xenix ~]$ sudo dnf install golang
Последняя проверка окончания срока действия метаданных: 2:31:13 назад, Fri May 12 15:15:19 2017.
Зависимости разрешены.
============================================================================================================================================================
 Package                                  Архитектура                      Версия                                   Репозиторий                       Размер
============================================================================================================================================================
Установка:
 go-srpm-macros                           noarch                           2-7.fc25                                 fedora                            8.6 k
 golang                                   x86_64                           1.7.5-2.fc25                             updates                           1.2 M
 golang-bin                               x86_64                           1.7.5-2.fc25                             updates                            43 M
 golang-src                               noarch                           1.7.5-2.fc25                             updates                           4.4 M

Результат операции
============================================================================================================================================================
Установка  4 Пакеты

Объем загрузки: 49 M
Объем изменений: 193 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/4): golang-1.7.5-2.fc25.x86_64.rpm                                                                                       281 kB/s | 1.2 MB     00:04    
(2/4): go-srpm-macros-2-7.fc25.noarch.rpm                                                                                   7.2 kB/s | 8.6 kB     00:01    
(3/4): golang-src-1.7.5-2.fc25.noarch.rpm                                                                                   334 kB/s | 4.4 MB     00:13    
(4/4): golang-bin-1.7.5-2.fc25.x86_64.rpm                                                                                   674 kB/s |  43 MB     01:05    
------------------------------------------------------------------------------------------------------------------------------------------------------------
Общий размер                                                                                                                734 kB/s |  49 MB     01:07     
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
  Установка    : go-srpm-macros-2-7.fc25.noarch                                                                                                         1/4 
  Установка    : golang-src-1.7.5-2.fc25.noarch                                                                                                         2/4 
  Установка    : golang-bin-1.7.5-2.fc25.x86_64                                                                                                         3/4 
  Установка    : golang-1.7.5-2.fc25.x86_64                                                                                                             4/4 
  Проверка     : golang-1.7.5-2.fc25.x86_64                                                                                                             1/4 
  Проверка     : golang-bin-1.7.5-2.fc25.x86_64                                                                                                         2/4 
  Проверка     : golang-src-1.7.5-2.fc25.noarch                                                                                                         3/4 
  Проверка     : go-srpm-macros-2-7.fc25.noarch                                                                                                         4/4 

Установлено:
  go-srpm-macros.noarch 2-7.fc25         golang.x86_64 1.7.5-2.fc25         golang-bin.x86_64 1.7.5-2.fc25         golang-src.noarch 1.7.5-2.fc25        

Выполнено!
Но!!! (обращаем внимание на пути):

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

[olej@xenix etc]$ /usr/lib/golang/bin/go version
go version go1.7.5 linux/amd64

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

[olej@xenix HISTORY]$ ls /usr/bin/gcc*
/usr/bin/gcc  /usr/bin/gcc-ar  /usr/bin/gccgo  /usr/bin/gcc-nm  /usr/bin/gcc-ranlib

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

[olej@xenix ~]$ go version
go version go1.6.1 gccgo (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) linux/amd64
Это то, о чём писалось тут!

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

Re: Инструменты Go

Непрочитанное сообщение Olej » 12 май 2017, 18:02

Olej писал(а): Это то, о чём писалось тут!

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

[olej@xenix ~]$ alternatives --display go
go - статус "авто".
 ссылка сейчас указывает на /usr/bin/go.gcc
/usr/bin/go.gcc - priority 92
 slave gofmt: /usr/bin/gofmt.gcc
/usr/lib/golang/bin/go - priority 90
 slave gofmt: /usr/lib/golang/bin/gofmt
Текущая `лучшая' версия - /usr/bin/go.gcc.
Но теперь я уже (понимая что и как происходит) воспользуюсь GUI конфигуратором альтернатив galternatives, о котором рассказано здесь: alternatives (но его нужно обязательно перезапустить после установок Go).
Вложения
a2.png

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

Re: Инструменты Go

Непрочитанное сообщение Olej » 12 май 2017, 18:16

Olej писал(а): Но теперь я уже (понимая что и как происходит) воспользуюсь GUI конфигуратором альтернатив galternatives, о котором рассказано здесь: alternatives (но его нужно обязательно перезапустить после установок Go).

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

Меняю...
(обращаем внимание по картинке, что Status: сменяем auto на manual):
[olej@xenix ~]$ alternatives --display go
go - статус "вручную"
 ссылка сейчас указывает на /usr/lib/golang/bin/go
/usr/bin/go.gcc - priority 92
 slave gofmt: /usr/bin/gofmt.gcc
/usr/lib/golang/bin/go - priority 90
 slave gofmt: /usr/lib/golang/bin/gofmt
Текущая `лучшая' версия - /usr/bin/go.gcc.
И ;-) :

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

[olej@xenix ~]$ go version
go version go1.7.5 linux/amd64
Вложения
a3.png

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

Re: Инструменты Go

Непрочитанное сообщение Olej » 12 май 2017, 18:36

Olej писал(а):
Olej писал(а):Теперь самое время посмотреть что там происходит с составом и установкой Go в свежих дистрибутивах Linux....
Fedora 25
А теперь то же самое ... "но с крыльями"(с) :lol: - Mint 18.1

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

olej@nvidia ~ $ lsb_release -a
No LSB modules are available.
Distributor ID:	LinuxMint
Description:	Linux Mint 18.1 Serena
Release:	18.1
Codename:	serena
Olej писал(а): GCC Go ...

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

olej@nvidia ~/2017_WORK $ apt list gccgo
Вывод списка… Готово
gccgo/xenial 4:6-20160210-1ubuntu1 amd64
olej@nvidia ~/2017_WORK $ apt install gccgo
[sudo] пароль для olej: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  gccgo-6 libgo9
Предлагаемые пакеты:
  gccgo-multilib gccgo-6-doc libgo9-dbg
НОВЫЕ пакеты, которые будут установлены:
  gccgo gccgo-6 libgo9
обновлено 0, установлено 3 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 69,6 MБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 336 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libgo9 amd64 6.0.1-0ubuntu1 [7 856 kB]
Пол:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 gccgo-6 amd64 6.0.1-0ubuntu1 [61,7 MB]                        
Пол:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 gccgo amd64 4:6-20160210-1ubuntu1 [1 068 B]                   
Получено 69,6 MБ за 2мин 18с (504 kБ/c)                                                                                
Выбор ранее не выбранного пакета libgo9:amd64.
(Чтение базы данных … на данный момент установлено 268534 файла и каталога.)
Подготовка к распаковке …/libgo9_6.0.1-0ubuntu1_amd64.deb …
Распаковывается libgo9:amd64 (6.0.1-0ubuntu1) …
Выбор ранее не выбранного пакета gccgo-6.
Подготовка к распаковке …/gccgo-6_6.0.1-0ubuntu1_amd64.deb …
Распаковывается gccgo-6 (6.0.1-0ubuntu1) …
Выбор ранее не выбранного пакета gccgo.
Подготовка к распаковке …/gccgo_4%3a6-20160210-1ubuntu1_amd64.deb …
Распаковывается gccgo (4:6-20160210-1ubuntu1) …
Обрабатываются триггеры для libc-bin (2.23-0ubuntu7) …
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link

/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link

Обрабатываются триггеры для man-db (2.7.5-1) …
Настраивается пакет libgo9:amd64 (6.0.1-0ubuntu1) …
Настраивается пакет gccgo-6 (6.0.1-0ubuntu1) …
Настраивается пакет gccgo (4:6-20160210-1ubuntu1) …
Обрабатываются триггеры для libc-bin (2.23-0ubuntu7) …
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link

/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link

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

olej@nvidia ~ $ which gccgo
/usr/bin/gccgo

olej@nvidia ~ $ gccgo --version
gccgo (Ubuntu 6.0.1-0ubuntu1) 6.0.0 20160414 (experimental) [trunk revision 234994]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

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

Re: Инструменты Go

Непрочитанное сообщение Olej » 12 май 2017, 18:40

Golang :

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

olej@nvidia ~/2017_WORK $ apt list golang
Вывод списка… Готово
golang/xenial,xenial 2:1.6-1ubuntu4 all

olej@nvidia ~/2017_WORK $ apt install golang
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  golang-1.6 golang-1.6-doc golang-1.6-go golang-1.6-src golang-doc golang-go golang-src
Предлагаемые пакеты:
  bzr git mercurial subversion
Рекомендуемые пакеты:
  golang-1.6-race-detector-runtime golang-race-detector-runtime
НОВЫЕ пакеты, которые будут установлены:
  golang golang-1.6 golang-1.6-doc golang-1.6-go golang-1.6-src golang-doc golang-go golang-src
обновлено 0, установлено 8 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 29,2 MБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 198 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 golang-1.6-src amd64 1.6.2-0ubuntu5~16.04.2 [6 493 kB]
Пол:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 golang-1.6-go amd64 1.6.2-0ubuntu5~16.04.2 [20,3 MB]                                   
Пол:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 golang-1.6-doc all 1.6.2-0ubuntu5~16.04.2 [2 370 kB]                                   
Пол:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 golang-1.6 all 1.6.2-0ubuntu5~16.04.2 [16,8 kB]                                        
Пол:5 http://archive.ubuntu.com/ubuntu xenial/main amd64 golang-src amd64 2:1.6-1ubuntu4 [3 066 B]                                                      
Пол:6 http://archive.ubuntu.com/ubuntu xenial/main amd64 golang-go amd64 2:1.6-1ubuntu4 [21,8 kB]                                                       
Пол:7 http://archive.ubuntu.com/ubuntu xenial/main amd64 golang-doc all 2:1.6-1ubuntu4 [2 808 B]                                                        
Пол:8 http://archive.ubuntu.com/ubuntu xenial/main amd64 golang all 2:1.6-1ubuntu4 [2 766 B]                                                            
Получено 29,2 MБ за 58с (501 kБ/c)                                                                                                                      
Выбор ранее не выбранного пакета golang-1.6-src.
(Чтение базы данных … на данный момент установлено 268892 файла и каталога.)
Подготовка к распаковке …/golang-1.6-src_1.6.2-0ubuntu5~16.04.2_amd64.deb …
Распаковывается golang-1.6-src (1.6.2-0ubuntu5~16.04.2) …
Выбор ранее не выбранного пакета golang-1.6-go.
Подготовка к распаковке …/golang-1.6-go_1.6.2-0ubuntu5~16.04.2_amd64.deb …
Распаковывается golang-1.6-go (1.6.2-0ubuntu5~16.04.2) …
Выбор ранее не выбранного пакета golang-1.6-doc.
Подготовка к распаковке …/golang-1.6-doc_1.6.2-0ubuntu5~16.04.2_all.deb …
Распаковывается golang-1.6-doc (1.6.2-0ubuntu5~16.04.2) …
Выбор ранее не выбранного пакета golang-1.6.
Подготовка к распаковке …/golang-1.6_1.6.2-0ubuntu5~16.04.2_all.deb …
Распаковывается golang-1.6 (1.6.2-0ubuntu5~16.04.2) …
Выбор ранее не выбранного пакета golang-src.
Подготовка к распаковке …/golang-src_2%3a1.6-1ubuntu4_amd64.deb …
Распаковывается golang-src (2:1.6-1ubuntu4) …
Выбор ранее не выбранного пакета golang-go.
Подготовка к распаковке …/golang-go_2%3a1.6-1ubuntu4_amd64.deb …
Распаковывается golang-go (2:1.6-1ubuntu4) …
Выбор ранее не выбранного пакета golang-doc.
Подготовка к распаковке …/golang-doc_2%3a1.6-1ubuntu4_all.deb …
Распаковывается golang-doc (2:1.6-1ubuntu4) …
Выбор ранее не выбранного пакета golang.
Подготовка к распаковке …/golang_2%3a1.6-1ubuntu4_all.deb …
Распаковывается golang (2:1.6-1ubuntu4) …
Обрабатываются триггеры для man-db (2.7.5-1) …
Настраивается пакет golang-1.6-src (1.6.2-0ubuntu5~16.04.2) …
Настраивается пакет golang-1.6-go (1.6.2-0ubuntu5~16.04.2) …
Настраивается пакет golang-1.6-doc (1.6.2-0ubuntu5~16.04.2) …
Настраивается пакет golang-1.6 (1.6.2-0ubuntu5~16.04.2) …
Настраивается пакет golang-src (2:1.6-1ubuntu4) …
Настраивается пакет golang-go (2:1.6-1ubuntu4) …
Настраивается пакет golang-doc (2:1.6-1ubuntu4) …
Настраивается пакет golang (2:1.6-1ubuntu4) …
Смотрим, что установилось оно в совсем другие места (чем Fedora):

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

olej@nvidia ~/2017_WORK $ /usr/bin/gccgo --version
gccgo (Ubuntu 6.0.1-0ubuntu1) 6.0.0 20160414 (experimental) [trunk revision 234994]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

olej@nvidia ~/2017_WORK $ /usr/bin/go version
go version go1.6.2 linux/amd64

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

Re: Инструменты Go

Непрочитанное сообщение Olej » 12 май 2017, 19:13

Olej писал(а):Смотрим, что установилось оно в совсем другие места (чем Fedora):

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

olej@nvidia /etc/alternatives $ update-alternatives --list c89
/usr/bin/c89-gcc
olej@nvidia /etc/alternatives $ update-alternatives --list c99
/usr/bin/c99-gcc
Но:

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

olej@nvidia /etc/alternatives $ update-alternatives --list go
update-alternatives: ошибка: нет альтернатив для go
Они просто не используют alternatives для управления используемыми вариантами Go - они их просто установили в одно место, но под разными именами!

Аватара пользователя
perseus
Писатель
Сообщения: 99
Зарегистрирован: 11 май 2017, 18:01
Откуда: Щёлково, Московская обл.
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение perseus » 12 май 2017, 22:03

внимательно изучил ваши манипуляции,
и попробовал у себя сделать тоже самое, вот что получилось:
установились оба компилятора и gccgo и golang

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

maksim@ASUS ~/Progy/Go/src/imitator $ go version
go version go1.2.1 linux/386
maksim@ASUS ~/Progy/Go/src/imitator $ update-alternatives --list go
/usr/bin/gccgo-go
/usr/bin/golang-go
maksim@ASUS ~/Progy/Go/src/imitator $ 
и galternatives их показывает обоих (только переключать гад не позволяет почемуто между ними, не работает функция manual)
Вложения
a1.png

Ответить

Вернуться в «Программирование»

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

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